Welcome back for the tenth installment of The Brick Dead Project: Adventures in Ignorant Game Creation! We’re getting the party started for this anniversary episode with music and sound effects. Sound effects? So… What am I supposed to use for screenshots?
We got the sights, but what about the sounds? Sure, it’s satisfying to blow up skeletons, but how much more satisfying would it be to hear their little bones rattle while we do it?
Fortunately, I actually had a leg up in this area. I had already gathered a not insignificant library of public domain sound effects from previous GUO Crazy Projects. Even better, I was familiar with my tool of choice: Audacity. Audacity is great! It’s simple, powerful, has just enough features, works exactly the way you’d expect, and, my favorite feature of any software package, it’s free.
Remembering my earlier experiments of just throwing new assets into my game without any real thought or plan, I took to crafting my soundscape ahead of time. It was a smart decision. I had learned more than C#, Unity, game design, and vector math. I had learned that doing ANYTHING without a little thought ahead of time frequently leads to frustration and waste. Also, my old creative nemesis, Force, would return to haunt me. What does Force sound like?
In the same way that painting, or looking at paintings, makes you see the world in a different way, listening to interestingly arranged sounds makes you hear differently – Walter Murch
Thinking about the elements in the game and what they should sound like led to one inescapable conclusion: Nothing fit. This sound was too long, that one was too short, the other didn’t have enough bass. Everything needed to be cut, pasted, modified, and blended together. I didn’t just want a crack when a brick was hit with a ball. It wasn’t what I created. I needed a beefy crunch and the clatter of shrapnel in the audio to match the visual effect I had previously created. It also needed to fit the timespan of the effect itself. It would take a good deal of tinkering and blending three different sounds together to get where I wanted. As usual, there was no turn-key solution.
Where I couldn’t remix and remodulate, I created from scratch. You can make a TON of interesting noises to fit unreal things just from mucking around with white noise! It was the much more down-to-Earth things that caused problems. The biggest challenge was undoubtedly fire.
Pop quiz: What does fire sound like? It doesn’t. Things burning make noise, but fire is silent.
I had a ridiculously hard time finding a fire sound that felt right. I listened to a ton of clips, mostly real recordings of stuff set on fire. I didn’t really like any of them. Small fires are silent with an infrequent popping sound, but it doesn’t really fit a video game. Large fires create a huge Whoosh! of air as they consume surrounding oxygen which sounds horrible when captured by a microphone. I turned to YouTube snips from film and games on a quest to discover why real-life fire sound recordings don’t sound right.
It turns out our senses may have been conditioned by our media. Movie and game fire doesn’t actually sound much like fire at all! You know what the best fire sound I got was? Crinkling wax paper with a low rumble mixed in. There’s a reason that the art of Foley sound effects persists to this day. We’re so conditioned by our consumption of media that real now seems fake. Much like some of the visual elements in the game, it was a case where doing something that was technically right felt wrong.
As for music, my initial thought was to just go grab some public domain classical recordings. A quick stop over a OpenGameArt.org changed that plan. While browsing around for a ‘meatier’ rock crushing noise, I happened upon their music section. There I discovered, and fell in love with, the work of HorrorPen. His fantasy themes fit my vision of Brick Dead to a T. They were playful with just a hint of darkness. Sadly, the loops are a little short. Still, it beats going with original over some played out classical tunes.
Adding my new sounds to Unity was, surprisingly, a breeze. You just add a sound component to your object, drop on the file, set your volume, pitch, and roll off distance, and you’re good to go. Unity even handles cool stuff like Doppler and positional audio without you needing to lift a finger. Balancing the volumes of all those sounds is a bit of a chore, but not difficult. Things can get a little tricky if you’re trying to play multiple sound files from the same source, but in cases like that, or when an object is being destroyed, I found it easier to just instantiate a new, invisible object at the location and destroy it when it was done playing. Using these little temp objects was a concept that had served me flawlessly in creating one-off particle effects and it worked just as well with sounds.
It's a cruel and random world, but the chaos is all so beautiful – Hiromu Arakawa
The basics of my new soundscape were in place. There was just one problem: It was driving me mad. Something was wrong. Worse than wrong, something was… Infuriating. But what?
I began disabling the sounds one by one until I found the culprit. It was a short little Zap! sound tied to the electrical arc on the shield. It was quiet, barely audible over the rest of the din, but it was constant. Zzzt. Zzzt. Zzzt. Every half-second with that machine-like precision PCs do only too well. Zzzt. I had inadvertently created the Chinese water torture of the video game world.
This revelation had profound effects on the project as a whole. It’s shocking (Zzzt!) what you can discover when all of your senses are engaged. The order of everything overwhelmed me as if I had just seen the sun for the first time in my life. The shield arc fired every half-second, the skeletons always moved along the same line, the dust settled the same was in the same amount of time, the bounce of a ball always sounded exactly the same. It was unnatural.
You don’t think about it, but lasers don’t go pew-pew-pew and guns don’t go tat-tat-tat. They go PEW-pew-p-peew-Pew-peew and rat-A-TAT-tat-tat. We’re used to a world where sound bounces off stuff, slides around, is absorbed, blended, and changed constantly. Sound is influenced by everything and it’s very easy to detect when it is not. More so than light.
It took days to add some measure of chaos to the game. Some things I recognized as being large projects going in, like adding random “endzone” destinations to Skelly. Others were a little more… new. The shield bounce, for example. I needed the sound to play every time, but I didn’t want it to be the same every time (I also didn’t feel like making a half-dozen different variations).
Finding the problem turned out to be a great more difficult than the solution. A single line of code read the current pitch of the sound file and changed it by a small, random amount. It fixed almost everything. This same idea was then reincorporated back into nearly every aspect of the game. From how long it took dust to settle to the frequency of our little Zzzt! buddy, most of Brick Dead’s effects were retooled to add a touch of chaos to bring them to life.
The ‘Pinch of Chaos’ wasn’t anything anyone would ever notice. That was the whole point.