Editorial on the Technical Implementations of Achievements

Achievements as a concept has been popularized by Microsoft’s Xbox 360. Since their appearance, not only have they spread like fire across games, it’s gotten to the point where there is demand for them in games that lack them. Even retro games are getting unofficial achievement support through emulators and the likes. However, something I don’t like about achievements is how they are almost always bound to a third-party account rather than bound to save files in a game.

When games store their achievements locally to a save file, or at least in the game’s data, I can replay said game in the future and hunt for the achievements yet again. It makes even more sense when the achievements are more along the lines of “win this mode” like the ones you earn for winning cups in Slipstream.

Google Play Games resets everything for the game, not just the achievements.
Google Play Games resets everything for the game, not just the achievements.

When it’s bound to a third-party account however, they’re saved to the account. Removing them from said account is either not possible (at least on GOG Galaxy) or bound to all your game data, including progress and possibly cloud saves (like Google Play Games).

Binding achievements to a third-party service can also induce lock-in to said service, as some games implement achievements on Steam, but the same game on GOG may not have them. Should the developer choose to implement an in-game interface for the achievements, the service lock-in issue is reduced as even if they don’t implement achievements in a specific service, they will still be available in-game. This also means the game will have to read the achievements from a save file, which is easily cleared when compared to whatever configurations game services offer.

Retro City Rampage uses its local interface if Play Games was not found on the device, and uses the Play Games interface if Play Games was found.
Retro City Rampage switches between its local achievement interface and the Play Games interface depending on if the latter is installed.

A particularly noteworthy example is Retro City Rampage DX on Android. If Google Play Games is not installed, or you’re not signed into it, you will see the game’s own achievement interface. If you’re signed into the service, you will see the Play Games achievement interface instead. This avoids the replay-ability and lock-in problems I have outlined above.

I would love it if more developers had an in-game achievement interface rather than relegate the functionality entirely to third party services and clients.

You can read more editorials here!

Did you like this article? Consider supporting Indie Hive through Patreon! Patrons receive an early access article on Mondays!

Leave a Reply

Your email address will not be published. Required fields are marked *