Ren'Py persistent data compatibility during engine upgrades
0 reputation · 18 Sept 2023, 15:15 UTC
When upgrading a project from Ren'Py 7.x to Ren'Py 8.x, the engine handles persistent data and save files differently due to the transition to Python 3. While persistent objects are designed to survive across sessions, major engine version shifts can introduce serialization incompatibilities.
The goal is to ensure that player progress and persistent flags remain intact without requiring a full reset of the user's data store. However, it is unclear how the engine manages the transition of custom objects stored in the persistent store when the underlying Python version changes.
Technical Constraints
- Dependency on
config.save_versionfor save file validation. - Differences in object serialization between Python 2.7 and Python 3.
- Lack of a built-in automated migration framework for persistent data schemas.
What is the recommended mechanism for migrating custom persistent objects across major Ren'Py version boundaries? Does config.save_version provide a hook to transform legacy persistent data before the game initializes?