[racket] sound + universe report: success.
On 10/20/2011 12:49 PM, John Clements wrote:
> To frame the discussion better, I think that we should probably divide the set of possible sounds into "momentary" and "ongoing" sounds. If I associate a "pop" with a ball hitting the ground, I'm probably not interested in thinking about whether the sound from the previous frame is still going on. If I'm playing a soundtrack, then I definitely agree that I might want to alter the ongoing sound.
FWIW, this is the right way to think about it. Most sane game engines
make this distinction. One-shot sounds are call-and-forget; persistent
sounds are managed and can be turned off at will, or not refreshed.
Further, there is often support for two kinds of persistent sounds:
those that loop, and those that don't. Example looping sounds:
soundtrack, rocket engine, running water. Example non-looping: speech.
Sometimes a game engine further distinguishes the soundtrack, which is
ambient and has its own volume, from other persistent sound effects,
which are positional, so their volumes attenuate with distance.
It's common for 3D engines to play only the few closest sounds
(ephemeral or persistent) to keep from overloading the speakers, mixer,
or player. (That depends on the viewer having a position in the world,
so I don't know how that would work in 2D.) It's also common to have a
fixed-size FIFO that holds the sounds currently playing - when a sound
gets bumped off, it stops - but I expect that's mostly C/C++'s fault.
Neil T