Sponsored By

Game Changers: Dynamic Difficulty

A breakdown of some different approaches to dynamic difficulty adjustment, including one neat example that I don't see talked about much.

Adam Saltsman, Blogger

May 7, 2009

8 Min Read
Game Developer logo in a gray background | Game Developer

A much more well-known designer wrote a nice article about Dynamic Difficulty Adjustment (DDA) right here on Gamasutra about a year ago.  It's a nice article, concluding:

"Don't let your players find out exactly what performance-evaluation mechanism you're using, nor what the game will do to make things easier. Without this knowledge the players can't exploit the system so easily."

I think this makes a nice jumping-off point for my musings on these systems today, particularly because the second best system I am going to talk about actually goes to great lengths to make it excessively clear what mechanism it is using, and it works far better than the best hidden systems.  The most elegant system I'm going to present doesn't even have an algorithm, which is pretty nuts.  That's not to say this designer was wrong by any means, just that this is definitely a weird and broad topic.

I'm going to cover maybe four different systems here, and they will be presented in order from most artificial, frustrating, and complex up to one system that I think is extraordinarily elegant and simple.  I think these are my first case studies or direct references to actual games on the blog, and I realize this invites a certain amount of argument and dissension, but hey, what is practical analysis without a few suitable examples?

 

First up, the most frustrating game ever designed by an adorable bluegrass-playing Japanese man: Mario Kart.

Mario Kart employs a DDA system usually called "rubber banding."  This form of DDA is a really natural fit for racing games, but can be applied to other games as well.  Basically, rubber banding means the game is putting some serious effort into restricting the maximum distance between first place and last place.

Mario Kart does this in a few different ways; first, they modulate the speed of the CPU players, sometimes to comically absurd extremes.  E.g. if you are in last place, and doing really really poorly, all the computer-controlled AI racers will slow down dramatically.  Vice versa, if you are racing proficiently, they will also pick up speed and stay right on your tail.  They also have a sliding scale for the types of powerups you can pick up during the race; the last place racer has a much better chance of picking up a massively powerful item that could completely reverse the outcome of the race.

This system has some really wonderful benefits - it's very accessible since almost anyone can win at any point in the race.  It also ensures that in a combat-oriented racer like Mario Kart, there is almost always somebody around with whom you may battle the second you pick up an item.  This keeps the pace high and encourages the player to improvise, while allowing you to play a close match against almost anyone.  From a production perspective, it is also pretty easy to implement and test.

The obvious, brutal downsides of this system are that it is easily exploitable and frequently punishes skillful play.  For example, in the iteration released for the Wii, if you are in first place at the start of the final lap, you will get hit by a blue shell or other devastating sequence of weapons and items.  The best possible strategy or tactic is to be in second place at the start of the final lap.  This makes no sense!

 

I lumped these two admittedly excellent games into the same pile; the pile of Invisible Algorithmic DDA Systems.  Apparently you need a '4' in the title of your game to do this well, and it cannot be at the end your title either.  Anyways, these two games exemplify what Ernest Adams was talking about in his article, and I think sum up the popular conception of DDA in general.  There is a set of metrics regarding your performance that are secretly tracked while the state of the game is discretely modified without really telling you in order to ensure that if you are performing below average, the game is easier, while if you are performing above average the challenge increases.  This is pretty awesome when done well, right?

Left 4 Dead uses their much-touted "AI Director" to monitor the players' health and other performance factors, and accordingly adjusts the quantity and location of zombies, ammo, and medpacks throughout each level.  In classic Valve fashion it is very tightly tuned and consistently yields intense but manageable play for most of its audience.

Resident Evil 4 (and I believe 5?) use a simpler but equally effective system that tracks how frequently you perished in recent gameplay, and then decides whether to ratchet the difficulty up or down.  I believe RE4 uses actually fixed difficulty levels, rather than individually manipulating the various factors.  Basically, if you keep getting creamed by the same guy, the game will knock it down a level and see if you can squeak by yet.  It is, despite being simpler in some ways, equally effective as L4D, though it does not offer the same level of replay.

The benefits of a well-designed system in this style are that it yields consistent, well-paced play (like all good DDA systems), and it is easy for the player to forget that it is there, so they feel a greater sense of accomplishment when they complete a particular challenge, even if the bar was continually lowered until it was within their reach.

The downsides to a system like this are hard to pinpoint.  Hardcore players can definitely feel a sense of dishonesty (even betrayal?) in having the game's challenge altered if they fail to accomplish it on the first try or are having an off night; that is, they can feel like its not a fair fight.  Also, these systems are relatively reactive, you have to suck and get pounded on for a while until they are able to make a good guess about how to react to your play, whereas rubber banding is a relatively real-time, continuous process.

 

Aaahh...GOD HAND.  The game that actually makes a whole mechanic and strategy out of DDA.  See that skull in the bottom left hand corner?  That's your actual difficulty meter.  As you pound thugs, the crescent shape fills up, and when it reaches the top, the level of difficulty increases and the meter is emptied.  As thugs pound you (and oh how they will pound you) the meter decreases, as does the difficulty level.  A higher difficulty level generally means you are fighting the same bad guys, they just use better strategies and hit harder than they would otherwise.  There are 4 difficulty levels, the final labeled "DIE!" rather than "4," and aptly so.  The game rewards you both implicitly (by giving you the chance to succeed over impossible odds) and explicitly, by awarding you extra points which are converted to cash at the end of each level.  Cash is spent on new moves to help you beat down more thugs.

The reason this game's DDA system is so impressive is because it flies in the face of traditional DDA wisdom; that is, the system is completely visible at all times.  Now, compare this system to the one used in Mikami's other DDA masterpiece, Resident Evil 4.  Both systems provide excellent pacing and a sense of accomplishment.  However, where an invisible system fails (unfair play, batch updating), the visible system succeeds by constantly keeping the player informed of exactly what they are up against.

Special thanks to Brandon & Margaret from Offworld for reminding me how much ass this game kicks!

 

Last, but very much not the least...the best, most elegant DDA system ever designed: Pocket Billiards.

"Wait, what?" you say.  "Pool doesn't have difficulty settings or variables, and I'm pretty sure if you move the balls to make it easier or harder the guy you are playing against will break off a cue in someplace dark and scary."

That's the beauty of the thing; not the dark and scary place I mean, but the simplicity of the system.  In the most popular billiards variations, two players compete to remove a set of colored balls from the table, divided into solid colored balls and white balls with colored stripes.  Let's say you're playing as "solids."  You put in four (out of eight) solids in a row on a nice run, and are now dominating the table, 4 points to 0.  In the process of kicking ass, you also just removed four significant obstacles for the stripes player.  Now there are only 4 solids left on the table to obstruct or otherwise disturb the stripes player, while there are eight remaining stripes messing up your next shot. The game naturally becomes more difficult for the winning player and easier for the losing player because the scoring game pieces are also obstacles to the opponent.

Not bad for a 500 year old game with no normal maps!  Then again, if they spent 500 years on Resident Evil 4 (instead of 5) maybe it would have an equally elegant system...

Read more about:

Featured Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like