The Sound of Running Man - Part Two
published Friday, 16 July 2010, 00:00 by Kenneth
In order to get you immersed and to support our franchise mantra "You will believe", we want to bring the player character to life. One of the major parts of getting you immersed is "character audio".
I have already talked a bit about shooting and reverb - but we also have other parts in the soundpalette. In order to get you immersed and to support our franchise mantra "You will believe", we want to bring the player character to life. We do this in a number of ways: You have a physical body, which casts shadows (currently only in "Fantastic" quality setting), you see the helmet in your peripheral view, and you also see the slightly stained glass of the helmet. We have a bunch of other cool immersive features in our design, but they are yet to be implemented. One of the other major parts of getting you immersed is "character audio".
How do I sound like?
For movement we want to give you the impression that you really have a body, and that you are heavy, as you wear armor, backpack, weapons, etc. but at the same time, we also want to create a "realistic" feel to the sounds, so that your footsteps don't say "clonk", "clonk" when you walk or run, but when you sprint for instance on a semi-hollow metal surface, you give out more noise.
I have also added a subtle "wind in the ears" sound, so when you sprint you hear the kind of noise you normally hear when wind blows in your ears. At first when I had made the "wind in ears" feature I was really thrilled about it, and thought it worked really well - but later I had to turn it down quite a bit, as it took too much attention from the other sounds in the environment, and it was difficult to hear for instance the footsteps from the bots. It works really well in Mirrors Edge, but then again, Mirrors Edge is also more about movement, and not as much about combat.
Another part of our immersion design is breath. What we really want to do is to make a breath-system that affects your stamina, aim accuracy, etc., so that when you are out of breath, it's for instance more difficult to aim. When making these small slices like Running Man and Bullseye, we always need to weigh up each feature against resources and time. Running Man was made almost from the gound up by eight developers in four months, and Bullseye in even less time. This means that we need to make some hard choices of what makes it and what doesn't in each release. At the same time we add more and more features to each release, so in time and in future releases all of your planned features will make it. Now, back to the breathing sounds.
Well knowing that we would not implement a full breathing system for this slice, I still wanted a simple breath-system. You have four different "breathing-states": idle/walk, run, sprint and exhausted. When you stand still or walk you hear a faint breath, when you run you hear a louder and more heavier breath, when you sprint you hear an even heavier and more strained sounding breath, and finally when you are exhausted you hear a loud and very heavy breath, with a "cooldown" to a point where you are not exhausted anymore. This crude system is far from perfect, but it still gives you a sense of being present in the world, as well as give you feedback of your stamina.
In the two alpha releases of Running Man, we had a stamina bar in the HUD, but we got quite a lot of fedback from our community that it was a bit "oldschool", so we removed it from the HUD and turned up the volume for the breath sounds, so now you need to listen to your breath to know when you are exhausted.
Real time / Characters / Combat Training Robot
The Kokuro Combat Training Robot - Built for destruction!
HD wallpaper (1920x1080) available in Briefing Room
But what about bots?
As for the bots, Kim (our Game Director) had a wish to have the footsteps sound a bit like Robocop - a damp, but still heavy sound when the foot is placed on the ground, and a servo/pneumatic sound for when the legs are moving. The same basically applies to the bot attacks. The movement sounds for both the player character as well as the bots are triggered by a small "expansion-script" I made to the locomotion system which makes the bot- and character-legs move.
When the bots are killed they give out an "electrical discharge sound", and when they hit the ground they give a "crash" sound, based on which parts of the bot-body hits the ground.
I added a "bip-bip-bip" sound to the Blaster bot, as it should be easier to distinguish it from the rest. The sounds for the Tank bot are pitched a bit down to make it appear slower and more heavy, and the Runner bot is always in "run-mode", so the servo-sounds are more high-pitched and aggressive. Some of these things were part of my initial design, but for instance the "bip-bip-bip" sound for the Blaster bot came later, as we found that it was difficult to "spot" the Blaster, before it came too close to you and exploded. Adding this "warning" gives a better sense of when a Blaster bot is active, so you can take your precautions.
Now you hear me, now you don't
In the real world you hear things differently if an object is between you and the audio-source. In some cases you cannot hear the sound, and in some cases it sounds "muffled", and you cannot hear the high frequencies (or "treble" if you like :-). In game-development terms, this is commonly known as "Audio Occlusion". The great engine of Unity doesn't support occlusion yet, but it might be part of their audio-roadmap for the future, as they are currently implementing a kickass audiomiddleware called "FMOD", which supports occlusion.
But I could not wait for this feature, so with a little help from our coders, I managed to build my own simple occlusion system. Basically, whenever I want to play a sound, I check to see if the player character has a clear line of sight to the audio-source - if line of sight is blocked, I play a sound where I have removed some of the high frequencies, otherwise I play the "normal" sound.
My plan is in the future to make a way better occlusion system, but for now it actually works, and gives a quite good illusion of occlusion.