The choices you make when creating SoundBanks will affect the amount of work that goes into managing them and can also impact the game’s performance. We recommend that both the sound designer and programmer work together to develop a strategy that works best for your game.
Following is a brief overview of the different ways you can manage SoundBanks in Wwise:
One SoundBank to Rule Them All
In most cases, your games probably will not have extra memory, but putting all your sounds in one location has a big advantage: it is very simple to use and maintain.
- Easiest way for sound designers to maintain the content of the SoundBanks
- No need to recompile the game when changing the content of the SoundBanks
- No complex in-game loading and unloading of SoundBanks
- No need to track in-game which sounds are available or not
- Inefficient usage of memory because all Events, structures, and in-memory media for the entire game are loaded at all times
Multiple Full SoundBanks to Load per Level/Scene
This method works best for single player games where all sounds and motions are driven by a single location. Splitting the content into different SoundBanks helps to manage the game’s memory more efficiently than if you were to use a single SoundBank.
- Generally requires less memory than the “All-in-one” technique
- Can be easily integrated in-game
- Not well adapted for online or Event-based games that have complex audio or motion requirements
- May cause some media file duplication loaded in memory
- May increase the total space of the SoundBanks on disk
Per Media Type
Games can be very complex and there are a variety of factors that affect the way sounds are triggered. For example, in an Event-based or object-based environment, different sounds can be loaded into the game’s memory based on the proximity to other objects in the game. Therefore, every object in the game could have a list of SoundBanks that are loaded when they are within range or simply because they exist.
- Optimizes memory usage
- Gives you control over what media is loaded at any point in the game
- Requires a lot of communication between the sound designer and the game developers to determine which SoundBank must be loaded and when
This method gives you more control over the media that is loaded whenever Events are prepared. Only the media associated with both the Events that are prepared and the Game Syncs that are currently active is loaded into memory. All you have to do is specify which Events and Game Syncs are possible and the game will load the appropriate media.
- Simplifies bank generation process
- Minimizes level of media granularity
- Maintains a low overall memory usage
- Eases automation of the process
- Loads only useful media
- Potentially increases the number of reads and seeks on the disk
- Reduces control over the total amount of memory used
- Can cause high streaming bandwidth when a lot of Events are prepared
It is possible to decompress Vorbis audio files ahead of time. While this will increase the size of your SoundBanks, it will also reduce the amount of time it takes to trigger the sound. This can be used in conjunction with any of the above methods to optimize the management of your sound assets.