Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Unlock Steam Achievements Only When Triggered, Not on Save Load #1652

Open
cmfrydos opened this issue Sep 12, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@cmfrydos
Copy link
Contributor

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:

  • Helps maintain the integrity of individual achievement progression.
  • Prevents unintended achievement unlocks when loading external or older saves.
  • Aligns with how many other games handle achievement syncing.
@d0sboots
Copy link
Collaborator

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.

@catloversg
Copy link
Contributor

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:

  • Day 1: They destroy BN 10.1 without using sleeves. They satisfy the condition of CHALLENGE_BN10. The game cannot connect Steam servers in this day. They quit the game at the end of the day.
  • Day 2. They start the game. They enter BN 10.2 and use sleeves. Now, the game can connect Steam servers, but they don't satisfy the condition of CHALLENGE_BN10 anymore.

@cmfrydos
Copy link
Contributor Author

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.

@d0sboots
Copy link
Collaborator

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.

@gmcew gmcew added the enhancement New feature or request label Oct 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants