Lessons from games: dynamic difficulty

I’m an occasional computer gamer. Board games are typically more my thing, but having grown up addicted to Civ II and Heroes III, I’ll always have a part of my heart and brain happily devoted to screen-based amusements.

It’s easy to forget: games are products too. In fact, I’d argue that some video games rank among the best products in the world – look no further than Breath of the Wild for a recent example. There’s a lot that Product Managers can learn from games and how they have been developed.

One example is the idea of dynamic difficulty, something I was watching a video about recently. In a nutshell: the game adjusts how challenging it is based on how easily you are handling it. Is the player carving through the enemies without breaking a sweat? Right, let’s ramp up the difficulty: bad guys will now have more health and behave a bit more strategically. Or is the player getting repeatedly annihilated? No problem: minions are now easier to kill.

The idea is to keep the player in a flow state by maintaining a balance between the level of challenge and the player’s skill. Players will then find the game compelling and exciting, rather than boring or frustrating:

Flow state diagram showing level of challenge on the Y axis and level of skill on the X axis

This is an important idea for designing non-game products, too. Think about the dilemma posed by onboarding new users. If the guidance is too shallow, less tech-savvy users will get lost and perhaps quit. But if there is a slow, mandatory tutorial, then power users will feel bored and patronised.

Dynamic difficulty presents a solution to this problem: observe the user’s progress, and adjust the level of feedback and the exposure of advanced features to fit their implied ability level.

A potential spanner in the works is the difficulty of implementation. Presumably Capcom threw a lot of engineering talent at this system in Resident Evil, and not all companies have the luxury to do the same.

Happily, as with many product improvements, small steps can already make a big difference to the user experience. Try choosing a single feature – one with a wide distribution in users’ familiarity and comfort levels – and implementing a one-step branching logic for how to respond to user behaviour. Signs of trouble should be met with offers of assistance, while obvious mastery should lead to hints about what other advanced features they could try.

A closing thought exercise for all the PMs out there: Where could you incorporate dynamic difficulty into your products?