Open cmfrydos opened 2 months ago
I agree with the desirability of this feature, and the proposed solution. However, it will/would require significant rework of how achievements are handled, in particular across the browser/electron boundary. Also, I think we would need a "sync achievements to Steam" button on the achievements page, to handle edge cases where something got wrong/stuck, otherwise people could "miss" the window of having an achievement be granted and then be unable to get it.
Instead of syncing all unlocked achievements upon loading a save, Steam achievements should only be unlocked when the in-game conditions for those achievements are met in real-time. This means that achievements would trigger and sync only when the player personally accomplishes the required tasks during their session, not retroactively based on the state of the save.
What will happen if the game cannot contact Steam servers when the player satisfies the condition of the achievement and then they do not satisfy it anymore? For example:
CHALLENGE_BN10
. The game cannot connect Steam servers in this day. They quit the game at the end of the day.CHALLENGE_BN10
anymore.Also, I think we would need a "sync achievements to Steam" button on the achievements page, to handle edge cases where something got wrong/stuck
I agree with that, this would also solve the scenario CatLover was describing, and would be a nice addition to the proposal.
What will happen if the game cannot contact Steam servers when the player satisfies the condition of the achievement and then they do not satisfy it anymore?
Currently, our in-game achievements are one-way: once achieved, they can't be lost. And steam achievements are granted based on these.
My proposal would be to keep this general design, but also track achievements earned in the current session. Steam achievements would be granted from those instead. This limits the impact of network issues to "only if longer than the play session."
Having a toast or prompt on load prompting to grant the unsynced achievements might also be better than in the achievements screen.
Problem:
Currently, whenever a save game is loaded, all unlocked achievements from that save are automatically synced to Steam. This can be problematic if you're loading a save file from another player or from a different playthrough, as it unintentionally grants achievements and disrupts your own achievement progression.
Proposed Solution:
Instead of syncing all unlocked achievements upon loading a save, Steam achievements should only be unlocked when the in-game conditions for those achievements are met in real-time. This means that achievements would trigger and sync only when the player personally accomplishes the required tasks during their session, not retroactively based on the state of the save.
Why This Matters: