Sign in to follow this  
Followers 0
DF Anna

Programming Update #5: Audio Implementation

149 posts in this topic

Hi guys :D! In my first forum update ever, I’ll be talking about the audio implementation in Double Fine Adventure.

01.jpg

Thanks to you, our awesome backers <3, we are able to afford some great audio content for the game, including professional voice recording and original score composition. If Reds is to have such high quality audio, it really becomes important to have a sound engine that could do it justice – one that can handle playing many thousands of lines of dialog, music, and sound effects at high fidelity, while also keeping the download and memory budgets within reason.

Over the years, our sound designers and implementers (the people who put the sound into the game) have grown very fond of the audio tools in the Buddha engine (the engine Double Fine developed for Brütal Legend and has used almost exclusively since then), because they make doing sound work for our games downright luxuriant. We use FMOD Designer and a proprietary sound engine integration layer we’ve written and honed over the years to provide a concise interface for implementers. So far, Double Fine has shipped six games using this technology (Brütal Legend, Costume Quest, Stacking, Iron Brigade, Once Upon a Monster, and Double Fine Happy Action Theater – and more on the way), several of which have won audio awards. After some consideration and looking into other options, we decide to port over our Buddha audio solution to Moai.

Options We Turned Down

We did consider several other options. One is Untz, which is available for free with Moai and would be a good choice for a smaller project. Unfortunately, Untz doesn’t support positional sound (more on that later), decompresses space-saving encoded sounds like ADPCM into memory (which means you save on download size, but not on memory size), is not as feature-rich as FMOD Designer, and would require a significant workflow change for our audio team.

Another option is FMOD Ex. FMOD Designer actually sits on top of FMOD Ex, which is a powerful but lower-level sound engine. It’s efficient and fast, but to use it without the FMOD Designer application layer, our audio team would need to collaborate with programmers to achieve many of the features FMOD Designer already provides. It would also require workflow changes we’d like to avoid. Although FMOD Ex is listed as “unsupported” in Moai’s SDK, Zipline may bring it back online soon. I encourage teams using Moai who don’t require the nice tools that come with FMOD Designer to take a look at FMOD Ex.

Our Audio Solution

Here are some reasons we chose to port Buddha’s integration of FMOD into Moai:

• We wanted creative control for the sound design in the game to be entirely in the hands of our award-winning audio team. FMOD Designer provides a sophisticated GUI tool for Audio Designers to create, adjust, add cool filters to, mix, organize, etc all the sound in the game without any intervention from a programmer. Here is what the tool looks like:

02.jpg

• We’re all well-versed with the tools and the interface, which means we’ll be able to devote our time solely to creating awesome sound for the game, instead of building or learning untried technology, or worrying that a feature we’ve come to love won’t be available with our new audio solution.

03.jpg

• Having an immense amount of high quality audio content introduces some risks and challenges for our sound implementation (e.g. having sound fit within our download and memory budgets, making sure the compression we use introduces no noticeable artifacts, making sure that we’re able to play high demand sounds with little to no latency, etc). Going with a solution we’ve had good experiences with in the past and one that works on every platform we need lets us sleep better at night.

• Speaking of multiple platforms, not all devices are created equal – some have rather sophisticated sound capabilities, while others may not. With FMOD Designer, our audio team can work as if they’re targeting the most advanced platform that FMOD supports and the experience will scale well to whatever a platform running the game is capable of. For instance, you may be playing on a pimped out machine with 7.1 surround sound or a humble device with stereo sound. FMOD will leverage however many sound channels your device offers for playback, while using the same sound asset library.

• Our FMOD Designer sound engine integration layer has a simple but powerful interface that takes care of a lot of stuff for you behind the scenes, making it easy for our implementers to add sound hooks to the game without having to worry about platform-specific details, sound drivers, and so on. In addition to that, the new interface I’ve written in Moai will allow our implementers to use some cool Moai engine features. For example, with attribute linking, you’ll be able to attach sounds to existing game objects as they move around.

• This is a personal favorite reason to go with FMOD Designer: it has some really rad features, you guys. All kinds of highpass and lowpass DSP (Digital Signal Processor) filters, reverb, echo, and much more, all of which can be configured by audio designers in the FMOD Designer GUI tool. The feature that is probably the most important for Reds is the ability to play sounds with a position in game space. Our artists will be doing a lot to bring the game’s environments to life with their use of light, particle effects, subtle environment animations, and so on. Similarly, positional sound can do so much to subtly breathe life into a scene, with say, birds chirping up and a little bit to the left in the sky over there, and that tree’s leaves rustling in the wind over to the right, and whoa, a rocket taking off in the distance in front of us.

04.jpg

The visuals and audio working in concert really make the game world feel more lush and immersive. I’m excited that our audio designers will have these awesome features to work with.

Buddha’s Sound Engine Is Now Open Source

Buddha’s sound system is a wrapper around FMOD that takes care of many details, such as platform-dependent configuration, codec and memory management, exhaustive error checking, and some other heavy lifting. We’ve also written a few cool features we needed for our games in the past that you may find useful, like getting the tempo of a song using sync points or finding the dominant frequency of a sound. It uses both, FMOD Designer and FMOD Ex side by side: FMOD Designer for playing general sounds, and the lighter weight FMOD Ex for dialog lines. The result is an audio system that is feature-rich and easy for sound implementers to use, because they get a convenient interface – only a couple lines of code needed for potentially very complex behavior – while everything is kept fast and efficient.

I’ve ported this technology to Moai and also wrote a Moai SDK interface that makes it easy to play sounds and lines of dialog, get all kinds of information about them, control their FMOD settings, etc, all from within Lua. In a later post, I’ll walk you through an example that takes you from an Audio Designer creating a sound all the way to how it gets played in the game.

Some time soon, the port will be added to Moai’s main engine and become fully open source. If you are a developer using Moai and you’re interested in licensing FMOD Designer for your game, you won’t need to write a line of API code to use it as your audio solution. It will have a swanky Moai interface, so you can get right to making your game sound great straight away. :D!

What this means for Reds is that all the professional dialog, sound effects, and original music you’ll hear when you play the game will sound really awesome, no matter what platform you’re playing it on!

Share this post


Link to post
Share on other sites

Sounds like sound is important...and that will be the last bad pun from me until next time. Thanks for the update Anna, it's interesting to see how these choices come about. I look forward to seeing where the audio goes from here. (Side note resisting making another bad pun about sound.)

Share this post


Link to post
Share on other sites

Great stuff!

I understood pretty much everything even if I know nothing of sound programming!

Also making Buddha’s Sound Engine open source seems awesome news too!

04.jpg

Is this how the game is going to look like? Meh, I'm disapponted -.-

/troll

Share this post


Link to post
Share on other sites

What? I was just going to ask who did that amazing art. I love the Mary Blair shading on that plant in the front.

Lee, we're changing the whole look of the game!

Share this post


Link to post
Share on other sites

Haha, did Anna also draw all of the Redbots? I want to put little glasses and a tie on him and give him a stick pointer.

Share this post


Link to post
Share on other sites

The only way to make this update better is to link a soundfile with voice actors (hopefully the one who did Dialogue Tree, he is the best) putting their hearts into reciting "rustle rustle" and "chirp chirp" lines :D

Share this post


Link to post
Share on other sites
Haha, did Anna also draw all of the Redbots? I want to put little glasses and a tie on him and give him a stick pointer.

All the Redbot fanart is mine, yes. Tools used for rendering above masterpieces: crayon on backs of index cards. :D

Share this post


Link to post
Share on other sites

Really cool update, neat to hear about this aspect of the game! Keep it up, and yes I loved the little robots here as well.

Share this post


Link to post
Share on other sites

Great update! As a software developer in a totally different field, i find these insights into game development really enlightening.

Share this post


Link to post
Share on other sites
Haha, did Anna also draw all of the Redbots? I want to put little glasses and a tie on him and give him a stick pointer.

All the Redbot fanart is mine, yes. Tools used for rendering above masterpieces: crayon on backs of index cards. :D

Brandon devised a toolkit over an entire weekend? Pffft. Anna devised this toolkit in, like, five minutes. WHAT NOW, BRANDON?!

Share this post


Link to post
Share on other sites

This is a great update thanks Anna!

I've known for a bit how sound can really make a game immersive but haven't put much thought towards how sophisticated the tools can be. Making the sound engine from Buddha Open Source is an incredibly generous action. Thanks to everyone at Double Fine!

Also, I loved the crayon art of Redbot. I sure hope Redbot makes a cameo in Reds... The game's practically CODENAMED for him... ;-)

Share this post


Link to post
Share on other sites
All the Redbot fanart is mine, yes. Tools used for rendering above masterpieces: crayon on backs of index cards. :D
Ah, yes. I like the use of shading, I assume you used the rapid back and forth of the crayon technique? Very advanced indeed!

Share this post


Link to post
Share on other sites

FMOD licenses charge per-platform. Is it really worth it just so you can use FMOD Designer?

edit: Looking again it looks like "Licensing is capped at $15,000 USD regardless of how many platforms are purchased" So not as bad as I thought.

Share this post


Link to post
Share on other sites

Thanks for the update. I love that you guys are adding features to the Moai platform - that's a good way to spend our backer money!

Share this post


Link to post
Share on other sites

Great update. I sometimes forget how important audio is to making a believable world and a great game. It's fantastic to see audio getting the attention it deserves. Fascinating to learn more about it and how programmers create great tools for the dev team.

Thanks for the update :)

Share this post


Link to post
Share on other sites

"Painterly style"? Psh, whatever grandpa! The kids these days demand "Crayonerly Style". Get Cassie Creighton on the phone right now!

Share this post


Link to post
Share on other sites
Crayon art style would be amazing in a game :)

There was a text adventure called Arrival, or Attack of the B-Movie Clichés which had a few illustrations made with crayons, modeling clay, etc. which fit well with the story of an eight-year-old boy who encounters a pair of aliens. I remember it as being amusing and well made, but not all that memorable. I haven't played it in ages, though.

Share this post


Link to post
Share on other sites

Well cool. Yeah good sound quality is a must, thats something that Telltale have messed up time and again. Its like they dont have good ears or something.

Why is it that S is always the letter which you can hear bad sound compression the most?.

Bad sound quality is really immersion breaking, because it shift focus from the game world to why does that sound so annoying.

As long as you keep download size to oh lets say 20GB or so i wont mind. No need to put artificial limits like again telltale oh in 2012 WE MUST NOT GO OVER 600mb!. riiiiiiiiight. thats a bit crazy.

Its like you have these amazing voice actors who come in a an do their amazing stuff, then its all ruined by shitty compression xD i just dont get that.

But its good to hear that Double Fine understands the importance of quality audio.

I was able to find the file i recorded from Back to the future games. Listen to the quality here and tell me that doesnt hurt your ears ? :)

http://gratisupload.dk/vis/59363/

Share this post


Link to post
Share on other sites

Thanks for the update! FMOD is really great piece of software.

Share this post


Link to post
Share on other sites

Thanks for these posts! I’ve been pretty vocal in the past about what I’d like to see in the DFA updates. When the first episode of the documentary came out it turned out to not be my cup of tea and I stopped paying much attention to the project in general. Then these Programming Updates started coming out and not only are they crunchy enough to bring me back, they have inspired me to learn more about game development.

Share this post


Link to post
Share on other sites

Something for everyone.

The Double Fine abides.

Share this post


Link to post
Share on other sites

Another great update, and making the sound engine open source is totally awesome. Also, let me just say that I love the artwork. It is positively charming.

Share this post


Link to post
Share on other sites

Great post, thanks for an interesting read Anna. FMOD Designer seems like a nice out-of-the-box solution for sound designers to quickly start creating complex effects :).

How smooth was the integration from FMOD Designer to the engine? Do sound designers define variables to use as axis for the graphs, e.g. speed, and programmers then connect that to the proper variables in the engine or can the engine expose variables to Designer for them to choose from? I've been toying around with sound integration a bit so I jumped at the shot to ask some questions.

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0