Skip to main content

Automatic Difficulty

About Automatic Difficulty

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.

Caution: In some game types, changing game difficulty behind the scenes may be confusing or upsetting to players. Consult your Skillz account team if there are questions about this feature.

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 automatically 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, we recommend setting a skillz_difficulty gameplay parameter on the Skillz Developer Console, and assign it a value of 5 for now. Note that this is just temporary and not required but will provide you a value to test retrieval and implementation of the skillz_difficulty parameter.

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 for guidance. If the value does not exist, we recommended that you default to a value of 5. 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.

  1. 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.

  2. 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.

Best Practices

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.