What's the best way to load banks?

We’ve encountered a fun little issue that I am unclear on.

So when building a game in Unreal, the immediate first level that gets loaded needs a different bank than the Master bank, so I load it like so…

loading banks

However, this seems to cause issues where the bank might have not loaded fast(?) enough, resulting in FMOD events not triggering at all.

So, that makes me wonder, what’s the best way to load banks so issues like that don’t happen?

Am I perhaps running into an issue here where the very first loaded map in unreal HAS to be a master bank?

If your bank has to be loaded at the beginning of the game, why don’t you load it at the same time as the master bank?
Here is a great answer on managing banks, that maybe don’t respond exactly to your case but could interest you: Bank management: best practices? - #5 by richard_simms

Hey thanks, this is actually helpful information! Simply put, this is my first time using FMOD, so I just didn’t know the best practices!

Alcibiade’s answer is correct: If you need a bank’s content at the start of the game, you should load that bank at the start of the game.

The master bank includes all the things that aren’t specific to any one event, but that every event needs to function. For example, it includes the project mixer, without which none of your events can be correctly routed or mixed. You should therefore load the master bank when your game first starts, and keep it loaded until your game is exited. Other banks can be loaded and unloaded as the need arises, but the master bank always needs to be there in the background.

Many FMOD Studio users deliberately don’t assign any events to the master bank, unless they’re confident those events might need to be played at almost any time in their games.

I would tend to do the opposite: everything in the master bank, until it appears there’s a good reason to split banks. :slight_smile: (hence the post I quoted before)

1 Like

I thought that loading everything on the Master Bank would take unnecessary resources and it was my understanding that it would be generally better to leave it empty unless absolutely necessary. Is that wrong?

The doc says:

Assigning events to a master bank is not recommended. This is because a master bank must be loaded at all times, meaning that it is not possible to unload the bank in order to conserve memory. However, in small projects where only one bank is needed, assigning events to the master bank may be more viable.

and

Because a master bank is loaded into memory at all times, it is generally best for performance to keep it as small as possible by assigning no events to it.

But that’s confusing in some aspects, that’s why I created this post and get a thorough answer by richard_simms. To sum up, the doc was aimed more at big projects. If you intend to load and forget all your banks at the beginning of your game, you have your answer: you won’t benefit from splitting your banks rather than putting everything in the master bank, in terms of memory management.

That makes sense, thanks

i split out banks to make pushing faster/more granular to source control

While that is more efficient when updating just one or two banks, be aware that every bank adds a small amount of overhead, so having many small banks will result in a larger total bank size than having fewer, larger banks with the same content. It’s a trade-off that’s appropriate for some projects, but not others.