The purpose of this post is to provide some insight about the 3 most popular audio middleware for game audio integration, and a bit about Unity 5’s audio engine too.
I am taking for granted that you know what an audio middleware is, if you don’t and are interested in learning what it means and how it works, I found this concise but detailed article very accurate and informative, great introduction to game audio and its tools.
I have used Wwise, FMOD, and Fabric to a similar extent on various projects, and thought it would be helpful to some that I write down a few of my conclusions. I will do my best to keep this info updated as I continue to learn these software and as they progress themselves.
I will establish my preference right now, as you will certainly feel my partiality throughout this article: Wwise, by a thousand miles. I will support this with facts and observations of course.
First, let’s talk budget. I made this chart a short while ago to compare license pricing between Wwise and FMOD. It doesn’t include Fabric, but I’ve added Fabric’s licensing right after, taken directly from the website, along with the details of Wwise and FMOD’s licensing.
Basically, this means that the choice of middleware can greatly differ according to your budget. Fabric is generally cheaper, and it’s main advantage is that it supports WebGL and all Unity platforms, but if your game is of a certain scale, middleware such as Wwise and FMOD will allow you to push the technical limits further.
I wrote a few comparative documents which I will share here, feel free to download them.
This should hopefully be helpful in determining what software has the best capabilities.
Wwise‘s specs summary (click to get pdf)
Studios using Wwise (non exhaustive)
Key features in Wwise
- Can handle complex audio behaviors such as fades and containers like random, sequence, blend, and switch.
- Game “syncs” allow the designer to update state settings, switch values, and adjust real-time game parameters.
- The graph editor makes changing and tweaking curves easy for things like speed or pitch ramps.
- A built-in Soundcaster allowing the sound designer to work in a game-like environment, simulating 100% of the gameplay, including Real Time Parameters, providing a powerful test engine.
- You can easily build hierarchies of containers for complex behaviors and conditions.
- An audio “bus” can be used to group related sounds such as music, voices, and effects for volume control, side chaining, ducking and elaborate mixing.
- 1st degree randomisers on pitch, filters, and amplitude allow quick variability.
- Multiplatform simultaneous render with the possibility of customizing the settings for each of them.
- The Profiler and Performance Monitor built into the authoring tool makes debugging smooth and easy and greatly helps for optimization and memory usage. (You can watch the CPU performance, streaming buffers, voices playing and other details in real time).
- Translates complex multiple code lines scattered across scripts into few easy steps managed by the audio designer.
- All of these features are done in the authoring tool, and can be changed and tested by the audio designer, without help from the programmer.
- The programmer, instead of implementing the audio behaviors, just triggers the Wwise event name.
- Excellent and rapid customer support if needed.
Why use Wwise (over other audio middleware)
- Dedicated interactive music engine and layout, allowing greater variability and flexibility in the integration. This feature provides extensive adaptability to the gameplay, as opposed to the fairly limited integration options in FMOD. 1 hour of composed music, if well integrated in Wwise, may last for 30 hours of in-game music.
- Large amount of Plug-ins and effects imbedded in Wwise, such as :
SoundSeed Air plugins – generative sound sources using time-varying parameter sets to drive a synthesis algorithm.No source audio files are necessary (hence no space required).
Effect Editor – a series of audio processing effects that can be tied directly to Real Time Parameter Controls or other in-game variability.
- Midi support for interactive music and virtual instruments (Sample and Synth). This allows any MIDI input data (for example pitch bend or CC) to be attached to an RTPC-able properties on MIDI target of the music segment.
- Put simply, Wwise can implement more complex audio behaviors in fewer manipulations and greater autonomy from the audio designer.
Unity 5 VS Wwise Summary (click to get pdf)
Unity – Extensive scripting involved in audio integration: any behavior other than Play and Loop has to be scripted (see 1st degree manipulations below). This requires a considerable amount of a programmer’s time.
Wwise – Minimal scripting required: all audio behaviors are set within Wwise, the only scripting required is to call game parameters. This prevents unnecessary back and forth between the designer and a programmer.
1st degree manipulations
Unity – The only audio behaviors available to the designer are play, loop, high/low priority, volume, pitch, pan, and basic effects.
Wwise – The same functions and more are available in Wwise (including randomisers, initial delay, conversion settings, loudness normalisation, Real Time Parameter Controls, Game States, Motion Effects, sound instances limit, and more).
On top of basic manipulations, the designer can create multi-actions events as well as stop events (among others, see Wwise events below), avoiding the need for scripting these behaviors. It reduces complex audio events to simple manipulations
In addition, basic editing is available within Wwise, and allows to reuse the same samples more than once, saving space.
Unity – No 1st degree access to randomisers or containers dictating behaviors (such as random containers). Everything has to be scripted. Fewer possibilities for variability means that a higher number of sound files is needed in order to create variations (takes more space).
Wwise – Excellent possibilities for variability due to easy access to randomisers on volume, pitch, lowpass, highpass, a priority system, and other audio behaviors (see 1st degree manipulations above). These variations reduce the number of sound files needed in the game, saving space.
Unity – The only way to control game audio states and parameters is with Snapshots. Snapshots have limited flexibility, and any transition between them has to be scripted.
Wwise – Wwise allows for a much more flexible game parameter control, all manageable by the designer, and highly customizable: the Real Time Parameter Controls (RTPC).
Complex audio behaviors can be implemented without requiring more space or any more scripting than simple behavior. This creates greater possibility for creativity and elaborate sound design.
Unity – Non-existent. There is no differentiation between music and sound integration, making it difficult to create time-sensitive transitions and multilayered music implementation, essential for good dynamic qualities and to give feedback about the gameplay to the user.
Wwise – Wwise’s dedicated music integration engine is one of his greatest strengths: it allows for highly dynamic implementation, greater variability and flexibility in the integration.
Its features include bars and beat recognition, entry and exit cues which allow the layering of multiple tracks or sound cues in sync, a transition system allowing for seamless shifts and variations, and a stinger system making it possible to link game events with musical cues, in sync with the music.
This saves space due to the possibilities for dynamic integration, reducing the required amount of sound files needed.
Mixing and testing
Unity – In-game only, meaning that all the sounds need to be implemented in a functional way before the designer can be able to assess the result in relation to other sounds and to the gameplay. Modifications take more time due to back and forth.
Wwise – Allows the sound designer to mix as the work progresses, and can test all the sounds, as they would sound in-game with the Soundcaster session system. Wwise’s Soundcaster system allows to simulate a gameplay environment and listen to the sounds in real time. Modifications can be done instantly
Hierarchy and buses
Unity – Good system that allows micro and macro groups of sounds. Good for mixing levels and effects, but does not include behavior systems.
Wwise – Wwise has a similar “bus” and hierarchy system, but it includes parents of various kinds, determining the behaviors of the child (containers). This system of groups and containers include features such as Random, Sequence, Blend, Switch, Dialogue, and Motion.
Unity – Asset localisation can only be done with a licensed plugin and requires scripting.
Wwise – Wwise features localisation options: if any dialogue, Wwise can very simply generate multiple soundbanks for different languages, without having to replace assets or repeat manipulations, saving time.
Debugging and performance monitoring
Unity – More research needed.
Wwise – Wwise can connect to the game to monitor performance, to adjust the mixing and for debugging.
The Profiler and Performance Monitor built into the authoring tool makes debugging smooth and easy and greatly helps for optimization and memory usage. (You can watch the CPU performance, streaming buffers, voices playing and other details in real time).
Unity – Limited. The manipulations are mainly accomplished through scripting (see Scripting above).
Wwise – The user interface allows the designer to implement audio behaviors quickly and test them immediately.
It makes it easy for the designer to tweak audio behaviors and parameters (with interfaces such as the RTPC graph editor, the sound property editor, and the music editor), avoiding unnecessary back and forth between the designer and a programmer. It also allows for a more detailed integration.
Audio compression and format conversion
Unity – Must be done manually.
Wwise – Multiple options for audio compression and format conversions within Wwise, saving space and time.
Wwise can create non-destructive converted files needed for different platforms, saving run-time memory. Conversion settings for each platforms can be customised : number of channels, sample rate, compression Codec, and more. The interface also allows to compare data from the original audio files to the converted ones in order to assess how much memory is saved.
Unity – Free (audio engine comes with Unity license).
Wwise – Requires a license (see pricing above).
Wwise VS FMOD
I don’t have a fancy document about Wwise VS FMOD, but can talk a little bit about it, hopefully this can help you reach a decision.
First, both are good, and allow you to do many advanced things.
Quick advice before getting into details, I’d still chose Wwise over FMOD (mostly for all the reasons enumerated above about Wwise), but to be honest your main argument here might be budget. Depending on what ‘budget slice’ your company is, one or the other may be more expensive. If the license is the same, go for Wwise.
One argument in favor of FMOD that keeps coming back is the fact that it is designed like DAW (digital audio workstation, sound designers will know what I’m talking about).
So it is, kinda. But you have to remember that your grid is not always time, and that your objects are not always sound files but rather containers. Because games are not a linear media, and sound integration is not sound designing or editing.
Wwise is nothing like a DAW. So yes, it has a certain learning curve, but once you understand its layout and principles, you realise that it allows for a much more in depth integration and it opens possibilities beyond what you can even think of in terms of creative integration. To this day, I have never encountered any technical limitations using Wwise. This isn’t true for FMOD, or Fabric.
Wwise VS Fabric
Fabric was a fantastic tool when its only other option was Unity’s audio engine. It provided more control over audio implementations, allowing for better quality audio with more variations and possibility for interaction.
But now that tools such as FMOD and Wwise exist, the fact that Fabric is a set of tools within Unity instead of a standalone software gives it a lot to catch up for. FMOD and Wwise are way ahead of Fabric in terms of:
- Amount of scripting needed
- 1st degree manipulations and workflow
- Real time parameters
- Music integration
- Mixing and testing
- Debugging and profiling
- User interface
- Compression and ‘per platform’ settings
- DSP and plugin usage
- and more.