Bank management: best practices?

Having multiple banks becomes more useful the bigger the game and if it gets updated often. A small mobile game likely won’t benefit from split banks, but a large open world adventure game definitely will. It provides a few benefits:

  1. Multiple banks can act as a buffer for loading in priority sounds. For example, you might need music to play straight away for the game’s main menu, but won’t need dialog until after the game has loaded - so having both loaded at the same time (or everything loaded in one bank) won’t be beneficial. Rather than risking the music loading in slowly as the FMOD Studio system loads an unnecessary dialog bank, you can just load the music bank and start using it immediately.
  2. Multiple banks are good for resource management. There might be some frame-critical sounds you need playing immediately, in which case you can use Bank::loadSampleData() to preload all sample data into memory. This can’t be done at an event level, so if you have one single bank then it will load everything into memory which might not be optimal, especially with larger banks. Having lots of smaller banks and only preloading into memory ones you need will help in keeping resources free for more pressing needs.
  3. If your game needs updating and you have made adjustments to one event, if everything was loaded into one bank then it will need rebuilding in its entirety. For example, if you have one 1GB Master.bank and made a small change to one event, the updated bank will also be 1GB. However, if you only made changes to one event in a separated bank, only that bank will need updating, likely being significantly smaller in size for the player to download. Separating the banks out further into metadata and asset banks will further help with this if the change is only done to the metadata (eg. volume or parameter adjustments).
  4. On the subject of mobile games, with multiple banks you can have the initial download of the app really small (just a master.bank and master.strings.bank) and then download the rest of the banks after initial setup. This is popular for larger games to keep the initial download size small.

I hope this helps. Please let me know if there’s any more information you need.

5 Likes