What's save locking?
Prevent incompatible savegames from loading.
The (simplified) problem:
Theory for proper savegame check:
Prevent incompatible savegames from loading.
The (simplified) problem:
- dev creates a game using a complex custom python class/object, lets call it A
- game version 1 gets published, players play it, savegames contain class A-data and the info that it's version 1
- dev decided to remove/replace/ class A in version 2 with the new class B and knows that versions 1 savegames will be incompatible
- dev adds savegame version-check to the
You must be registered to see the links-label, that check is suppose to kick the player back to the main menu if he tries to load an incompatible savegame
- solved ?
- No. Attempting to load an old savegame will trigger an exception before the code even reaches the version-check because it tries to load object A data
- prediction: player tries version 2, tries to load his old save, sees exception instead of proper warning about incompatible savegame, uninstalls game
- result: usability is garbage, player is mad, dev is sad
Theory for proper savegame check:
- 'read' the version from the savegame before it actually loads
- check the savegame version:
- block load if incompatible savegame and display a message
- load if compatible