Bank files and SDK library version

Would anyone have any experience or knowledge around how the bank files and library versioning work as independent entities?

What I am interested in knowing is if one have, let say a game, running on the users device and then have resources such as bank files on server for future optional content expansion, would that approach work?

In short: would an old device install support future bank files without having to upgrade the core installation itself?

Any thoughts and information on this topic is greatly appreciated.

Banks will be compatible across all patch releases i.e. 1.05.XX

Banks may be incompatible across minors releases. Breaking changes will always be documented in the release notes.

Thank you the information.

So in this edge case scenario I understand that there may be some issues in regard to that if there is introduced an incompatible change.

Would there exist an ‘update bank file’ tool in the SDK for locally installed bank files if the game was updated with a newer FMOD library?

This situation has already happened, it just updates the format when you load it into a newer version of studio, and you rebuild your runtime banks.

Thank you for the follow up.

I understand from the answer that this is regarding the project files that gets upgraded and then a rebuild is conducted by developer.

So in the following scenario:

  1. User has a game installed with FMOD runtime 1.05.XX on her/his device.
  2. User unlocks and downloads extra game assets from game server where the banks are built for that version (1.05.XX), so all works perfectly for now.
  3. In the future, the game gets updated with a newer build of FMOD, let’s say version 1.1, which for plot of this story has a breaking change for version 1.05.XX bank files (which the user has already on the device).

Question: in this approach of architecture, would that require the user to re-download these game assets from the game server which are 1.1.XX ready or would there be anything on the FMOD runtime that can manage on-device-upgrades for 1.05.XX bank files already there?

Here is some more information on bank file versioning…

We support both backward compatibility (new code loads older bank) and forward compatibility (old code loads newer bank).

Our policy is to maintain backward compatibility for as long as possible. Presently this extends back as far as version 1.03.00 (when the new bank file format was introduced). So for example, if you have existing banks that were built with Studio version 1.05.xx, you should have no problem loading these with a future version of the library, say 1.06.xx or 1.07.xx.

We also provide support for forward compatibility, although this feature is more limited. Our policy is to maintain strict compatibility across patch releases within the same minor version. For example, a game that was compiled with FMOD version 1.05.02 will be able to load banks that were built with Studio version 1.05.09. Basically, any 1.05.xx version of the library should be able to load banks built by any 1.05.yy version of the tool.

However, we do not guarantee forward compatibility across larger version increments, such as going from 1.05.xx to 1.06.xx. That means old game code that was compiled with FMOD 1.05.xx will not be able to load banks built by the new Studio version 1.06.00 or later.

Hopefully that further clarifies how bank version compatibility works.

1 Like