Forward compatibility for achievements data
Posted: Tue Nov 07, 2023 8:05 am
Currently, rolling back the game to a previous version causes the achievements data file to be deleted and recreated, clearing all achievements. This happens even if the game is rolled back only one version, when there have apparently been no changes to achievements between the two versions.
I propose that future versions of the game should read the achievements data file in a forward-compatible way, i.e. they should attempt to read the achievements data file even if the file was created by a later version of the game. Certain kinds of unreadability should also be tolerated, i.e. unrecognized achievements or unrecognized achievement types, so as to minimize the data loss if someone rolls back to a previous version of the game for a single use then switches back to the latest version.
The use case:
About once a year, I roll back the game one version (via the steam beta settings) in order to connect to a multiplayer server that is still running the previous version of the game. I'd prefer to not lose all of my in-game achievements each time I do this.
(Carried over from this other topic: viewtopic.php?f=49&t=109442 )
I propose that future versions of the game should read the achievements data file in a forward-compatible way, i.e. they should attempt to read the achievements data file even if the file was created by a later version of the game. Certain kinds of unreadability should also be tolerated, i.e. unrecognized achievements or unrecognized achievement types, so as to minimize the data loss if someone rolls back to a previous version of the game for a single use then switches back to the latest version.
The use case:
About once a year, I roll back the game one version (via the steam beta settings) in order to connect to a multiplayer server that is still running the previous version of the game. I'd prefer to not lose all of my in-game achievements each time I do this.
(Carried over from this other topic: viewtopic.php?f=49&t=109442 )