GameSparks Achievements support the rewarding of players for accomplishments within the game. An Achievement is highly configurable with respect to both the reward and the criteria for when it's delivered:
- Task-based. Traditional Achievements systems are supported where Virtual Goods (for example, badges or items) are won for completion of particular tasks or won for completion of a combination of tasks.
- Extended. Extended Achievement systems are supported, such as level completion or XP progress bonuses, basic 'crafting', and rewards for breaking into the top [x] of a Leaderboard, and so on.
- Cross-platform. Achievements are cross-platform, which affords significant benefits:
- You don't have to set up separate Achievements in each store, which supports cross-platform play.
- Game-progress can be tracked and the reward can be used across multiple platforms.
Achievements and Rewards.
Achievements can be awarded based on:
- A Leaderboard event.
- Some custom logic defined in Cloud Code.
The reward delivered when an Achievement is reached can be:
- A Virtual Good.
- Currency amounts configured for the Achievement.
Achievements can be awarded automatically by setting up triggers:
- Achievement triggers are implemented through Leaderboards because all scoring events result in a Leaderboard being updated.
- For example, to automatically award an Achievement for someone hitting a specific score, you can add a trigger and define a filter for a Leaderboard that indicates the Achievement is awarded when a score is posted to the Leaderboard with a value that meets the filter criteria.
Managing Achievement Configurations
The Configurator > Achievements page displays the list of Achievements. You can create new Achievements and edit or delete existing ones:
You can use the following options (highlighted above):
- Add - Add a new Achievement.
- - Edit Achievement.
- - Delete Achievement.
Creating an Achievement Configuration
1. Click to Add a new Achievement. The Add Achievement page opens:
2. Enter your Achievement details:
- Short Code - A mandatory field used to give the Achievement a unique identifier for use elsewhere in the Portal and in Cloud Code.
- Name - A mandatory field used as an identifier to help the user find the Achievement in the Portal.
- Description - A mandatory field which should be used to describe the Achievement.
- Virtual Good Award - The Virtual Good to award a player as a reward for gaining the Achievement.
- Currencies - Enter any currency awards for rewarding players who gain the Achievement:
- In this example of a game where three default currencies have been enabled, players who gain the Achievement will be awarded 12 of Currency1 and 12 of Currency2.
- Leaderboard - Achievements can be triggered from a Leaderboard or by a Cloud Code script, if no Leaderboard was selected. Select the required Trigger here - either the Leaderboard trigger or select None - Triggered by Script if triggered by a Cloud Code script.
- In this example, we've selected the High Score Leaderboard.
- Repeatable - Enabling this means the Achievement can be earned multiple times.
- Property Set - Select the Property Set which you want to attach to the Achievement - the Property Set will be surfaced and made available wherever you use the Achievement.
- For more details on attaching Property Sets to Achievements, see here.
- Currency Awards - Click to Add currency awards for rewarding players who gain the Achievement using any of the game currencies you've created for your game on the Currencies page under Configurator>Currencies:
- In this example, players who gain the Achievement will be awarded 15 of Currency_D.
3. Click to Save and Close the new Achievement.
Adding Achievement Triggers
1. If you've selected a Leaderboard for an Achievement, in the Triggers panel you can click to Add a trigger for non-scripted Achievements:
2. Enter the Trigger details:
Trigger Data - If a Leaderboard is selected, the Fields of the Leaderboard would be available for you to choose. You can also trigger a Leaderboard based on the users global or social position:
- New Global Rank - A new position in the global Leaderboard.
- Old Global Rank - An old position in the global Leaderboard.
- Global Rank Change - The number of places a player has moved in the global Leaderboard.
- New Global % Rank - The new percentage change in the player's global Leaderboard position.
- Old Global % Rank - The old percentage change in the player's global Leaderboard position.
- Global % Rank Change - The percentage change in the player's global Leaderboard position.
- New Social Rank - A new position in the social Leaderboard.
- Old Social Rank - An old position in the social Leaderboard.
- Social Rank Change - The number of places a player has moved in the social Leaderboard.
- New Social % Rank - The new percentage change in the player's social Leaderboard position.
- Old Social % Rank - The old percentage change in the player's social Leaderboard position.
- Social % Rank Change - The percentage change in the player's social Leaderboard position.
Filter Type - Operators which allow you to filter the trigger:
|=||Value equal to|
|!=||Value not equal to|
|<||Value less than|
|>||Value greater than|
|<=||Value less than or equal to|
|>=||Value greater than or equal to|
|%||Value is divisible by|
- Filter Value - The value of the Filter.
3. Click to Save and Close the Trigger you've added to your Achievement.
Example 1: If you want to award the user for getting a score over 100 on a Leaderboard, you'd have a set up similar to this:
Example 2: If you want to award an Achievement for being top of the global Leaderboard, you'd have the following configuration: