2015-05-12 07:07:41

I figured it out, there is an XML file in the daisy download and when you open that in the web browser it shows everything.
I think the similarities between python and javascript are what makes it so easy to convert between the two languages.
Being able to tell where sounds are does take practice, but there are people who are incredibly good. Mostly because Swamp and Shades of doom use directional panning really well.
In swamp for example, there are people who can hear a creature start sounding at almost 0 and be able to aim and shoot it in one action without any kind of radar.

2015-05-15 22:54:54

Thanks for the link to the letsplay. It's great (although it's hard to listen to it outside, or in public transport, so I'm at 40 minutes now)

You guys convinced me that this project is a good idea. Thanks!


I've got one more question. It seems unrelated, but I have use for it.
How do you make and read maps while playing text games or MUD or audio games with labyrinths?

2015-05-15 23:21:13

Some folks will open up a note pad, while games such as "Sarah And Castle Of Whichcraft And Wizardry" have a map system built-in.

The "original" Sarah 2007 demo can be found here:
http://www.toltbbs.net/pcsgames.net/games/Sarah10.exe
, while the 1.1 patch which changes up a few things can be found here:
http://www.toltbbs.net/pcsgames.net/gam … Patch4.exe
Its 2012 1.2 promo can be found here:
http://www.toltbbs.net/pcsgames.net/gam … 2promo.mp3

Sarah, who I've known for years, is the Sarah featured in here.

2015-05-17 23:09:55

I am looking for an easy way to process lots of sounds in 3d space, so if you had a sound manager class that would let me attach sound objects, move a listener and set the max sound attenuation distance, it would be perfect.
I will have a sound array for each section of the map, so being able to swap out either the whole sound array or parts of the array would be nice.
A sound object could have the source (the arg you pass in), the volume, play, pause, stop, seek, loop, panning, pitch, (possibly reverb) and position.
The listener would have position in x, y, and facing (h).
The other things in the sound management would be the sound array, the process call (that I can use in my main-loop to check and play all the sounds in the sound array), attenuation (how far till the sound fades away to 0) and the listener.
Another thing that could be given to the audio manager is an environment. So if we are in a cave, everything will be given an echo.
This is how it is done in most game audio managers that I know of, but I think the way they have set it up is a little different. I think they chose the node approach, but the above approach is a little easier and faster to use for the programmer.

I would not want to program checks, so, say I use ogg files, and the person has IE 9 or something that doesn't support .ogg files, there can be an error saying to change to fire fox.

How difficult would it be to do this?

2015-05-17 23:12:36

I just memorize the directions. I don't really write out anything ever. Entombed is really the only game where the floors were too big for me to remember. So I do like the nearest unexplored space and directions to the up or down stairs in Entombed because of that.

2015-05-18 01:19:43

Thanks Trenton, I'm asking because I believe game engine should deliver tools that let you comfortably create worlds with minimal programming required, so I'm thinking of making an editor that would be close to what people already use comfortably.

Frastlin, first of all, congrats on your memory wink
What you describe is a little hard to understand without being a person with your exact context and previous experience, but most of the things seem doable with my current understanding of web audio api.
I don't get why you'd want to operate on sound arrays though. Sounds to me like a lot of unnecessarily convoluted procedural programming. My idea for an engine is to provide a way to build the world declaratively, from objects having position, dimensions and sounds, and control them in an event-based environment. So, instead of working on an array and deciding everything in every iteration of your main loop, you'd declare a sound to play on collision with the object and never worry about it again. Interactive items could have sounds attached to events, and you'd just trigger events on them.

I don't know about using massive numbers of sounds. We'll know when there's a prototype. I have no idea what the limits of web audio are, but they mostly depend on browsers, so you can expect worst performance on apple products. Browser support for web audio is limited to new browsers, and I'm going to detect the support.

Anyway, my idea is an engine, not just an audio manager.
The engine would include:

- methods for declaring and manipulating sound emitting objects in space
- methods for manipulating the main character/listener
- built in collisions
- built in doppler effect based on distance change between listener and object
- built in basic management of sound nodes (removing items that are too far, to free up resources)
- access to lower level api to add custom hacks (including the ability to add an effect on all sounds globally)
- 2 or 3 steering mechanics (for touchscreens and desktops) and hooks to build your own
- "rendering" quality setup (webaudio has support for binaural sound, but it's cpu intensive and some games on some devices will have to switch to basic stereo, the limit of sounds in a scene can be changed, doppler on/off)
- maybe a game menu implementation
- tools for "level editing" both using vision and not (text based or in-game)

The above is not a promise, nor a declaration, but a list of items I have ideas for.

All comments are helpful, I'm just building my own vision of the project at this stage.

2015-05-18 11:42:28

Ya know what folks, I forgot about the game "Stem Stumper!"
If you haven't checked out its "web" version check it out here!
For more info about Stem Stumper in general, plus to download either the Android or IOS app, have a look over here

I can safely say, it works with Chromevox under Chrome OS/Chrome Browser, though I have no idea how it will  work under anything else. That's with any other browser, nor screen reader.

2015-05-22 22:10:36

How does initial loading of sounds work? Is it fast? If I have like 500 sounds, will it take ages to load?
I like to have good object processing. So my map object will have 50 item and monster objects and 20 wall objects. When a monster or item comes into the range of 50 squares, their sounds starts playing as quiet as possible. Then if nothing happens, their sound stops playing when the player/listener gets out of range.
If the listener gets closer then the sound will get louder using the 3d algorithms.
Not being able to use these sounds is the only thing keeping me from building a javascript game.

2015-05-22 22:59:39

That's something that I'll have to figure out some day. Loading assets for a web game has lots of options.
You can group sounds in packages assigned to locations and have a loading step between locations.
You can assume your sounds are small enough, and load them as you go (except for the most basic ones)
Finally, you can do what "regular" games do and just make your players wait for the whole thing to download.

There's a balance to everything. Depending on the size/length of the sounds and dynamics of the game, even the second option, to stream the sounds when needed, makes sense.

For me, the biggest conceptual problem in building an engine is sound proof obstacles. Imagine a labyrinth, where something waits behind a corner. I should emit the sound from the edge of the corner in front of the player instead of the actual location of the thing.
So to make it work, I'd have to use a pathfinding algorithm for walking the walls until I find an edge that is visible to the player. But in reverse. So it's an equivalent of ray tracing for sound. And once I find the location or locations where the sound should be heard, I emit the sound from those location and decrease volume based on the distance.

Now add echoes. smile

I don't think I'll implement that in the first version...

2015-05-23 23:38:56

frastlin wrote:

How does initial loading of sounds work? Is it fast? If I have like 500 sounds, will it take ages to load?

Initiating 500 connections to the server... um... tongue

If you can get it all into a single request it's not an issue, but asking for each file separately is going to be a really serious issue. Is there a way to get a sound off a ZIP archive or something like that? Because that would solve the issue and your only real problem will be filesize. I know Pixiv does it to store animated images as a sequence of JPEG files, so maybe it can be pulled off with audio files too.

2015-08-26 03:31:28

Did anything ever come of this? I'd definitely appreciate some sort of JS sound engine at least somewhat comparable to the old IE6 <embed> player, in terms of ease-of-use.

看過來!
"If you want utopia but reality gives you Lovecraft, you don't give up, you carve your utopia out of the corpses of dead gods."
MaxAngor wrote:
    George... Don't do that.

2015-09-08 04:06:46

Yeah, I'd love to have audio mario in the web, lol. That way, I won't have to have Windows to just play a game with braille display support, lol.

Devin Prater
My Blog
Follow me

2015-09-18 17:31:48

Hello,
I have sat down and hacked out a working player for sounds using the web API. It just plays sounds atm, but that is all I need it for currently. How it works is how it should, you make a sound by typing:
sound1 = Sound("sounds/my_sound.ogg");

and you play it in the way that one would think:
sound1.play();


var bufferLoader;
  window.AudioContext = window.AudioContext || window.webkitAudioContext;
    var context = new AudioContext();

function BufferLoader(){
    this.urlList = [];

    this.bufferLoader = function(sound){
        var request = new XMLHttpRequest();
        request.open("GET", sound.url, true);
        request.responseType = "arraybuffer";

        request.onload = function(){
            //decode the audio data
            context.decodeAudioData(request.response, function(buffer){
                if(!buffer){
                    alert("Error decoding file data: " + sound.url);}
                else{
                    sound.buffer = buffer;}
                },
            function(error){
                console.error('decodeAudioData error', error);}
            );
            }

        request.onerror = function(){
            alert('BufferLoader: XHR error');
        }

        request.send();
        }
    }

bufferLoader = new BufferLoader();


function Sound(url){
    this.url = url;
    this.buffer = null;
    this.source = null;
    bufferLoader.bufferLoader(this);
    this.init = function(){
        this.source = context.createBufferSource();
        this.source.buffer = this.buffer;
        this.source.connect(context.destination);
        };

    this.play = function(){
        this.init();
        this.source.start(0);
    }
}


//example:
var s = new Sound("sounds/smack1.wav");

//I have an html file with a button on it that accepts keyboard input when ever a key is down and calls the below function.
function handler(e){
    var key = e.keyCode ? e.keyCode : e.charCode;

    if(key === 32){
        s.play();
    }
}

2015-09-18 21:51:21

Hello,
This could be interesting. I'd love to see some little arcade style games at first, as that's what used to happen a lot of sighted folks used to play little flash games. Gamevial did some stuff similar, but it'd be awesome to have some more.

2015-09-18 23:43:42

There are 2 directions in which a web developer could go.
1. use existing HTML elements to present game info. These could be things like menus and dialogues.
The other option is to do what those old flash games did and just make custom elements and whatnot.
I am in the midst of making a blackjack game exploring both of those elements.

2015-09-19 00:20:07

And I'll be sure to check it out on Chrome OS over here.
Good luck, and thanks for going above and beyond the call of Markup Language!

2015-09-19 04:03:26 (edited by CAE_Jones 2015-09-19 04:04:06)

Apparently, trying to work on stuff offline is not allowed, due to http requests and some paranoid security measures. So I'm tapping out.

看過來!
"If you want utopia but reality gives you Lovecraft, you don't give up, you carve your utopia out of the corpses of dead gods."
MaxAngor wrote:
    George... Don't do that.

2015-09-19 04:10:26

What do you mean? Sometimes it is a really good idea to setup a localhost server like the one django comes with, WAMP comes with or brython comes with. But I haven't had any problem yet.

2015-09-19 05:06:28

Hey!
Have a look at this!
http://www.html5rocks.com/en/features/offline

Also see:
http://labs.ft.com/2012/08/basic-offline-html5-web-app/

2015-09-20 11:10:18

Well, this is an interesting idea. can't wait to see this!
good luck!

2015-09-23 02:14:17

I have found:
https://github.com/goldfire/howler.js

and it seems to do everything I could possibly need from an audio library.

2015-09-29 09:43:49

Hi.
Well.
Looking for ways to modify the flash, so I use html 5, css, javascript.
So how do I modify the tutorial.
Got any ideas, or info.
Will take a look at this page.
But cannot use flash, for the reasons my lectuer noted above.
So, can use this as a jumping off point the make flash games site.
So want to make this my own.
So what modifications would you make.
Any suggestions, not to do it for me, but point me in the right direction?
As a starting point.
So, can any one give me some ideas.
Marvin.
Ps: was searching for space invaders start up screens, when I came across this.
Any ideas.
Any tips, tricks, suggestions, links, so then if I try to start searching, could go in the wrong direction, any ideas.
Marvin.

From: Darrell Klar [mailto:[email protected]]
Sent: Tuesday, September 29, 2015 4:54 PM
To: Marvin Hunkin
Subject: RE: did you get my messages

Good afternoon Marvin.

The “makeflashgames” site is great and provides a good deal of information in how to structure a build of the game. My concern is that you certainly do not want to use flash as not only is it expensive to purchase the development environment, but Flash is also being actively removed as a standard platform for the Internet.

What this means is that HTML, CSS and Javascript is preferred to Flash, but you can certainly use the structure and process provided on this page to build in HTML. This will take a bit of modification, but at first glance, there is a LOT of great information here.

Obviously, you can’t make it exactly the same, but I know you have some specific ideas and will definitely want to make this project your own.

Go for it – use this page as a guide and make the best accessible Space Invaders ever!

Regards,

Darrell Klar | Senior IT Trainer


From: Marvin Hunkin [mailto:[email protected]]
Sent: 29 September 2015 16:47
To: 'Darrell Klar' <[email protected]>
Subject: did you get my messages

Hi.
Just holding off, waitingfor your okay, or do I look for more accessible space invader game engines.
And accessibility.
So might google accessible flash.
And then work arounds for apple and ios, and also accessible text to speech.
Waiting for you.
Do not want to plagurise, but was looking for start up screens, and found this site.
Marvin.

This electronic mail/facsimile contains information that is privileged and confidential, intended only for use of the individual(s) named or addresses listed.  If you are not the intended recipient, any dissemination, copying or use of the information is strictly prohibited.  If you have received this transmission in error please delete it (including any attachments) immediately from your system and inform us via email at: [email protected]
It is the recipient's responsibility using this form of communication to virus scan or otherwise test this email prior to opening any files attached. The author will not be liable to you or any other person for any loss or damage (including direct, consequential or economic loss or damage) however caused and whether by negligence or otherwise which may result directly or indirectly from the receipt or use of this communication or any files attached to it.

2015-09-30 09:29:32 (edited by SoundMUD 2015-09-30 10:34:04)

Edit: fixed confusion between HTML5 and WebAudio.

I have found this topic only today, and I must say that it is a very good surprise! I have been searching for a better combination than python + pygame for several years, and WebAudio + Javascript (eventually with brython) might be a very good combination. I have googled and tested some web examples with Firefox and they are actually working! The features that interest me most are: low pass filter (to render sound behind you, or muffled sound through a door), room effects (echo), no need to install (as easy as Flash games). Positional audio in 3D would be great, but even with 2D panning there are already a lot of possibilities.

So I'll make some small tests very soon!

Note: accessiblewebgames.com are probably Shockwave games (a variant of Flash if I remember correctly), not WebAudio games.

2015-09-30 13:16:02

Yep, you are are correct, about the games from that site being shockwave flash.
I would love to test your Sound RTS, or any other thigns ya made using HTML5.
That'd be neat!

2015-10-01 21:03:55 (edited by SoundMUD 2015-10-01 21:12:15)

Here is my first working example using WebAudio. It does only one thing: play a sound.

http://jlpo.free.fr/webaudio/webaudio1.htm

Edit: This example has been tested with Firefox. It doesn't work with Internet Explorer. The sound should play as soon as it has been loaded.