The Sound of Running Man - Part One
published Wednesday, 30 June 2010, 00:00 by Kenneth
The sound design, as well as the core design of Interstellar Marines is about making you believe that you are present in a realistic projection of the future.
At ZPS we have high ambitions regarding the sound of the Interstellar Marines universe. We believe that sound is 50% of the experience. And as a small development team it might seem a bit luxuriously to have one fulltime composer and one fulltime sound designer, but that just explains how dedicated we are to deliver a kick ass audio experience in our games.
The two keywords in our approach to the sound design are "immersion" and "realism". We need you to believe that you really ARE a Marine, and that the world surrounding you is "real". But again quite often reality sounds a bit boring, so we have actually extended the term "realism" to be more than that - you might call it "heightened realism" - to empathize the overall experience.
Reverb for the world
First of all this IS a shooter, and primarily it should be fun and thrilling to shoot your weapon, so we want the shooting experience to be loud, violent and asskicking! A lot of the shooting experience is the reverb - basically if you fire a weapon in an acoustically "dead" room without reverb, you will only hear a short "pop". So we needed a cool reverb system to spice it up.
In the current version of Unity (the game engine we are using) there is NO reverb system included, but in the next version (Unity 3.0), there will be a basic realtime reverb system. So in order to have any reverb at all in Running Man I had to make my own system...
In a lot of the games I have played, the reverb experience have been restricted to only one flimsy sounding realtime reverb of the room the player is located in. Which means that if the player is located in a small room and a grenade explodes in a larger adjacent room, you don't hear the reverb from the large room applied to the grenade sound, but instead you hear the sound of the grenade with the small reverb added... as the player is located in the small room... (hope this makes sense).
What I wanted to do was to have multiple reverbs, so that you hear the correct reverb added to each sound, instead of one global reverb added to all sounds.
On top of this I also wanted to add an echo, so that you hear a "bounce" from the walls, as well as having the reverbs "bleed" from one room to another.
This called for an entirely new, but very simple and effective, reverb design that I never have seen in any game before! Let me try to explain it...
Shoot that Target...
I devide a level into "Reverbvolumes". A reverbvolume is basically an invisible box, which holds some informations of what kind of reverb should be added when a sound is played inside it. Each reverbvolume also hold the position of a "Target Reverbvolume".
So when a sound is played, It checks to see which reverbvolumer it's located in, and then adds the appropriate reverbtype to the sound. Some sounds are also set to play a "Target reverb", which means, that the sound again looks at the reverbvolume for the position of a "Target Reverbvolume", and plays the appropriate "Target reverb" at that position.
You can hear the result best by plugging in some headphones to your computer and start up Running Man. Fire your SMG (without silencer) in any room, and you will hear an echo from a distinct location. When you are in a small room, next to a large room, you will hear the small reverb from the room where you are located, AND the reverb from the large room through the door or opening between the small and the large room.
The reverb in Running Man and Bullseye is not a "realtime" reverb, which means that the reverb added is "prerendered/prebaked" as separate audiofiles. So when a sound is played, and the appropriate reverbtype and targetreverbtype is determined, I play two or three audiofiles at once: the direct sound, the reverb sound and the positioned targetreverb sound if needed.
One small bonus of using "prerendered" reverb is that I can use really really high quality reverbengines for rendering the reverb. The type of reverb I'm using in this case is a "convolution reverb", which if I ran it as a realtime reverb would be quite processor heavy.
Enjoy Running Man, and remember that this game should be played loud! ;-)