This guide assumes your game is being developed and tested on Skillz's Sandbox environment**
Skillz has a feature called Automatic Difficulty. At its core, Automatic Difficulty is a number provided by the Skillz Tournament Server that is between 1 and 10; this represents a game’s intended difficulty. 1 is the least difficult, while 10 is the most difficult. Automatic Difficulty is completely opt-in via the Skillz Developer Console.
Why would I use Automatic Difficulty?
Automatic Difficulty allows games to be equally fun for both beginners and experts, despite their difference in skill level.
With it enabled, the Skillz Tournament Server will calculate a difficulty value based on the player’s level of skill, which you can then use to adjust the difficulty of your game.
So what scenarios would fit for Automatic Difficulty? For example, say you have a mini golf game. Matches with a lower difficulty value can feature simpler, more straightforward courses. Matches with a higher difficulty value can feature courses which are longer and have more obstacles. Another example is for a first-person shooter. Matches with a lower difficulty value can give the player basic enemies. As difficulty increases, the game can give the player a larger number of enemies with more health.
How does Automatic Difficulty work?
The (automatic) difficulty value is determined by the Skillz Tournament Server. As a player wins more matches, his or her player ranking goes up, and the Tournament Server gives that player a higher difficulty value for subsequent games. Conversely, losing more will hurt a player’s ranking, and the Tournament Server will assign a lower difficulty value for the player’s subsequent games.
Players in the same match will always receive the same difficulty level to promote a fair a match.
Adding Automatic Difficulty to Your Game
Adding Automatic Difficulty to your game involves a few steps. First, you'll have to design your game with a gameplay parameter called
skillz_difficulty in mind. Second, you'll test your game with various values of this parameter during development. And third, you will enable Automatic Difficulty when you upload your game's binary to the Skillz Developer Console before going live.
Add a 'skillz_difficulty' gameplay parameter on the Skillz Developer Console
At its core, Automatic Difficulty is implemented as a Gameplay Parameter called
skillz_difficulty. This parameter is generated by the Skillz Tournament Server after you've enabled Automatic Difficulty when uploading your game's binary. However, you should only do this when your game is ready to go live on both Skillz and the appropriate app store.
Until then, please make a
skillz_difficulty gameplay parameter on the Skillz Developer Console, and assign it a value of 5 for now.
Consume the 'skillz_difficulty' Gameplay Parameter in Your Game
Next, you'll need to consume the
skillz_difficulty gameplay parameter in your game, and adjust your game's behavior based on the parameter's value. Refer to these examples if you don't know how. We recommended that you default to a value of 5 in case the parameter does not exist. This could be because you either have not uploaded your binary to the Skillz Developer Console yet, did not enable Automatic Difficulty when you uploaded your game's binary, or you did not explicitly set up the parameter for development and testing.
Testing Your Game
As you develop your game, be sure to assign various values for
skillz_difficulty on the Skillz Developer Console. Then, test your game and make any changes so that its gameplay is adjusted accordingly based on the value of
skillz_difficulty. Remember, its value should be between 1 through 10, inclusive.
Enable Automatic Difficulty Before Going Live
At this point, you have tested your game's behavior with various values of
skillz_difficulty, and you are ready to go live both on Skillz and the appropriate app store. You are now ready to enable Automatic Difficulty.
First, delete the
skillz_difficulty gameplay parameter that was manually created on the Skillz Developer Console. The Skillz Tournament Server will automatically generate this parameter when Automatic Difficulty is enabled.
Now, upload your game's (production ready) binary to the Skillz Developer Console. There should be a checkbox to enable Automatic Difficulty. Make sure that checkbox is checked!
Congratulations, your game is now set up with Automatic Difficulty!
If your game is already in production and is live, and Automatic Difficulty is currently disabled and you want to implement it, please contact us for further support.
If applicable to your game, players on higher difficulties should have the opportunity to earn more points (higher scores) than players on lower difficulties. For example, in an arcade survival shooter, surviving for a minute at difficulty 10 should lead to a significantly higher numeric score than surviving for a minute at difficulty 1. This could mean that higher difficulties contain more enemies to destroy, or that higher difficulties contain tougher enemies that are worth more points.