Dev here. We decide the achievements. We have to set them up manually for ps5, xbox and steam. The idea is to give achievement hunter types more gamplay basically. Although certain game devs use achievements as a form of analytics. When you get an achievement like “Level 2 finished” that’s because the devs wanted to know how many players got that far in the game.
It’s a little different for steam/xbox/ps, but generally there’s two kinds of achievements. Trigger achievements and value achievements.
The trigger type ones are the ones that fire once, like when you beat a level or get a certain item or something. These basically have an api call like TriggerAcheivement(achievementID).
The value type ones are the ones like collect 1000 gold or kill 500 enemies. You could choose to handle this manually, and then just fire an achievement trigger, but this usually becomes complicated with multiple saves or crossplay, etc. So instead, there’s an api call like IncreaseStat(statID, 1). And you call that when you kill an enemy or whatever and once it’s been called 500 times, the achievement activates.
You usually set all the achievements/stats up in the steam/xbox/ps backend and then your game is just responsible for calling those api functions when appropriate.
There are tons of games without any ancillary steam features, the only things I don’t think I have seen a game without are the forums section and community tab.
The same way you pay when you buy something. The fact that you reach for your wallet does not mean the store is mind controlling you into paying, they make it mandatory and so you comply.
Edit: to clarify, other people are saying this is not the case in Steam, but that for xbox and ps it is mandatory to ship games with achievements.
You are a game dev and want to sell my game on steam, steam allows only games with at least 4 achievements to be eligible for distribution on their platform, you think of 4 achievement that more or less make sense for your game, you ship the game with the achievements.
You wouldn’t have put the achievement there in your creative vision, but you did because Steam forced you to. The code is still under your control, but not really because contract.
Yes this is hypothetical, it’s already being established this is NOT how steam operates, unlike other publishing platforms.
Considering MOST games ship on multiple platforms, it make sense to put achievement in there to please xbox and leave them in for steam.
Nope. IIRCs some other platforms that I can’t name do require you to have achievements. But you are still pretty much free to implement them however you want
I always figured it was something steam shoves down devs and/or players throat, since it’s a bit of a dark pattern toward buying into their ecosystem.
Otherwise I would consider many many many devs deciding achievements are not their or their game’s thing.
Dev here. We decide the achievements. We have to set them up manually for ps5, xbox and steam. The idea is to give achievement hunter types more gamplay basically. Although certain game devs use achievements as a form of analytics. When you get an achievement like “Level 2 finished” that’s because the devs wanted to know how many players got that far in the game.
Are achievements basically just variables like “beat_final_boss”, and you expose them somehow to steam?
It’s a little different for steam/xbox/ps, but generally there’s two kinds of achievements. Trigger achievements and value achievements.
The trigger type ones are the ones that fire once, like when you beat a level or get a certain item or something. These basically have an api call like TriggerAcheivement(achievementID).
The value type ones are the ones like collect 1000 gold or kill 500 enemies. You could choose to handle this manually, and then just fire an achievement trigger, but this usually becomes complicated with multiple saves or crossplay, etc. So instead, there’s an api call like IncreaseStat(statID, 1). And you call that when you kill an enemy or whatever and once it’s been called 500 times, the achievement activates.
You usually set all the achievements/stats up in the steam/xbox/ps backend and then your game is just responsible for calling those api functions when appropriate.
Thanks !
I’ve always been curious about this myself.
Pretty much
Are you free to ship a game with no achievements?
There are tons of games without any ancillary steam features, the only things I don’t think I have seen a game without are the forums section and community tab.
On steam? Yes. Xbox and Playstation however require achievements to publish a game.
Of course they are.
How would that even work
Contracts.
No, how would that work coding-wise? Not like steam is actively scanning what a game does.
Edit: Also you wrote steam was “shoving it down the devs’ throats”, but the same achievements exist on PlayStation, Xbox, I think even Nintendo.
The same way you pay when you buy something. The fact that you reach for your wallet does not mean the store is mind controlling you into paying, they make it mandatory and so you comply.
Edit: to clarify, other people are saying this is not the case in Steam, but that for xbox and ps it is mandatory to ship games with achievements.
I honestly don’t understand this sentence
Ok, in my mind it went like this:
You are a game dev and want to sell my game on steam, steam allows only games with at least 4 achievements to be eligible for distribution on their platform, you think of 4 achievement that more or less make sense for your game, you ship the game with the achievements.
You wouldn’t have put the achievement there in your creative vision, but you did because Steam forced you to. The code is still under your control, but not really because contract.
Yes this is hypothetical, it’s already being established this is NOT how steam operates, unlike other publishing platforms. Considering MOST games ship on multiple platforms, it make sense to put achievement in there to please xbox and leave them in for steam.
Nope. IIRCs some other platforms that I can’t name do require you to have achievements. But you are still pretty much free to implement them however you want