Backwards Compatibility

When developing and upgrading your game, it's important you think about backwards compatibility. Currently, the way we handle people joining previous iterations of the module is to maintain the version of the original oooh for every following audience member. With every new release, our goal is to immediately upgrade every previous iteration to the latest version.

The main things to keep in mind when updating your module are the following:

  • Manifest creator/audience inputs/outputs
  • Manifest creator to audience mappings
  • Manifest replay data information structure
  • Persistent data (per oooh or globally)

For example, if in one version, you had a creator output video called one thing, but then renamed it in a future release, you should make sure you support retrieving the original version as well. If you don't, the script will likely throw an error somewhere in the splash screen or loading screen, since this data is usually retrieved early on. Otherwise, you'll likely run into an error like this, or a similar variation of it.

1258

Common error when importing assets that no longer have the same name

If an issue comes up with an "infinite loading screen" after an upgrade, consider checking asset differences first.
In each of the bullets with regards to manifest replay data and persistent data, you need to make sure to support previous iterations of those objects if you are to change them.

Ideally, you should avoid changing the structure of your data unless necessary, and always consider previous iterations.