Wyatt Cheng’s GDC Panel: Full Video & Transcript

Fmulder points us to Gamasutra, where Wyatt Cheng’s GDC Panel on Diablo 3 panel has just been posted, Iterating on Diablo III’s game systems. There’s no embed video option, so click to GamaSutrat to view it, though I’m going to add a transcript and summary to this post ASAP.

Eyeball the table of contents for a good idea of what Wyatt covered during the hour panel, and you can refer back to our earlier posts on this for some pre-show hype. (If you’re wondering, video of Jay Wilson’s GDC postmortem has yet to be posted online.)

System 1: Health Recovery
* Iteration 1: Potion Dilution
* Iteration 2: Non-combat Regeneration
* Iteration 3: Defensive Regeneration
* Iteration 4: Health Globes
* Lessons Learned from Health Recovery

System 2: Command Input
* Command Input: “Lost” Clicks
* Command Input: Animation Structure
* Command Input: Wizard Skills
* Iteration 1: Secondary Animation Powers
* Iteration 2: Interrupting Powers
** Result

* Iteration 3: Queue
* Command Queuing Details
* Command Queuing Rules
* Command Input Summary
* Lessons Learned: Command Input

System 3: Skill System
* Starting Point: Traditional D2
* Skill Rune As Items: Result
* 10 Runes Become 5
* Runestone System: Result
* Lessons Learned: skill System

Recap: Big Picture Lessons
* Q&A

Wyatt’s talk is an interesting and detailed summary of some of Diablo 3’s core systems. It’s not real critical or probing, but it’s very informative and yields a lot of insight into the development process of Diablo 3. I’ve typed up a nearly-exact transcript and added some commentary here and there, plus supportive links and more.

Here’s the start of that, and you can click through for much, much more. (It’s quite long, since Wyatt was non-stop talking and showing slides and videos throughout his presentation.)


Hi everyone and please, turn off your cell phones.


I’m DiabloWikiWyatt Cheng and I’m a Senior Technical Game Designer for Blizzard Entertainment. My talk today is called “Through the Grinder” and I’m going to discuss a bunch of systems in Diablo 3. For some background info, the game was released on May 15, 2012, and it has sold over 12 million units to date. There are a lot of systems in Diablo 3, but one of the most talked about and praised aspects of the game is the combat system. People feel that it’s visceral, enjoyable, and tactical, and for today’s talk I’m going in depth about 3 systems that we designed to support the combat.

Those systems are Health Recovery, Command Input, and Skills. I’ll talk about each and try to tie them all together to show how these systems work together to support that visceral combat feel.


Design Through Iteration: There’s a theme in my talk, and it’s something that anyone who works in the industry knows all about. Iteration. Design requires a lot of iteration. I’m going to demonstrate this by going through a bunch of the early versions of these systems in Diablo 3 and you can see where we failed, what we got wrong, and how we learned and got better. This sort of analysis is one of my favorite things to do as a designer, and I’m just going to go postmortem style.

Avoid the Grand Reveal: Iteration requires what we at Blizzard call, “avoid the grand reveal.” We have a set of design values we share at Blizzard and Avoid the Grand Reveal is this idea that creative types don’t like to show their work to other people. Whether you’re an artist or writer or designer, we’re never really happy with our own work. It’s important as part of the iterative process it’s important that we show our work to other people.

Our thought process is something like, “I’m not happy with it, so I don’t expect you to be so I’m not going to show it to you until I’m happy with it. You might think less of me or I’ll be embarrassed.” You have to fight against that instinct and it’s a very natural reaction as a creator. So we need to create environments where it’s safe to fail. How do we create that sort of environment which is important since it supports that sort of approach.

System 1: Health Recovery

To talk about the health recovery system, let’s take a look at how DiabloWikiDiablo 2 handled this. We are making a sequel, so when we sat down to work on Diablo 3 we looked back at Diablo 2. We really wanted tactical combat. What are the steps we must take to create a more tactical combat system and experience for the player.

One area we identified was potion spam in Diablo 2. A lot of the gameplay revolved around drinking potions. A belt could hold up to 16 potions. Not only does this give the player unlimited healing, but it devalued other features such as damage reduction abilities, or debuffs on enemies, or crowd control skills. There are a number of other options that we really wanted to see as part of the combat experience, and they were diminished when players had unlimited healing.

[All the bullet-pointed lists like this one are transcripts of Powerpoint slides Wyatt showed during the panel.]

  • How does the player heal?
  • Diablo II: Potion Spam
    • Non-stop potion guzzling
    • Devalues skills.
  • Gives player access to unlimited healing.

Another aspect was Combat Pacing. Healing and monster damage are two sides of the same coin. If the player has more healing then the monsters have to do more damage to threaten the player. You must achieve an equilibrium or else too much healing is easy or too much damage is too hard.
Health potions run into spiky damage in Diablo 2, where huge damage comes in all at once. That’s how players mostly die in Diablo 2. Through a lot of play testing we found that we really liked the idea of there being about 3-5 seconds to go from full health to death. I’ll show you what that looks like.

  • Game: Tactical Combat
  • Access to unlimited healing is worse.
  • More player healing = more monster damage.
  • “Spiky” damage is bad.
  • Instead, 3-5 seconds of heavy damage.

[Short video of a low level Monk punching some flyers in the Festering Woods and taking damage, while Wyatt explains that the red orb in the lower left is the health display.]

Three to five seconds is critical to:

  • 3-5 seconds allows:
    • Recognize the danger.
    • Assess the situation.
    • React accordingly.

This is something we realized we had to create monster damage and healing rates to support this system. Here’s what it looks like with spiky damage: [Short video of the same Monk in the Festering Woods punching some flyers and taking about 70% damage per hit. Two hits = dead.]

Now this looks silly and we sort of chuckle about it. “Who would want to play that game?” But at various points during development and even at various points during live, this is what it looks like. And that’s what happens when the player has access to lots of healing and lots of spiky damage. If you’re on a game dev project now and you see lots of spiky damage, I’d take a look at your healing systems and see if they’re too powerful.

[Flux: You can recreate this effect today in Diablo 3 by playing with gear very far below the quality required for a given area.]

Iteration 1: Potion Dilution

The first iteration was called potion dilution. This was an idea we tried very early on, and said, “what if every time I drank a health potion, it had less effect.” The idea was that if players knew their potions weren’t going to heal for as much, they’d be more frugal with the potion use.

I’ll say right now that we weren’t totally thrilled with this even as we put it in. But that’s what iteration is all about. You have to try things and be willing to fail. We knew that even if it wasn’t a solution we’d ship with, it would teach us a lot more about the problem.

  • Every Potion reduces the effectiveness of potions for 8 seconds
    • First potion full effectiveness.
    • Second potion heals for 75%.
    • Third potion heals for 50%.
    • Fourth potion heals for 25%.

What we wanted was for players to be frugal with potions. What we got was even more potion spam. Think about it, “If my potion is only going to heal me for 25% as much, I’ll just drink four times as many.”

One of the big lessons we learned from this is that diminishing returns or soft limits aren’t always a good idea, particularly when you’re in a fast-paced combat situation. When players have to make a decision whether or not to drink a potion based on the dilution of future potions, that’s simply not going to happen.

Potion dilution: Result:

  • What we wanted:
    • Be frugal with potions.
  • What we got:
    • Fights player instinct.
    • Set limit is not a good idea.

Obviously that didn’t work, so we stepped back for a bit and thought about what to try next.

Iteration 2: Non-combat Regeneration

Next we tried what we call non-combat regeneration. This is an idea we borrowed from World of Warcraft. In that game if a monster is aware of me then I’m in combat. If no monsters are aware of me then I’m out of combat. That sounds pretty cool! So here’s what that looked like.

[Short video of a Monk in Leoric’s Torture levels. As Wyatt narrates he kills one Cultist, takes about 25% damage in the process, and as soon as the Cultist dies the Monk quickly regenerates his hit points to full.]

The goal we set out earlier, 3-5 seconds of combat pacing. You can imagine if there were lots of enemies around this monk he’d have to play a lot more carefully and use tactics. The idea was for players to play with more strategy, to think how much damage I’d take in the battle, and then heal up after the fight.

It had a couple of problems.

[Short video of the Monk killing Cultists in Leoric’s dungeons, one at a time and not in a group, but never with enough space between them for the out-of-combat healing to kick in.]

One problem. As we played the game more and more, we found some issues. You’d fight some enemies, start to get low on health, and think, “I should probably find a way to heal up some, now.” But there keep being more monsters coming at me from off the screen, so I’m never healing. Not to mention that in an action RPG, if I’m lockedin non-stop combat for five minutes, that’s a really good thing. I don’t want mechanics requiring me to drop out of combat.

Another problem. [Short video shows the Monk kill a zombie in the Act One Jail level, but he’s standing near the barred wall of a cell with more skeletons on the other side, and thus those enemies are aware of him, so he’s not technically “out of combat” range to heal.] The problem was monsters would be “aware” of the character, even if they couldn’t path to him, so they were locking him in combat and no healing.

  • In combat: No healing.
  • Out of combat: Slow healing.
  • Combat is defined as a monster trying to attack you.

If you think about this from a WoW perspective, that game has monster, empty space, monster, empty space. It has this nice pacing that allows you to go in and out of combat. That’s not the case in Diablo 3 since there are monsters everywhere. The idea of dropping out of combat didn’t work in Diablo 3. And we needed it to be really obvious if you were in or out of combat, and monsters that were out of sight or in stealth or off screen would keep you in combat. Since that was our core healing mechanic.

  • In combat is hard to understand.
  • Doesn’t meet ARPG requirements.
    • Need to heal even while engaged with a monster.
    • Geometry is important.
    • Constantly fighting enemies.

Iteration 3: Defensive Regeneration

The next thing we tried was called Defensive Regeneration. Here the idea is that if three seconds pass without taking damage, your character will slowly heal back to full. [Note that the Demon Hunter’s DiabloWikiBrooding passive skill worked this way at launch, before DiabloWikiPatch 1.0.4 removed the three second requirement.]

This made a lot of sense, since we had an in/out of combat system. It had promise, but maybe the rules weren’t right. It also made sense because many FPS games, in fact most First Person Shooter games use this. You’re out in the world, you’re not taking damage, you recover. It works so well that some FPS games don’t have a health bar at all. They set the edges of the screen to turn red, you hear your heartbeat or a lot of heavy breathing, etc. These are all cues that you’re taking damage. So what do you do? Back off a bit, don’t take damage for a few seconds, and you heal right up and get back into battle.

  • In combat / out of combat had promise.
  • Simpler rule:
    • If 3 seconds pass without taking damage… slowly heal back to full.

This didn’t really work in Diablo 3. [Short video shows a Barbarian fighting two Unburied. He’s losing and after he gets low he runs away, and circles around a bit while his health quickly refills before returning to battle.] I left the mouse cursor showing in this video so you can see what the player is doing. And it’s not that fun, since you can only run around like a chicken with its head cut off, trying to stay away from enemies just long enough for your hit points to refill. It’s not engaging. Most importantly, it’s not fulfilling my fantasy of battle. “I’m just running around in circles?” We got a lot of complaints about that during internal testing.

  • Game mechanics induce behavior.
  • Design fantasy-fulfilling mechanics

The lesson from that is, the mechanics will induce particular behavior in players. We all know this to be true. But the behaviors we induce we want to be fantasy-fulfilling. Why does the three-second rule work so well in FPS games? It’s because hiding, lying prone, taking cover, going inside a room… these are all parts of my core fantasy in a First Person Shooter. But they’re not part of the core fantasy in a top down ARPG like Diablo 3.

The lesson is that just because a mechanic works in one type of game doesn’t mean you can port it over and expect it to work. So in this case we had to continue to iterate.

Iteration 4: Health Globes

In thinking about the next mechanic, we knew we wanted the mechanic to match the fantasy. And that’s what got us to Health Globes. The idea here is that, “maybe if need to heal, my best course of action is to get further into combat and when a health globe drops I’ll get healed and keep fighting.” And for those of you who have played Diablo 3, you know that’s the system that we ultimately shipped with.

  • Monsters drop health globes at random.
  • Health globes heal you when picked up.

We’re very happy with it, here’s how it works in the game. You kill things, get the globe and whoop, you’re back to full. [Short video shows a quick fight, a character with lowered hit points, and then quickly healing with a health globe after the enemies are dead.

Huge success. We were very happy with the pacing, it achieved our goals. It was fantasy-fulflling, it enabled us to limit monster damage (3-5 seconds before you were dead). As well as giving the player the opportunity to heal up.

While we’re on the topic, a little bit OT. A lot of people ask me, “Hey Wyatt, is the health globe drop rate truly random, or are you guys cheating a little bit? Do you normalize out the rates, do you look at my character’s health and dropping more when I’m low?”

No, it’s a true random system. We talked about tweaking it, but we didn’t. At the end of the day, sometimes those random systems are really good for the game. You still have health potions, you still have skills and items, so we wanted to be sure that some of the drama and the peaks and valleys in the health system still existed. So we were pretty happy with that.


  • True Random:
    • Random fluctuation is good.
    • Health potion still available.
    • Room for skills and itemization.

Lessons Learned from Health Recovery

So, what did we learn from the health recovery system? Like I said, we put in the potion dilution system at the beginning, even though we weren’t sure if it was going to work. A lot of that just says to me that it’s okay to experiment and iterate. Let the team know it’s going to be an experiment.

Lessons Learned: Health Recovery:

  • When you don’t know what to do, experiment.
  • Limit healing so you can limit damage.
    • Results in more tactical combat.
  • Game mechanics should fulfil the fantasy.

We had to limit healing to limit damage. That’s how we create a canvas for tactical combat. The next question is, now that the monsters are doing less damage and the player has time to move around, I alluded to earlier that we wanted player skills. Things that would debuff, or crowd control the enemies. These were very hard to create in a game with health potions, and that leads me to the next topic I wanted to address, the Command Input.

[Flux: Disappointed that Wyatt didn’t do some more postmortem on this issue. Travis Day did address this during the live stream back on Anniversary Day, when he admitted that the health orb system kind of breaks down in the DiabloWikiend game, since most characters at that level are surviving (or not) based on skills and life steal, and health globes become somewhat irrelevant.

This is, of course, exactly how things worked in Diablo 2, and it’s been driving me crazy since the Diablo III devs first starting throwing out those “D2 was all about potion spam” comments in 2008. Yes, low level characters spammed potions in D2, but potion drinking was almost irrelevant in the end game, where survival was entirely about life (and mana) leech.

Most well-equipped Diablo 2 characters hardly ever drank potions (very occasionally a purple rejuv in an emergency), and that’s what we see for most players today in Diablo 3, where Health Globes are not often necessary, health potions are almost never touched, and survival is all about life steal, Life on Hit, and defensive skill effects.

That said, I do think the D3 health and resources system is a huge improvement over what we saw in the previous games in the series.

This covers the first section of Wyatt’s talk. Check back later today for sections two and three. In the meantime you can watch the whole video yourself, if you can’t wait for the transcript/analysis.

Related to this article
You're not logged in. Register or login to post a comment.

14 thoughts on “Wyatt Cheng’s GDC Panel: Full Video & Transcript

    • Did you guys delete my post? I was giving you a heads up on tonight’s interview, but my post vanished.

  1. So painful to watch this video. Can’t say I agree much with Wyatt.

    ‘A lot of players are overwhelmed by a skill tree.’

    ‘A lot of players are overwhelmed by choices.’

    ‘So we take away all choices, we make them for you instead, and really streamline and dumb down the game for you. Because… you are a dumb person, and we are dumb as well, and… we want to make profit on you, because dumb people dominate the world’.

    That’s the theme for D3. Sorry if I offended anyone. While it’s nice to hear how they did reason, it’s equally frustrating.

    • Well summarized, thank you.

      This is the same problem as the American Education system. There’s 3 people who don’t get how to do something, so lets’ change everything for them, and the other millions of people can have a watered down product. Who the F doesn’t get a skill tree? And if it’s that hard, make some sort of streamlined option for stupid people. Overwhelmed by choices? That means they’ll be dead by 23 in the real world. Part of life, losers, figure it out.

      And just as a personal side note, I hate that all damage is based on weapon damage. I miss the days of weighing a skill bonus vs. the overall damage of a weapon. Now, 99% of the choice boils down to, “This number is bigger than that number.”

      • I sort of laughed when he brought up the D2 skill tree as “overwhelming” because I recently started up D2 again and began leveling a necro and sorceress and although I had the reaction he described except it was a GOOD THING. Yes, I looked at my d2 skill trees and said “oh shit I need to THINK and PLAN” my choices except he spins it off as a bad thing.
        I can understand the problem that players may try out a skill and not like it therefore a skill point was wasted what I don’t like is that D3 encourages the complete opposite of the RPG design of choices and permanence. The interesting thing is that D3 right now has a good middle ground to this with its paragon system. You get to 60 and you get to try out all of your skills but when you hit paragon leveling then you get skill points. See you’ve been able to play and test all your skills by level 60 so that eleminates the problem with D2 now you should know what skills you like and don’t which is actually how paragon leveling can work.

    • In my opinion, a good game is a sequence of interesting choices. While in D2 you still had a lot of choices, Diablo 3 has been designed to be Whack-the-mole 2.0. Sad.

      The controls section was interesting though.

    • His “illusion of choice” example is flawed. First off I like to use this example, when you look at any object be it your keyboard or a cup on your desk, its all made up of tiny atoms its not a cup its atoms, the cup is an illusion right? WRONG the cup is our perception, the “cup” is what gives it meaning, therefore just because something is an “illusion” does not mean it has no value this is why their philosophy is WRONG. The annoying thing is that Wyatt even talks about the previous rune system, the one with the Crimson runes that you socket into your skill as even having a sense of satisfaction but they reduced it down to its most basic denominator ie “dumbing down” the game. Oh and by the way all of those past skill system aesthetically are beautiful in comparison to this poop brown look we have now.

  2. For me, the problem is the lack of specialisation and character individuality.

    The experimentation with skills is a good feature but it’s not enough to meke you forget about the problems mentioned above.

  3. QUOTE

    Did you guys delete my post? I was giving you a heads up on tonight's interview, but my post vanished.

    It’s still there.

    • Weird, I can’t see it. My third post brought it back for a while (which might’ve been when you saw it?) but now it’s gone again. Oh well.

  4. Is anybody else having a hard time logging in to the website? Weird.

    The scary thing is I actually agree with a lot of what Cheng says, the problem is they seem to have taken it one step too far in almost every respect.

    The skill system being how it is right now is fine, at least to me, I like being able to respec on the fly and experiment with new builds without having to create new characters and level them every single time. The problem is, despite NV, there is no sense of the build being “yours.” The difficult part is finding a way to do it without taking away the ability to customize a character, yet being permanent enough that you can claim some ownership to the character. That said, why does fixing skills into some form of permanence make it feel better? Not sure honestly, I just know that it does, even if it makes no sense. I know for a fact I would get frustrated at having to re-roll for new build experimenting after getting used to how it is in D3 and yet even still I wish there was some single thing that was permanent.

    Skill points are in the same boat in my opinion. Manually placing them in D2 was a joke, Str for gear, Dex for gear or max block, rest in vit, nothing in energy. Period. There were some crazy builds that broke that mold, and they were even pretty fun, but they were never as strong as classes that followed the mold simply by the fact that numbers proved they weren’t, you could not beat the best builds. Now, they were still fun, and maybe that’s more important than being the strongest, but the idea that stat points were giving good customization is laughable. It’s the same boat as skill points really, there were best builds, and then there were fun builds, and the best builds were always better. That is the nature of RPG’s with any kind of manual allocation, there will always be better builds. I don’t mind the way stats are done in D3, the problem is, once again, that there is no feeling of ownership to the character. Maybe some way to give preferential treatment to certain stats, but all that would do is say “damage stat for softcore, vit for hardcore” so that would solve nothing.

    It’s a tricky place to be in, trying to find some way to claim a character as yours, trying to find some way to actually feel like you own that character, that you can be different than everybody else, it’s not an easy thing to do without giving people needless options. I say needless because, in the end, many (not all, but many) players will simply gravitate to the best character with the best build anyway, which only means new players who do no research get screwed with bad builds, that isn’t fun. I can see where Cheng is coming from, I’m not sure I completely agree with the reasons behind it, but I can see where the thought process was.

    How do you give advanced players the ability to deeply customize a character without ruining the game for people who want to stay in-game and never do research? Balancing the game for both casual and dedicated players is hard. I think the best route is to leave the game basically as is, but have there be a lot more dedicated choices once you get to end-game. As much as I hate the idea of adding even more benefit to end-game and nothing for the early-mid game, the ability to freely experiment before being forced to lock anything down would benefit both casual and dedicated players in my opinion. The hard part is finding the balance and the best way to do it without frustrating either group too much, since the game needs both sets of players to thrive.

    • its simple, more customization is better and the more you customize the more the character becomes yours. There are a few ways that this can be addressed and should have been addressed. The first is through rune ranks. That idea was scrapped, probably in an effort to save it for the expansion in some form, but it really should have been in release. The second is the application of those rune ranks. It can be done through paragon levels AND/or drops/crafting. It should have had some form of iteration in paragon levels when that system was devised. How such a shallow and shitty system as the current paragon got greenlit just shows how scared the devs are to address the real issues of the game.

  5. How many gameplay designers at Blizzard have played fighting games? I mean no disrespect to Wyatt Chang, but his entire control talk is all about how they iterated to find a solution to a mostly solved problem. Control Input Queues have been used in virtually every fighting game since Street Fighter 2 back in 1992.

Comments are closed.