Craft · Games

FMOD in Unity: Scoring a Sci-Fi Horror Game Out of Literal Sounds

DUSKOsound · Notes on the craft

You play the monster. A crab-like thing that has already killed most of an industrial cargo ship’s crew, and the game is their last effort to survive it. Nearly every sound in it was recorded for it, designed linearly, then rebuilt as an interactive system in FMOD and run in Unity.

The full tech audio walkthrough, twelve minutes.

Be literal on purpose

The sound team on the original Star Trek put real bird song and real nature ambience into a completely unnatural environment, because literal sound is what lets a viewer believe an invented place. I did the same thing here for a slightly different reason: to connect a player to a game that does not look like what it is.

So the sources are deliberately literal, and mostly domestic:

Nearly all of it was recorded for the project. A cable whip and some flame came from libraries, and that is the whole list.

The creature

Its voice is a live crab, a small dog and my own throat, all played through the resonance of a Pringles container to fake a bigger mouth. Gargling tiny amounts of beer, then inhaling and exhaling while constricting the throat, turned up a few absolute gems.

The flesh tearing and bone breaking is a recording of me eating a fresh cooked whole crab with butter and lemon, on my knees in an acoustically treated closet at two in the morning, to keep the room out of it. The dialogue for those same sequences is my wife and me, recorded in that same closet.

Its footsteps are chopsticks on Pringles on a resonant wooden tray, layered with my own work boots on sheet metal, because the creature is heavy enough to damage the ship it is walking through.

A score that never lets go

The theme is an elongated string section that simply holds tension. It never drops in energy, it sustains and loops. On its own that would read as thriller, or even drama. What makes it horror is a high, quick staccato string hit, close to a squeak. Sometimes it lands exactly in time with the music, and just as often one stab sits far enough out of the pocket to feel abrupt, and the subconscious reads that as fear.

The change music goes from horror to epic horror: tuba, flute trills, brass trills playing a triad, chaotic saxophone arpeggios, and a thick chord landing on the last two bars of every four bar phrase, so the energy has a constant on and off.

The win stinger has the violins ascending, one note per bar, and then that same switch flips on for one last epic chord. The lose stinger cuts straight to the thick chord with an ascending saxophone arpeggio over it, so it ends, but it ends unsatisfyingly, which is what gets a player straight back in.

Four problems FMOD actually made me solve

The spatializer dulled everything. The 3D object spatializer would not behave in this project, because the listener seemed pinned to the centre of the map rather than to the player. What eventually worked was the 3D object spatializer with distance attenuation off and a sound size of 10.0k. That collapsed the sounds to mono, which is not how they were designed, and it still improved the mix. Small multiband EQ bumps got the clarity back.

A reverb tail made the loop impossible. The change music has a low tuba note on the last two bars of each phrase, and its tail rings into the first beats of the next one. A loop has to start somewhere, and that frequency slot is empty in the start music, so the tail appeared out of nowhere every time the loop came round. The fix was to write a five bar section with no tail at the top, and keep the loop region in FMOD at four.

The transition would not fade. After a lot of hunting, it was not the transition at all. It was the release on the AHDSR modulation assigned to the track volume.

Win, then lose, then the ambience came back. Rather than run transition markers to a destination marker, I let the timeline play into a transition region with a quick cut to the end, and parked a loop there that holds the ducking snapshot open. Everything drops away except footsteps, which is how a player knows it is over.

Getting the room into the engine

The ambience runs three scatterer instruments split high, mid and low, fed to a reverb bus through a send so the convolution sits in parallel, which is as close as I could get to the parallel convolution reverb the whole thing was designed against in Ableton.

The lesson I took out of it, and the one I would give anyone starting: record a convolution of your own reverb return before you leave your DAW. That carries your mid-side EQ into FMOD with it, and keeps the reverb out of the way of the sounds you actually want heard. Export the linear sequence too, and keep it open as the reference while you build the interactive version, because the interactive one will drift.

Related

The same approach, on a spaceship with six engine states: Foley into FMOD. On scores that move with play: how adaptive game music works. On building a palette from nothing: foley from scratch.

Book A Call

* Contact me for a meeting outside these hours