Gamerzilla For Game Developers

Main - For Game Developers - For Godot - For Game Launchers - Source Code


Why should I support it?

Right now Steam, Epic, GOG, PS4 and Xbox have an achievement system. Will itch.io add an achievement system? How many builds do you want to make every time you make an update? Gamerzilla is not tied to any store.

How does it upload results?

The intent is for games to communicate with a game launcher through loopback network port or other interprocess communication. The launcher would store server name and authentication information. That way the player doesn't need to worry about entering it into each game and the developer doesn't need to worry about storing it securely. If the player does not have a launcher all data will be stored locally. Players can choose not to connect their launcher to an online service in which it is all stored locally and the launcher can still display it. If they choose to setup an account later or have to move to a different service for some reason, all their achievements will be automatically synched.

What game launchers and servers support it?

No game launchers at the moment but GameHub support is waiting to be merged. For servers, only Hubzilla has a plugin to receive and display the achievements. From a numbers perspective it makes no sense to support it but that is what led to the dominance of Steam. Game developers have the ability to take control back.

Why are there no hidden achievements?

Because they don't work. Multiple sites display the hidden achievements. The PS4 allows you to look at the achievements by just selecting the hidden achievement.

Why are you not storing the time?

The more we track the more information we leak to others. I've chosen to avoid that collection. If enough people request the feature I will consider it.

How do I add support in a C/C++ game?

Create a json file to contain all the trophies. Typically the file has the game extension.

{
        "shortname": "mygame",
        "name": "My Game",
        "image": "gamerzilla/mygame.png",
        "version": "1",
        "trophy": [
                {
                        "trophy_name": "Win Game",
                        "trophy_desc": "You completed the game.",
                        "max_progress": "0",
                        "trueimage": "gamerzilla/win1.png",
                        "falseimage": "gamerzilla/win0.png"
                },
                {
                        "trophy_name": "Slayer",
                        "trophy_desc": "Kill 100 enemies.",
                        "max_progress": "100",
                        "trueimage": "gamerzilla/slayer1.png",
                        "falseimage": "gamerzilla/slayer0.png"
                }
        ]
}

In the C/C++ code:

GamerzillaStart(false, "save/");
int game_id = GamerzillaSetGameFromFile("./gamerzilla/mygame.game", "./");
...
GamerzillaSetTrophy(game_id, "Win Game");
...
int progress;
GamerzillaGetTrophyStat(game_id, "Slayer", &progress)
GamerzillaSetTrophyStat(game_id, "Slayer", progress + 2);
...
GamerzillaQuit();