Tracking player progression from a multitude of different attributes can be painful, especially if the progression is related to in-game reward systems. To help with this, we offer a straightforward way for you to build a complex player-attribute system for your game. You can use our service to track internal gameplay-related stats such as number of kills, deaths, and assists, or other general game data such as play time, number of purchases made, or number of the maps played.

Creating Game Player Progression Tracking & Analytics

What are the benefits?

We use statistics as the baseline of our other game services such as Leaderboards, Achievements and Matchmaking. All of those services have consistent server side attributes that you can use. This gives you more control and also provides an extra security layer for your game, especially if you handle sensitive attributes that are tied to your game economy.

We also utilize event-driven communication across our game services, which means fewer functions or API calls for you to handle. For example, if you want to use statistics with the Leaderboard and Achievement services, you only need to implement update user’s stats from your game client or game server. Our Leaderboard and Achievement services will be updated automatically by listening to the event published by the Statistics service.

Where to start?

Configuring the Stats

We provide a statistics configuration interface from our Admin Portal. You can configure multiple stats and group them using tags, to make it easy for you to query based on your needs. Here is what the configuration page looks like from our Admin Portal:

Video Game - Configuring Player's Progression Tracking
Fig 1. AccelByte Statistics Configuration

Each stat attribute can be identified by its unique stat code. The unique stat code is readable, so that it's easy for you to call from your game. Here are the configuration properties that you can define for each statistic in our Admin Portal:

Video Game - How to Add Player's Progression Statistics
Fig 2. AccelByte Statistics Configuration Properties

Initializing Stats to a Player

After the configuration is done, you will need to initialize the stat attributes to the player. This can happen during the first load out or every time the player launches a game after the game's update. You can do this using the create user’s stats function available in both of our Unity and UE4 SDKs. You will need to specify the default value of the stat attribute in the configuration: this default value will be assigned to the player during the initialization.

Updating Player Stats

You can trigger the stats update from either your dedicated server or game clients. To help with this, we provide both server and client SDKs. The server SDK can be used for multiplayer game cases where you want to make sure that the API call is secure, and cannot be overridden easily by your players. Alternatively, you can use the client SDK if you'd like to allow the stats to be modified easily from the game.

Displaying Player Stats

Displaying player stats is pretty straight forward. You might want to only display specific stat attributes for a profile showcase, or maybe you want to display attributes based on a specific context, such as match stats, map stats, or skills attributes.

To showcase stats in a player profile like in the example below, you can easily query the stats you need using the selected stat codes, and arrange the UI based on your design.

How to add Player's Statistics to Your Game
Fig 3. Player Profile Stats

You can also query grouped stats using a tag, so that you can retrieve multiple stat attributes easily at the same time, as seen below.

Adding Player's Statistics to Your Video Game
Fig 4. Grouped Stats

These are just a few highlights on how our statistics service can help you track player progression consistently. If you're interested in getting the most out of player stats in your game, don't hesitate to reach us at support@accelbyte.io. We'd love to hear from you about your unique project.