LDJam user 238142

Ludum Dare 48

Dynamic Audio systems in Dieper & Deaper 01- Adaptive Music

I've decided to make a series of blog posts to explain some of the audio systems I designed for our game Dieper and Deaper (https://ldjam.com/events/ludum-dare/48/dieper-deaper). I hope this is of interest to some folks here! mainemmenu/emcropped.jpg

The game is developed in Unity, using FMOD for all audio. It's a spy themed infiltration game, with a sort of Noir/60s spy movie vibe that informed a lot about how I composed the music.

I used a single FMOD event to play all the music in the game, with four separate parameters triggered in code to manage the system: Menu, Panic, YouLose and Filter. The event contains several music sections: a Menu loop, Gameplay loop, Panic transition, Panic loop, and a Loud Coda for the ending. Screenshot 2021-05-01 at 15.28.46.png

Menu Parameter

This one is quite self explanatory, as long as the Menu parameter is set to 1, the music sticks to a simple menu loop. If the value changes to 0, a transition is triggered at the end of the current 4 bar section into the Gameplay loop, keeping coherence. When the Menu parameter is set back to 1 at a later point (when the player quits back to the menu...), a similar transition is triggered back to the menu loop.

Panic Parameter

Because the game is about infiltration, the player has a meter that fills up when they are acting suspicious. We decided to musically emphasise the moments of panic when that meter is nearly full and the player is close to being caught. For this I created a faster, more intense section of music (235bpm instead of 140). The panic parameter is set to 1 when the suspicion meter is nearly full, triggering a transition into the Panic loop. This switch occurs at the beginning of the next bar (to react quickly in fast gameplay circumstances), and includes a short transitional drum fill (randomly selected from a set of 3 fills to avoid too much repetition). The drum fill bridges the gap into the new tempo, ensuring a smooth transition, and serves as a nice audio cue telling the player "Time to panic!". If the player successfully avoids capture, the meter falls back bellow panic levels, and a short faded transition back into the "calm" gameplay loop occurs.

YouLose Parameter

This is basically what happens when the game reaches a conclusion. I initially meant to create different variations for victory and loss, but I found that my "You Lose" music actually works well for all outcomes. When the player is caught, or finishes the mission, this parameter is set to 1, and the music jumps to this very short bombastic fanfare/coda section (with big drums and brass chords). Again, the switch is set to only occur at the beginning of a bar, to keep things smooth and logical. After the section has finished ringing, the music automatically goes back into the Menu Loop, ready to restart.

Filter Parameter

This is a simple Low Pass filter that creates that classic mufflied effect when the player hits pause. It's completely unnecessary polish in the context of a jam game, but I thought I might as well add it, as it's simple enough to implement.

Thanks for reading!

If anybody has any questions or remarks regarding FMOD or the system, please let me know in the comments! And of course, go check out our game "Dieper and Deaper" to hear the system in action!

You can also listen to a non-adaptive version of the music here:

https://soundcloud.com/pat-cleaver/dieper-deaper-ost

Dynamic Audio systems in Dieper & Deaper 02 - Animal Crossing Style Gibberish

Here's part 2 of my series of blog posts explaining some of the audio systems I designed for our game Dieper and Deaper (https://ldjam.com/events/ludum-dare/48/dieper-deaper). This time, I'm discussing the "Animal Crossing style" gibberish I used for Dieper's voice. The game is developed in Unity, with FMOD for all the audio.

mainemmenu/emcropped.jpg

Dieper is the player character's partner, waiting outside in the van while you infiltrate the building. He speaks to the player via an earpiece/walky talky type of system. This manifests as text bubbles, each letter appearing in succession. I wanted to try to make the cartoon-y gibberish sound effect made famous by Animal Crossing.

Text screenshot Dieper:Deaper.png

One sound per letter

In order to create sounds that are at least somewhat related to the text being spoken (despite being quite abstract), I decided to map the sounds to the alphabet and have the UI trigger a separate sound for each letter. I recorded myself saying every letter of the alphabet (or making open vowel sounds for variety), and created separate FMOD events for each letter. I sped up the recordings, and processed them to have a crackly radio quality to them.

Alphabet 1 screenshot.png

It turned out that one sound per letter was too dense, so we only played the sounds on alternating letters. I also tried both high pitched voices (similar to the NPC barks in the game), as well as a lower mumbly sound, and decided that the contrasting low voice worked better. I also added some radio static sounds that trigger at the beginning of each new speech bubble, as well as when Dieper finished speaking to add to the walky talky effect.

Triggering the events and adding questions

To trigger the sounds, I named all my alphabet events single characters (A, B, C etc...), and fed the current letter into my FMOD PlayOneshot command. As an extra detail, we decided to have the sounds pitch up at the end of sentences that finish with a question mark, to give the questions a different cadence. I simply duplicated my alphabet events, pitched them all up, appended their names with a 1, and checked for the next letter in code (if it's a ?, then add 1 after the letter to the OneShot command, triggering the higher pitched versions).

Alphabet code.png

Conclusion

In the end, creating this system was more about the experiment than the results for me. I believe it works quite well as it is, but could be significantly improved given some time to fine tune the actual recordings (and possibly the speed of playback). All in all, it was a fun little challenge!

Thanks for reading!

I hope this is of interest to some. If anybody has any questions or remarks regarding FMOD or the system, please let me know in the comments! And of course, go check out our game "Dieper and Deaper" to hear the system in action!

You can also find part one of this blog series, discussing the adaptive music system here: (https://ldjam.com/events/ludum-dare/48/dieper-deaper/dynamic-audio-systems-in-dieper-deaper-01-adaptive-music)

Dynamic Audio systems in Dieper & Deaper 03 - Cartoony Cactus Costume Footsteps

Here’s part 3 of my series of blog posts explaining some of the audio systems I designed for our game Dieper and Deaper (https://ldjam.com/events/ludum-dare/48/dieper-deaper). This time, I’m discussing the musical footstep sounds that trigger if the player picks up the Cactus costume to sneak around. The game is developed in Unity, with FMOD for all the audio.

mainemmenu/emcropped.jpg

Yes, You can be a sneaky Cactus in this game!

My favourite mechanic in Dieper & Deaper is the Cactus costume. The game is about stealth/infiltration, and we already knew that disguises would be a key mechanic. @Saskle (our wonderful artist) started making props for the environment, and one of the earliest decorative elements was a potted cactus. It wasn't long before a throw away joke evolved into a central mechanic: what if you could dress up like a cactus, and become undetectable when you stand still?

Cactus costume shot.jpg

Mickey Mousing

To underline the comedic effect, I decided to design a "cartoon sneaking footsteps" sound to go with the costume. The common technique of syncing the accompanying music with the actions on screen is called "Mickey Mousing" (going back to Disney's 1928's "Steamboat Willie"). Typically for a sneaking cartoon character, the sound of a xylophone, pizzicato strings, or even a bassoon in an ascending or descending scale tends to be used for footsteps.

So I made several sounds, finally settling on high pitched pizzicato strings combined with xylophone (lower strings melded too much into the background music). For pitches, I simply took the minor scale(in the key of my background music, to avoid clashing), spanning 3 octaves, for a total of 21 pitches.

A 240 step sequence up and down three octaves

I organised my footsteps into an FMOD multi-instrument, set to trigger them in sequence from lowest to highest pitch, and back down again, but I found this became repetitive and irritating too quickly. Instead I settled on a longer sequence that still maintains the "up and down" feel: Always ascending through the scale, but dropping back down an octave every 8 notes. When I reach the highest note, I descend back down the scale in a similar mirrored fashion. This means the sequence only truly repeats after 240 footsteps, but keeps its cartoony "going up and down a scale" feeling. The system is built in such a way that if the player stops for a while, then starts walking again, the sequence does not restart, it instead continues wherever it left off.

Pizz footsteps.png

Conclusion

All in all, it's a minor audio detail, that some players might not even notice, but I think it really adds to the comedy of the Cactus Costume, and personality of the game by emphasizing the old time-y cartoon vibe.

Thanks for reading!

I hope this is of interest to some. If anybody has any questions or remarks regarding FMOD or the system, please let me know in the comments! And of course, go check out our game "Dieper and Deaper" to hear the system in action!

You can also find Part one of this blog series discussing the adaptive music system here: (https://ldjam.com/events/ludum-dare/48/dieper-deaper/dynamic-audio-systems-in-dieper-deaper-01-adaptive-music)

And Part two on the Animal Crossing style gibberish voice system here: (https://ldjam.com/events/ludum-dare/48/dieper-deaper/dynamic-audio-systems-in-dieper-deaper-02-animal-crossing-style-gibberish)

Ludum Dare 49

A Tale of Three Elevators (Audio implementation challenges in "QA The Game")

QA the game pic.jpg

Now that the dust has settled a bit, I decided I'd write a blog post to discuss a series audio implementation challenges I faced while creating "QA The Game" (https://ldjam.com/events/ludum-dare/49/qa-the-game). The game is made in Unity, with FMOD handling all of the audio.

Briefly, the idea for the game is that the player is put in the shoes of a QA tester, and has to identify and tag any bugs they encounter in this first person "walking-sim-esque" experience set in an office building. Minor spoilers for one of those bugs coming up.

Diegetic audio

I decided very early on that there should be no non-diegetic sounds in the game (besides a couple of small UI things, but I suppose those are still diegetic for the QA tester). My reasoning was that I wanted to sneak in plenty of audio "bugs" that need reporting, and that having blanket music playing throughout the level might distract from them. I also figured that a realistic office environment didn't really need a score per-se. This meant NO BACKGROUND MUSIC without an in game justification. But I still wanted to find a way to compose and sneak in some music, so I thought of a couple of options to have in world music playing.

I settled on two sources: a radio somewhere in the level, and the elevator which will be the focus of the rest of this blog.

Music as a bug

I set about composing a simple bossa-nova loop for the elevator (the cheesier the better!). When it was done, I made a "broken" version to serve as a bug that needs fixing. For this I used a tape player emulator, constantly increasing and decreasing the playback speed to make it sound like it's playing on a broken warped tape deck, with added noise for flavor. The "broken" version plays from the start, and switches seamlessly to the "correct" version once the player has found it and reported the bug.

Occlusion troubles

It would have been easiest to have the elevator doors stuck open, and the music playing in the ceiling, but we wanted a fully functioning elevator, with doors that open and close. I didn't particularly want to deal with making a "proper" audio occlusion system for a jam game (ray tracing etc...), but I also couldn't completely ignore the fact that the elevator music would lose all its credibility as a diegetic sound if it didn't change when the doors open and close. So I cheated with an FMOD snapshot that lowers volume slightly and applies a lowpass filter to muffle the sound. This actually worked very well! I just had to trigger the effect when the doors are closed, and release it when they're open. Or so I thought...

Elevator Pic LDJ49.jpg

An elevator that goes nowhere is no fun!

At this point, I didn't realise that my programmer/level designer team-mate had already planned to push the elevator one step further and make it possible to ride it! So, as soon as I went to test my implementation, I discovered that I could open the doors, step in to the elevator, and the doors would close automatically behind me, triggering my muffled sound while the player is IN the elevator. So I went and reprogrammed my trigger behavior, made a simple trigger box inside the elevator so that the sound would not get muffled as long as the player stayed standing in the elevator. Problem fixed, occlusion system sorted. Or so I thought...

Sometimes, an elevator can hide another!

Once again, I didn't know what my team-mate had been building on his branch. I quickly found that even though the elevator was setup with a trigger box that should keep the FMOD muffling snapshot from firing, the music would get muffled as soon as it started moving. At this point, I got on voice chat with my team-mate and discovered there were in fact 3 elevators in the level: one at the top, one at the bottom, and one that animated during the ride. The player was just being teleported from one elevator to the other (the illusion is effective, because I had no idea, and I was MAKING this game!). So I copied my trigger box over into each cabin and solved my occlusion problem once and for all!

A last minute Easter egg at the end of the ride

You're starting to get the picture, my team-mate and I weren't exactly constantly telling each other everything we were building, so he had one final surprise left for me. He pushed his updated level design to git a bit under 2 hours before the end of the jam, and with it, the basement that waits at the end of the elevator ride. I had no idea it would be more than an empty room, but the nature of that basement meant I felt I HAD to make one final adjustment to my elevator music system. So in the final minutes of the jam, I composed a third "hidden" version of the music that plays only in the basement, and I'd be doing it a disservice if I described it here: I'm afraid you'll have to play the game, ride the elevator, and discover it for yourselves!

Thanks for reading!

I hope this is of interest to some. If anybody has any questions or remarks regarding FMOD or the system, please let me know in the comments! Check out the game here: https://ldjam.com/events/ludum-dare/49/qa-the-game And I'd love to hear about other cool audio design and implementation work you fine folks did during this jam, so link me to your games and tell me about them!!

Ludum Dare 51

Any particularly cool soundtracks?

deploy helper bot artwork.png

As a music composer/audio designer, I get excited to hear all the different soundtracks my pears make during game jams. Anybody have some music they made for this LD that they'd care to share? Or any games people have played that are especially worth checking out for their audio?

I made a sort of throwback synth-wave track for our game "> deploy helper bot" that is sneakily dynamic: the music only progresses from one looping section to the next as the player reaches new parts of the level by solving puzzles. This hopefully makes the music feel less repetitive and it always ramps up appropriately no matter how fast the player progresses through the game. It's discreet and simple, but works quite well I think.

You can listen to a linear version of my track here: https://on.soundcloud.com/PtRET

And of course try out the game here for the true experience: https://ldj.am/$297278

And please link me to any games or soundtracks I should be checking out!

Ludum Dare 52

Anyone care to share their cool soundtracks or especially good sounding games?

As a composer/audio designer, I'm always on the lookout for great sounding jam games and love to see what my peers manage to make over the course of such a short period of time. In that spirit, please share any great sounding games with me and I'll be sure to give them a play/listen!

My team decided to make game themed around various animals and their fight to survive during harvest season. This for me evoked childhood movies/TV shows like The Animals of Farthing Wood. I decided to make an orchestral soundtrack, inspired by the classic chase scenes in children's adventure films of the 80s/90s (and beyond). With less time pressure I would have gone deeper into massaging the samples to get an even more real sounding orchestra, but I'm actually quite happy with the results.

You can listen to the track here: https://on.soundcloud.com/bRPk7

Of course try out the game here for context: https://ldjam.com/events/ludum-dare/52/flee-the-farmland

And please link me to any games or soundtracks I should be checking out!

5545a.png