Beauty of Annihilation

Tuesday, December 16, 2008

World At War Audio Technology

Audio Technology
The Call of Duty franchise has always been about great gameplay, great graphics, great design…and great audio. One of the reasons why the franchise sounds so good is because it has always tried to be as authentic as possible --from the full musical scores to firing authentic period weapons, COD has always been on the forefront of what you can do with audio.

Call of Duty: World at War is no different. Given the amount of processing power that we have on the newer platforms, we knew we could do some new things with sound to deepen your experience and really bring our levels to life.

We are doing a lot more than just recording a sound in the field and playing it back on your console (or PC) when an event happens. We now have to think about the context where a sound is played and what kinds of things we need to do in the game engine to more accurately simulate real life.

Two important pieces of new technology for World at War are Occlusion and Flux.

Occlusion
So what IS occlusion? It’s the concept that if a sound has to travel through an object, its going to sound different than if the sound plays with a clear line of sight. If you imagine someone yelling at you and you slam the door in their face, their voice would sound significantly more muffled through the closed door than the open door.

Using lots of fancy programming (and CPU cycles) we are able to figure out whether a sound has to travel through something, and if it does, affect the sound with low pass filtering. This is a very simple EQ’ing method that can make sounds sound ‘muffled’ when they have to travel through anything in the game---geometry, buildings\props, walls…whatever.

Sounds in World at War can also be only partially occluded. If you drop a grenade behind a low wall and then go prone, even through the sound must travel through the wall to reach you, you wouldn’t want it to be as occluded as it would be if it had to travel through a building. The system is pretty precise and you get various degrees of ‘muffled’ sound, depending on the situation when a sound occurs.

Because it is completely dynamic in nature, the game’s audio is constantly changing and morphing based on where you are in a level. Learning to use these new audio cues will make you a better player…because for the first time in a Call of Duty game, you can distinctly tell the difference between someone walking next to you vs. above or below you, or a shot fired in the distance vs. close by, but behind a solid object.

So really, occlusion is a way to make sounds behave more naturally and realistically which has a lot to do with how sound is moving in the real world.

Flux System
Once you realize that no sound is truly static in the real world, and you have modeled frequency dampening somewhat realistically, the next logical step is also simulating how sound travels.

One of the things that gun lovers already know is that the sound of a gun is not static; the reflections of the shot move and bounce off of everything in the environment. It was truly awe inspiring to hear these period weapons firing and literally destroying the air when the fired. We decided that we needed to figure out a way to get the game engine to be able to reproduce these reflections.

So, we set up several mikes in various places and recorded single shot sounds, mainly listening for the echo of the gun and not the shot itself.

In the studio, we created stereo composites of the echo sound (traveling from mike to mike), and then created a new system in the game called the “Flux” system. Its intention is to keep sounds moving and traveling (especially echoes). So for our gun shots, especially sniper rifles, you’ll hear the shot, followed by its echo. The echo travels down the trajectory of the shot, but it moves much more slowly than the actual bullets. Because this is essentially a ‘stereo’ sound being played in 3D, it also adds an element of ‘space’ to the sound that you just can’t get with a mono file. Provided that you survive a sniper shot that is fired at you, you’ll hear the reflection of that shot as it passes by you. Granted, you probably won’t take a lot of time sitting there listening to the shot, but because it is behaving realistically you’ll be able to pinpoint where the shot came from.

It turns out that this system was also perfect for creating shockwave sounds off of explosions. If you toss a grenade, you’ll hear the initial ‘pop’ of the grenade blowing up, followed by a loud WOOSH that begins where the grenade blows up, and ends well behind you. So the system ends up supporting shockwave sounds, as well as echoes and reflections.

Like every other sound, the Flux sounds can also be occluded. So if you toss a grenade down a hallway, you’ll get a very different sound than if you throw it into an open area.

A good place to really listen to the flux system in action (without risking your head) is just after the intro to Makin Raid. When they give the signal to start blowing up the village, you’ll really hear the flux in action during the last hut explosion. You’ll not only hear the building and its shockwave, but you’ll also hear hundreds of wood pieces hitting the ground all around you and it moves by.

Conclusion
We’ve introduced a great deal of new sound technology to Call of Duty: World at War and are currently developing more for our next title. Hopefully this entry helps you understand a little more of what goes on under the hood of our game engine. We aren’t just replaying recorded sounds anymore and we’re actively creating lots of new exciting technology---all in the interest of making your gaming experience more realistic, exciting, and most of all…FUN.

5 comments:

Dominick said...

you guys really did an awesome job on cod:waw. kudos!!

MrsLoomis said...

WOW....I'm impressed

Brian Tuey said...

Lol...maybe I'll write one up on that tool next :)

Anonymous said...

you guys rock! keep up the great work. flux capacitor FO LIFE

Anonymous said...

Nice write up... CoD games sound the best when you guys work on them :)