Adaptive difficulty level

Difficulty in games is always a hard balance to find. Since a game is a continuous loop of events you want each iteration to be a little harder to keep engaging the player while being simple and enough to overcome with the training the player got from the previous iteration. Simply put, developers want difficulty to work for everyone and smoothly ramp upwards as the game progresses. This pacing of difficulty is really hard. And today’s titles mostly do this by hand and play testing, which works great for many titles but becomes increasingly hard as games become more complex. One of my closest friend, a developer for one of Sweden’s largest game development companies, has told me that a few of their titles actually have a form of adaptive difficulty level, but in my opinion the system he explained was very crude.

This is my suggestion, bear in mind that it is purely theoretical and not based on any single product though I will use the shooter genre as my general example:

Stop using levels and number of enemies as difficulty setting. These elements affect the players emotional response to situations and should be used as tools to do that. Nothing else.

Instead, use adaptive AI to make the difficulty adapt to the players performance. This system can be susceptible to breaking if it’s not made to be imperceptible, which is a problem, but not near as big of a problem as pacing issues in current titles.

Take a shooter, make enemies miss ratio increase as players health diminishes, at the same time make enemies hits do less damage. Make sure however that these changes are small, I predict that changes larger then around 10% will be noticeable by players. Change things as much as needed, but strive to make it unnoticeable. Even 10% makes a huge difference. So far so good, this level of adaptability is surely used in titles already.

Next, monitor how often and how much damage a player takes, compare that to the kills or percentage of damage the player does (the percentage where 100% is a kill, this way HP won’t affect the statistic). Use this data to restrict or increase the difficulty decrease. If a player scores a lot of kills and takes a lot of damage but does not die the difficulty might be good. If the player doesn’t do any real damage however the difficulty is probably quite tough.

If monitored for the last 10 to 30 minutes of game time the numbers should give you a general performance for the player, in any situation and however good they get. And if a player tries to fool the system by playing badly it won’t affect the balance for very long, the player that does very low damage for a half an hour might take less damage for a few minutes but the player wont win anything by playing this way and therefore has incentive not to try to cheat the system.

Of course, this adaptive system would also need balancing: how fast should it react? what statistics should be most important? Should it keep track across game sessions?  But the point is you’d only have to balance this system once. It could then balance your entire game, from tutorial to boss fights without the developers needing to tweak levels. They could instead spend their time creating interesting situations.

Categorygame-design