[Editor's Note: Peter Drescher's last article for O'Reilly Digital Media ("Could Ringtones BE More Annoying?!") was such a hit that we asked him to expand on the concept. The following article is an edited transcript of his session "Creating Audio for Mobile Games," which he presented last month at the Game Developers Conference. To simulate the live experience, we've sprinkled audio and video clips throughout the story, corresponding with the ones Drescher played from his T-Mobile Sidekick during the presentation.]
Good afternoon. My name is Peter Drescher, and I am currently sound designer at Danger, Incorporated, makers of the Hiptop mobile internet device, also known as the T-Mobile Sidekick. I used to be a road-dog bluesman piano player until about 15 years ago, when I managed to get a job doing audio for multimedia. Since then, and through no planning on my part, I've become something of an expert on making little, tiny itsy-bitsy teeny-weeny audio files sound like, well ... anything at all.
First I did soundtracks for After Dark screen savers that shipped on floppy disks. Then it was music stamps for the General Magic device, web audio for 56k modems, and these days, ringtones and game audio for mobile devices. And that's what I'm talking about today.
Now, when I say "mobile device," I'm talking about a cell phone or "smart" phone, but not the PSP or Game Boy. In the context of this presentation, a mobile device is defined as something that contains a radio for transmitting and receiving voice and other data over a cell phone network. We are talking about devices with fairly sophisticated operating systems, like Nokia and Motorola cell phones, or devices like the Treo and the Sidekick, because we are concerned with interactive game audio produced by the device OS (as opposed to phone conversations, FM radio broadcasts, or iPod libraries).
Figure 1. Peter Drescher plays a game while listening to music on his custom black nanoHiptop.
When making sound effects and background music for any game, you're trying to enhance gameplay and create a fun, exciting audio experience for the user. The last thing you want to do is be annoying, irritating, painful, or trite.
You really don't want to be repetitive.
You really don't want to be redundant.
You really don't want to play the same sound over and over again.
You really get the idea.
Unfortunately, this is frequently exactly what happens when your entire audio budget is less than 100 kilobytes, as is mostly the case in resource-constrained situations like the current mobile environment. Given that one second of "CD quality" audio is about 86K, you're going to have to use some tricks of the trade if you want to have more than a single sound effect in your game.
The most important trick is to be as ruthlessly efficient as possible. You want to squeeze every last drop of variation out of each and every byte of audio data at your disposal. Repetition is the enemy, compression is your ally, and creative use of limited resources is your battle cry. If you're making sound effects, this means low-resolution, highly compressed samples used in multiple ways. If you're writing music, it means MIDI. Using the techniques I'll be demonstrating here, it is possible to produce interesting, interactive, non-repetitive, evolving soundtracks for mobile games using absurdly tiny files. The real difficulty comes when trying to make these little tiny pieces of digital audio crap actually sound good. But it can be done, and here's how we did it.