In the last years we’ve found many gaming platforms like Steam, Battle.net or Origin include the concept of achievements in games, this is a concept that may as well be applied to IF games and probably has been applied already in some cases, but we lack of a centralized achievement site as for instance Steam is.
Achievements are good for game engagement and for authors feedback, apart of a common feature in modern games.
I opened a thread in spanish IF forums at CAAD. not only related to achievements but also to other kind of online tracking that may be done (like collecting all orders provided by players whose response was a laconic “You can’t do that.” or “I don’t understand you, please rephrase.”, but let’s talk about achievements first).
I was about to build an achievements library for ngPAWS authoring system, when I thought it would be nice to have a common service that may work for all authoring systems, with a common server side and the several client implementations for each IF engine. After checking with spanish authoring engine authors, they found it interesting, and so apart of my own ngPAWS engine (baltasarq.github.io/fi-js/) may be using it, or at least provide support for it. Also, it seems that is something that can be done with Inform games using Vorple (and probably can be done as well with some Quixe extension).
So, what’s is built so far? Nothing.
We have just discussed how it may work, please see a sumary with some bulletpoints below, but nothing has been yet decided, and before doing anyhting I wanted to ask other authoring system mantainers what they think about it and if in any case they are for it.
So these are the promised bulletpoints:
There should be a centralized site where each game may connect to save an achievement. That site would better be common for all IF engines, and have a login (so the achievements are saved with your name/nick). Maybe use an OpenID server?
People should be able to register (and so get an userID)
Authors should be able to create new games (and obtain new gameID) and achievements (and obtain new achievementID)
There should be a REST API so any game can try to save an achievement using three values: userID, gameID, a chievementID. The API may return a JSON object with success status and error code if it was not successful (error codes may be 0 for “uknown userID”, 1 for “unknown gameID”, 2 for “unknown achievementID”, 3 for “achievement already saved for this user”). Is up to the client implementation what to do with responses.
There should be an information API that allows some third party site/software get the achievement information for a given game,user or game/user combination. This API may be have some parameters to filter (like by date or by achievement count,that is get achievements 1 to 10, 11 to 20, etc.
Client implementation should handle the login procedure and call the server, and decide what to do if the server is unavaliable or just user decides not to participate (what should be an option).
Of course, game authors are able to decide wether they want to use achievements for their games or not.
About the player orders that fail to provide a proper answer, the same server can be used, and author may have a report that shows which sentences are most commonly not understood. But that is another story, what do you think about achievements feature?
Note: In case you can read spanish this is the link to thet original thread, though there’s not much more there than what I listed above: foro.caad.es/viewtopic.php?f=18&t=5853