Nox: Sound Breakdown

Hello again! As promised, here's an extensive look at the sound design of my latest game, Nox. But first, just a bit of housekeeping with a quick general update. I've wrapped up college, officially done being a student once again. I really enjoyed it and while I'm glad I went, I wish that I'd done it sooner. I've made some good friends in my cohort and I'll miss seeing them every week, but hopefully I'll see them out in the industry. With school and this project all done, I'm back to focusing on contract work and Skywind for the time being while applying to whatever sound design positions become available. I'm hoping to wrap up Mechdivers by the end of the year, but we've heard that one before. I'm not going to stress too much about it, but I'd like to see it done and not left unfinished. I also have some plans to make some videos about audio systems, tips for sound design in games, that sort of thing. That space on YouTube is pretty packed but I often find that there are some resources that just aren't available that I'd like to address. Again, no definitive date in mind for those, but ideally I'll be getting started on some of that after getting all my demos in order. Speaking of which, I've made a Wwise implementation demo showing off some of the systems and designs I did for Nox, similar to the one I made for Zero Possession all those years ago, and of course, I made an updated demo reel featuring this shiny new game, which you can watch below.

With that all out of the way, I hope you enjoy this deep-dive into my most ambitious project yet.

WHAT IS NOX?

Nox is a first-person stealth horror game set on an asteroid mining station left in shambles after an alien monster got loose. You must stay quiet as you work your way to the heart of the mine with a bomb to eliminate this threat, then get out before it detonates.

I've been toying with the idea of making stealth games and horror games for years, so it's been great to finally do both on the same project. I designed the interactions with the Stalker alien to be explicitly driven by the player's noise, which I thought would be really cool and furthers the sound-forward nature of the game. I had a few core goals in development: utilizing Wwise features to the fullest, a full audio treatment at a AAA level of quality, and to fill in gaps in my experience. I also intentionally wanted to record as much of my own material as possible to keep growing my ever-expanding personal library, limiting third-party sounds to just layers within sounds designed from my own material, if necessary at all.

PREPRODUCTION

For this new project, I opted to completely remake my asset spreadsheet from scratch to accommodate Wwise and all of the production shortcomings I've run into, and as a result, I've now got this massive sheet for very thorough documentation of cues. In this spreadsheet, I've got everything from routing, spatialization and positioning information, and what kind of game syncs it may be hooked up to. Like I said, it's pretty thorough, and really the only issues I ran into with this one is with events with multiple layers or cues that require multiple events. Alongside this, I filled in the tasks for the four main sprints on Jira, each of which were 2-4 weeks long. I didn't end up adding too many more tasks other than bugs needing fixing, but did end up tweaking when I'd be tackling certain tasks. To wrap preproduction, I made empty events in Wwise for everything, hooked up the routing for quick and easy integration and testing, spending a few hours to get everything ready for sounds.

Nox Asset Spreadsheet

VIRTUAL SOUND SYSTEM

Something I haven't touched on yet is the design of the stealth system. Taking a ton of inspiration from Amnesia: The Bunker (go play it if you haven't, it's fantastic), I liked how the beast localizes the player character depending on the level of noise they make, narrowing down their location until it's interested enough to pop out of a hole and look around for them. Taking this system and simplifying the AI end of it, I wanted to see how I could build on the sound side of it, resulting in my virtual sound system. In short, whenever the player makes a sound (footsteps, jumping and landing, opening doors), an event is dispatched to a listener containing a few values about that sound: its loudness, radius, and priority level. As well as these, the room or environment that the player is in has an associated ambient loudness and amplification factor. In order for the alien to hear that sound, it runs through a couple equations and checks, mainly checking if the alien is within the radius multiplied by the environment amplification factor, and if the loudness at the distance on a falloff graph is greater than the ambient loudness of the room. If it passes all of that, then the alien's interest is increased in accordance with the difference between the sound's perceived loudness and the ambient loudness, and what the priority level of the sound is, resulting in the alien investigating the location of the sound once it is interested enough. One really cool idea I wish I'd had the time to properly implement is having different objects in the environment emitting their own ambient loudness, being capable of masking the sound of the player. During initial planning for the project, the asteroid mine level would have had excavators that made massive amounts of noise for a few seconds before cooling down in near silence, really leaning into the idea of masking the player's movements and anything loud they needed to do before the machines shut down. In addition to that, the reactor level would have involved the player working their way down scaffolding and platforming while shutting down or turning on systems, all dynamically changing the loudness of the area, which I still think would have been a fantastic level and great use of the system. Ultimately though, it still drives the gameplay interactions and is the best stealth system I've made with all my pre-Mechdivers survival horror prototypes included, and I look forward to taking this design and building on it for any future stealth games.

FOOTSTEPS & FOLEY

Recording the rock footsteps in my Foley pit

I really wanted to nail the footsteps and Foley of the player character in this project; with the benefit of hindsight, I wish I'd done more with this in previous projects, and this was my chance to do a great job with it. I ended up with eight physical materials (concrete, broken glass, metal thick, metal thin, plastic, rubber, rocks, and wood) and seven sets of footstep states (scuffs, sneak, walk, run, sprint, jump, and land), recording each set and material with the same steel toe work boots and nearly all of it with a RODE NTG1 shotgun mic from shoulder level and a RODE M5 pencil condenser at foot level. All of this summed up to 448 files in total with eight variations per state and material combo. For the next big footstep library I do, I think I'll do similar, but moving the shotgun mic lower when crouching for better positioning of the listener.

With the Foley, I used four layers: a backpack jingle, denim and flannel cloth, denim and t-shirts, and a leather jacket, and through a mix of the performance and some level adjustment in Reaper, each of the layers and each of the cues sounds pretty great together. This is surprisingly the first project I've really done with this level of Foley for the player's movement, so I'm pretty happy with how it turned out.

AMBISONICS

I don't know exactly what possessed me to want to record quads for the ambiences here, but I thought I'd take advantage of the "Position + Orientation" option in Wwise and double the channel count for the room tones. I started off by recording a few stereo tracks that I'd spin the mics 180-degrees for a second recording, then mix them as quads using the ReaSurround plugins, but I thought I could do better using the resources I had access to with the college. Through it, I had the privilege to rent out a RODE NT-SF1 ambisonic mic and a ZOOM F6 for a week, and I made the most of it, travelling up north to Tobermory, Ontario for a night, stopping at various caves and trails along the way. Unfortunately, as fun as the trip was, I still didn't have proper cave sounds I needed for Nox's asteroid mine area, as those were all open air and featured prominent birdsong and trees. So the morning after returning, I went out on a solo trip to caves about an hour east, and that's where I captured the cave ambisonics you hear in the game. Once the caves and nature sounds I wanted were all recorded (I got some excellent recordings in Georgian Bay at the waterfront as well), I got as many room tones as I could before my week with the gear was up. Some day I'd love to get my hands on those again, and the F6 I think is going to be my next recorder if I end up needing more channels than my F3 has again.

Unused cave recording at Grieg’s Caves

Cave recording in the Warsaw Caves

More cave recording in the Warsaw Caves

Once I got to editing, I copied over the nearly 30 GB of raw ambisonic files, opened up the RODE SoundField plugin and a binaural decoder, and started converting them to AmbiX format for designing. This was a great learning experience, doing everything from recording all the way to setting the proper channel configuration for the bus in Wwise, and from it I've decided that I'll be using ambisonics or at the very least quads moving forward.

ENVIRONMENTS & INTERACTABLES

With such high fidelity room tones, I had to lean into strong environmental sounds to make this space mining station as atmospheric and immersive as possible. I opted to fill in the ambiences first with the 3D listener automated sounds (or Scatterer sounds for the FMOD users), all of which playing with the same random panning, distance, and delay times. These cues are the station creaks and metal groans, rock and dust debris within the asteroid, and whispered reversed voice samples. I didn't want to fill in too many metal and rock sounds for the station and asteroid respectively because of the alien's traversal sounds filling in a lot of that while keeping the player on their toes, almost not knowing whether a sound came from the alien or not. The environmental objects thankfully didn't step on each other's toes too much, with nearly all of them having a fairly distinct texture and nothing being overused helping lend more novelty to each time you come across something, like the server rooms and the layers of EMF recordings, the multi-layered modular synthesis alarm loop for the airlock, and the mechanical clicking of the nuke and the escape pod. Everything lives in its own space which helped greatly when it came time to mix.

REAPER session of the pneumatic doors

The most important sounds for the game were the door interactions due to the sheer frequency of opening and closing doors. Ideally if I had an artist on the project, I would have had more door variety rather than repeating the one model over and over, but with that restriction, I opted to leave as many layers as I could open for variation. I kept the processing fairly clean, mostly just pitch shifting/time-stretching, compression and EQ, and reverbs to really emphasize it further after applying the room reverbs. Surprisingly, most of the layers are rocks, but the metal resonances are the core part, and that carries over into the other doors sounds, like the elevator and the airlock. The elevator door was a lot more rattly, with metal gates and old elevator doors, which came together to achieve the run-down, less-than-ideal state of the facility I wanted to convey. The airlock doors were primarily friction squeals, with everything from metal on concrete, a copper towel rack, sliding glass doors, and a barn gate, with a lot of time-stretching and Saturn 2 before gluing everything together with compression and EQ.

CREATURE & VOICE-OVER

Stalker Vocals Design Sample 1
Carter Menary
Stalker Vocals Design Sample 2
Carter Menary

When I was initially concepting projects to tackle as my college capstone, I noticed I had a creature-sized gap in my experience and portfolio that I desperately wanted to fill. I had done creature sound design years ago on a project with Sedna Games but somehow avoided it on virtually every project since. I've got a mildly limited third-party library at the moment for animals, and since limitations lend to creativity, I opted to make all of the layers with my voice or throat. I experimented with different trills, throat distortion, breathing through a cardboard tube, gargling juice, and putting a contact mic on my throat while making all kinds of fun sounds. I recorded each "effect" for about 5-10 minutes, aiming to get as many variations in as I could for all of the cues, before cleaning the files up with noise reduction, chopping them up, and creating what I called my creature creation kit. Going off of the Airwiggles conference talk for Clair Obscur: Expedition 33's creature design and GDC talks on the subject, I ended up using Kilohearts' Snapheap plugin for the majority of the processing of layers, relying on the convolver, pitch shifter, and formant filter being controlled by the audio follower. I sorted files by length and synced up layers before mixing, and to really tie everything together, I sent everything through a tremolo and the kHs Resonator to mimic the limitations of a voice box and the creature's throat. In Wwise, I set up breathing events for light and heavy breaths, and assigned each vocal a different priority. I fed everything into an Actor-Mixer with a voice limit of one to ensure nothing overlaps. I also set custom attenuations for the volume, low-pass, and high-pass over distance to let it blend more with the world while maintaining the player's awareness of its position whether it's crawling through vents or in the next room. All in all it came together pretty well, and I’m excited to keep working on more creature sounds in the future; I’ve been looking at ultrasonic mics for this exact purpose.

The voice-over in the game is pretty limited, with only a character I voiced who I lovingly refer to as "dead guy" or "phone guy", and the voice for the PA system in the station, which was brilliantly voiced by my girlfriend. The processing was fairly simple for my character, no noise reduction outside of declicks, formant and pitch shifting slightly then sending it through convolution, heavy compression, and EQ to emulate a phone's limited bands, and having the same phone processing for the creature's sounds within the sound cue, all to give it a cheap and worn-down feel. The PA voice I wanted to be much cleaner and presentable to contrast the state of the station and the lines she says, with the delivery being between robotic and peppy in tone. For processing, I sent it through quite a bit of noise reduction to clean up as much as I could, gentle compression to even out the peaks, de-essing and some dynamic EQ to keep the vocals bright while limiting the bands a little to simulate the speakers. Moving over to Wwise, I applied two different reverbs to give it the boomy sound I was looking for, then got to work on implementing the system. As I outline in my Wwise implementation video, I ended up using Wwise External Sources for the random lines and randomized them while posting to all of the locations of the speakers simultaneously, and for that I also limited the voices, but moved them to virtual voices, so that when one resumes after getting within range of another, it picks up smoothly exactly where it would be.

MIXING

Starting after I had the ambiences all in, I mixed as I went along, adjusting reverb send levels, attenuation distances, placement of ambient sounds, volume levels. Thankfully with it being a relatively short game, taking about five minutes to run through without the Stalker, I was able to do a full run every time I would add a new cue, making absolute sure I didn't miss a spot for it or that it was incongruent before moving on to the next one. The mixing process was fairly straightforward, without too much in the way of issues except for the PA voice and getting that to sit properly with all of the reverbs, the balance of the one-shots versus the external sources, and the level of attenuation in different areas.

Having done volume sliders in every major project I work on, I wanted to keep that going with a total of six sliders: master, ambient, characters (the player and the Stalker), interface, music, and voices (PA and dead guy). I'm a big proponent for audio settings for accessibility and research purposes, so I like to practice what I preach and provide ways for players to (mostly) isolate what I worked really hard on. On previous projects, I've also supported surround sound but had never actually tested it, so that was another opportunity to try something new and ensure playback was proper up to 7.1.4, as well as with audio object support for an extra options I wanted to try out.

DELIVERY & POST-MORTEM

Nox is currently available for download on Itch.io here for free. It’s about 10-30 minutes depending on playstyle, which I’m pretty happy with.

On pretty much every game you’re going to wish some things were different or more time to iron things out, and here I’ve only really got a small handful of things I’d change, mostly art or gameplay related, but overall I’m very proud of my work here. The feedback I’ve received from playtesters and my supervisors has been that the atmospheric sound design gets the players unsettled consistently, which is the best thing as sound designer could hear for a horror game. This being my first big Unreal and Wwise project made for lots of great opportunities to gain experience and grow my skills along the way.

With Nox wrapped up, I’m taking a bit of time off from game development to recover, but I’m already thinking of what’s next, mostly small games, until I’m ready to wrap up Mechdivers. In the meantime, I’ll be working away on contracts that come up, gigs and recording with my band, picking back up Skywind sound work when I can, and possibly started up some YouTube videos on sound.

If you’ve read this far I appreciate it! I’ll see you next time.

Next
Next

New Game++