Intelligently Incorporating Adaptive Difficulty

or, How to Make Boss Battles More Challenging Without Punishing the Player

The hero fails… because of you!

If you’ve been following Infendo on YouTube, or listening to our weekly podcast, you’d already know that a couple months ago, I restarted The Legend of Zelda: Breath of the Wild in Master Mode. This was the first time I’ve started the game from scratch since day one, and the only time I’ve ever played a Zelda game in “hard mode” (with the exception of a barely started play through of Ocarina of Time’s Master Quest on 3DS).

In my commentary, I compared the experience to Perfect Dark’s Perfect Agent mode, in which the enemies do more damage, are more accurate, more intelligent, and have a faster response time, while the player does less damage, is less accurate, has more objectives, less ammo, and no shield upgrades to regain health. The cards are stacked against the player multifold, and the “fun” comes from overcoming these nigh insurmountable odds.

Breath of the Wild’s Master Mode is a little more forgiving in that weapons and armor are no weaker nor plentiful than in Normal Mode, and any weapon’s accuracy still relies entirely on the player’s own ability to wield it effectively. Enemies are stronger, however, with every one being upgraded by one level (almost — most Guardians only have one level). This makes most of the game, especially the Great Plateau, much more challenging.

The real challenge comes in the form combat itself. Every enemy encounter requires far more strategy, because any enemy that doesn’t take damage after a few seconds begins to recover health. This prevents the player from, say, knocking a Bokoblin off a platform to be dealt with later, as he will likely return to the player fully healed. This affects all enemies, including bosses. Fighting all forms of Ganon can no longer be a test of patience and persistence, as any missed opportunity or failed offense could result in several minutes of lost progress, and lead to a dangerously depleted supply of food and weaponry. This is a stark contrast to Normal Mode, in which I conquered the final battle without so much as a single death.

This got me thinking about the elements that affect difficulty. There are essentially three types of challenge in games: puzzle-solving, agility, and combat. Puzzle-solving challenges can be simplified by providing hints. Of course, if these hints are offered without solicitation or the option to refuse, like Fi in Skyward Sword, it can severely hamper the experience for more experienced gamers.

Agility challenges cannot really be made easier without essentially holding the player’s hand. A prime example would be the Super Guide mode in several of Nintendo’s early twenty-teens platformers, which plays a section of the level for the player, after which the player can regain control with that section already completed; or the White Leaf in recent Mario games, which makes the player invulnerable to damage, and able to float/fly indefinitely. Boost Mode in New Super Mario Bros. U adds the option to create temporary platforms in any stage via the GamePad’s touch-screen, essentially customizing (and compromising) the level design to the player’s benefit. Kirby and the Rainbow Curse and Yoshi’s Woolly World even allow the player to skip a level entirely. In some games, such as the rereleases of Donkey Kong Country Returns on 3DS and Tropical Freeze on Switch, optional items can be acquired and used that help the player when needed. Usually, the player has the option to refuse any or all of these forms of assistance altogether.

Super Kong will play levels for you in Donkey Kong Country Returns for Wii and 3DS — image source: Donkey Kong Wiki

Combat can be made easier or more difficult via menu options that adjust the amount of damage enemies take or give. The various “Agent” modes in GoldenEye 007 and Perfect Dark, and Normal and Master Mode in Zelda games, are good examples of this. But in most cases, the player is locked into their difficulty setting throughout the game, regardless of how much or little trouble the player is having. Though some games, like notably Bayonetta 1 and 2, give players the option to manually adjust the difficulty whenever he or she so chooses. Some games have levels and features locked behind harder difficulties. More than half of the original Star Fox is inaccessible to players who can’t master the medium or hard paths.

But few games offer a true adaptive difficulty, something that could actively increase the challenge for experienced players, but decrease it for players requiring a little assistance, and do it on the fly, as needed. It’s often said that adaptive difficulty requires complex algorithms and advanced artificial intelligence to implement properly, but it doesn’t have to. All it needs is simple math.

Ideally, the best challenge comes when the player and opponent are evenly matched. A perfectly balanced match should come down to both combatants on the verge of defeat. So how can a programmer achieve this without hours of AI coding and play testing? It’ll be easier to describe by example.

Let’s use Street Fighter, since it’s one-on-one and well balanced. We’ll pit Ryu against himself. When both players are at full health, their attacks should do the least amount of damage. This gives the defending player an advantage when retaliating. But we want to help out the defending player, so an attack that does 10% damage at full health could do 11% damage at 90% health, 12% damage at 80% health, 15% damage at 50% health,… and so on, until the player’s attacks do almost double damage when his or her health is almost entirely depleted. Of course, this would make the match go much faster, so we balance things out. 50% health is the “normal” level of damage. Damage dealt is therefore reduced by half when at full health, and increased by 50% at near defeat.

A perfectly balanced fight

Now apply this to, say, boss battles, but reverse it. When Link first begins his battle with Calamity Ganon in Breath of the Wild, Ganon will do the maximum amount of damage at full health, while Link does minimal. As the fight continues, the more damage Ganon takes, the weaker his attacks become. Conversely, as Link takes more damage, his attacks do more damage. This creates a risk/reward feedback loop. You have to risk getting hurt to make sure you get hurt less — while having less health can give you an advantage by doing more damage, you risk losing everything — and avoiding damage will keep you safe from death, but it will cause the battle to drag on longer, thereby increasing the chance of getting devastatingly hurt by a Calamity Ganon at full strength.

Apply this simple algorithm to every enemy encounter, and you have a near perfect balance of difficulty throughout. This simple equation can be applied to just about any genre involving combat, from fighting, to adventure, to shooter, to RPG. If you’re not very good, the game compensates by making you stronger and giving you a boost when you really need it. If you’re too good, the game punishes you by making you weaker and making your enemies more dangerous. If you’re a risk-taker, that works to your advantage. If you’re overly-cautious, the game will force you to engage or die.

Someday I would like to see a game incorporate this method of adaptive difficulty, especially a Zelda game. Let me know in the comments if you would too, and what changes you’d make to keep the difficultly level properly balanced.

Justin started gaming at the age of three, on the family ColecoVision, then moved onto the NES, Super NES, and N64 before ever owning another non-Nintendo console. He is a fan of almost everything Nintendo, Disney, and Star Wars related.
—
He began podcasting about video games in 2008, as a co-host of the Game Nutz Podcast. In 2009, he started his own video game blog while working for an independent, hole-in-the-wall game store. Though he writes infrequently, he always writes out of passion and personal interest, and for the Infendo Radio podcast, he contributes a wealth of useless knowledge and off-color irreverence.