For a while, I've been suggesting an open source game achievement system. Some people liked the idea but no one wanted to build it. Finally after LibrePlanet 2020, I decided to tackle the problem.
But who cares if open source has game achievements or not?
Achievements are a feature game players expect at this point. By not having any support, the audience looks at our platform as outdated. Currently the data is controlled by one company. Can it be misused? Maybe or maybe not but we don't have to ability to control that at the moment. Game developers are the ones who should be fighting against it. Right now they are making multiple builds and coding support multiple times.
Beyond those arguments, game achievement systems are our virtual bookshelf for games. Many games are bought digitally these days so you can't go to friends' houses and see what they've been playing. If you look at a friend's achievements you can find other games that might interest you or maybe they played a game you were interested in so you can ask for their opinion.
What is Gamerzilla?
Gamerzilla is a multitude of pieces. The web interface is served by Hubzilla, a federated social network service. Hubzilla has extensive addon capabilities which could implement game achievements. Perhaps the biggest contributing factor to choosing Hubzilla was FreeGameDev site setting up an instance.
Asking developers to interact with a web interface probably wouldn't get much traction. LibGamerzilla is a C library that handles interfacing with the Hubzilla instance. It should be as easy for developers to use as the Steam API.
However that would still require every game to add a setting page where you specify your Hubzilla instance and login information. No one wants to do that. Instead LibGamerzilla can also be added to a game launcher like Lutris or GameHub. Connection information would be configured once and the launcher would relay all achievements to the Hubzilla instance. If you don't want to upload your data, no problem the game launcher saves data locally and could display your achievements.
Everything is saved locally and synchronized. If you play a game without the game launcher running, it will synchronise next time you run it from the game launcher. You can also play offline and upload achievements at a later date.
What about languages other than C?
C was chosen for the library because of the ease of integrating with other languages. LibGamerzilla has been used from Vala, Nim, Python, Godot, and the Love game engine. It has minimal dependencies to make it easier to use. Fedora includes a mingw cross compiled library to make Windows ports easy.
How do I use it now?
To my knowledge, FreeGameDev Hubzilla instance is the only one running the addon at this time. You could always ask another instance to include the addon. A standalone server could also be implemented but nothing is currently being done for that.
Fedora is the only distribution that I know includes the library. I have mentioned it to Debian developers and presented at the MiniDebConf in November. Let the distributions know if you want support.
No game launcher has built in support yet. I have modified GameHub to support Gamerzilla but the changes have yet to be merged. Recently I modified the test program included with LibGamerzilla to be a temporary solution. If you install libgamerzilla-server on Fedora, you can run the command line gamerzillaserver. On first run it will ask for your Hubzilla instance and login information. After that it can run without interaction. (There is currently no way to correct a mistake except deleting the file .local/share/server.cfg and running the server again.)
At the moment the game support is limited. A new release of Seahorse Adventures and Shippy 1984 have been released with support and will hopefully get added to Fedora soon. SuperTuxKart has merged support but unless you build it yourself, you will have to wait. Me & My Shadow and Smalltrek have shown no interest in merging support but can be built from my repositories. Pinball Disc Room has support under Linux but the update has yet to be uploaded to itch.io. Marvellous Inc. and BYTEPATH are two open source Steam games modified to the latest version of Love and Gamerzilla support. It is unlikely those changes will be accepted by the original developers. Support for Unreal or Unity has not been investigated. While it would be useful to have a simple addon for those engines to help commercial developers, I have kept to open source games at the moment.
It might seem kinda depressing by the lack of support but Gamerzilla is young. Game players need to ask for support. Game developers need to learn about the system and how it can simplify things for them. Steam is unlikely to change but itch.io has no achievement system. Fewer developers spend the time adding support for GOG or other achievement systems. We need to convince them to adopt an open standard.