After creating Netherspite, Jeff Kaplan came into my office with a concerned look on his face. In a nutshell, he said, since he felt like the complexity level of the fight was too high and the recent firing of a colleague, he felt it would be best if I went back to working on some basic content for a while.
In order to do this best, he was bringing in a mentor from the Starcraft 2 team. Michael Heiberg.
Heiberg, Warrior of Consistency
Now, anyone who’s worked with Michael knows what it is to get the Heiberg treatment. For those of you not-in-the-know, prepare to be inducted.
Heiberg, of the Heiberg helm, clan of 100 generations and wielders of rational thought has the following traits.
Passive: All emotions applied to rational arguments are ignored, except in case where they are the emotions of the player experiencing the content.
Q: Precision strike – rapidly identify the areas of greatest weakness and adapt a plan to resolve it quickly and with minimal waves.
W: Vigilance – Toggle – constantly rechecks work and ensures all work is proceeding at a well-tested and stable velocity. Is never toggled off, except on weekends.
E: Guidance – Provides precise and specific insight into design philosophies and adapts the lessons for the student.
R: Comprehensive Reconstruction – accurate rebuilds the entire philosophy for a game’s structure, design and creates a document commemorating that philosophy.
Teaching from the Ground Up
Michael’s process was simple – so far, I had focused on building things from a very instinctual, gut-feel, place. This was effective when reusing tools that existed and less effective when creating new experiences from scratch. To understand how to create WoW, I must understand how WoW was built.
If you haven’t read “The Simplest Thing First”, go do that now. (http://xelnath.com/2012/06/30/the-simplest-thing-first/)
At first, the approach for creating monsters for the Outlands was simple. What do they look like? What should they do? Birds should flap their wings and peck. (Sorry, J.) Mages should cast arcane missiles and fireballs, then so-on.
This made a lot of sense and was generally pretty quick – make a copy of the existing spell (templates didn’t exist yet), change some damage numbers around, paste it and go.
Michael had a different philosophy. Instead of thinking about just what form of flavor each monster should have on top of existing abilities, each monster should be thought of as a note in a song. Each one brings its own feeling – and too much of the same note makes for a very dull song.
So he changed the approach – spawn a few monsters in an area, then start thinking about HOW that combination of monsters comes together to create a complete experience.
A Beginner’s Guide to WoW Abilities
As we developed abilities, he became creating categories for classification of abilities, as well as logging the different ways that players can handle the situation.
- Family Abilities
- Reactive Abilities
- Preparation Abilities
- Flavor Abilities
Family abilities make sense for all creatures of the same type to have. Wolves howl. Spiders poison. Scorpions throw silk nets. You know, things like that. This is where most people start when they are crafting abilities – “What makes sense?”
Reactive abilities give you the opportunity to respond, by either reducing, negating or otherwise adapting to the situation created by the ability. At it’s most basic, the Mage Fireball is an easy example. If running up to the monster would cause you to aggro too many monsters, hiding behind a wall (… but not a hill, thanks terrain programming) will cause the creature to run around the corner to see you again. If you happen to be a warrior, mage or other class with an interrupt, you can reduce the damage you take with a well-timed Kick to the monster.
Preparation abilities are mitigated by doing something before engaging the monster or before the monster uses the ability. The simplest example – a monster which calls for help to nearby monsters – can be negated by isolating that monster and pulling them away from nearby, dormant monsters. Another example of a preparation ability is a monster which charges when engaged. There is little purpose in getting a long distance away, so instead you can pop a short defensive ability to absorb the initial damage.
Finally, flavor abilities are generally uninteractive but add visual delight, animation, just a cool message in the combat log or other thematic mix-up to a WoW creature. This is particularly important when you remember the origin of WoW like MMOs – born of the text-based MUD, most damage is targeted, unavoidable and auto-attacky. These flavor abilities break up the tedium, at least slightly.
Crafting a World
Me: Alright, Mike, I just hooked up about thirty monsters in the zone with abilities. What’s next?
Mike: Whoa, that was pretty fast. How’d you do that?
Me: Well, I setup a bunch of spell templates. The warriors all charge and do a strike. The mages cast either Fireball or Shadowbolts and throw up an armor spell or two.
Mike: Uhm… and how many zones did you setup like that?
Me: Eh, just Hellfire Peninsula.
Mike: Hmmm…. maybe you should sit down for a few hours and play it?
Me: What are you talking about? Fireballs and charges all work, not that bad at all. Should be fine.
Mike: Did you test any of them?
Me: Yeah, spawned one or two as I crafted them. Why?
Mike: Just go pull test the zone and come back to me. Make sure you fight each one at least once.
… an hour later …
Me: Uhm…. yeah, so I fixed the issue where a bunch of the mages didn’t have mana. And uh, wow, getting stunned on aggro by every warrior type NPC in the zone sucks.
Mik(e): Heheheh. You have a solution?
Me: Yeah… I’ll go through and add quite a bit more spells to the monsters.
Mike: Before you do that, let’s sit down and plan it out together. While you were testing it, I went ahead and made a list of every monster in every zone and what kind of outfit they wear.
Me: How will that help us?
Mike: Well, we can sit down, discuss the different monsters each morning, you can implement them while I’m in Starcraft 2 meeting, then we’ll sit down and test them together each afternoon.
Me: Isn’t that a little overkill? I think you made the point when I played the zone.
Mike: Yeah, perhaps so, but even while working alone can be fast, it doesn’t replace the creativity of a couple people working together. For example, when you put your mind to it, your ability design is very interactive, but tends to be scatter-shot and under tested. On the other hand, my ideas are usually safer to implement at the cost of some creativity and exploration. If we work together, we’ll cover each other’s weaknesses well.
Me: Oh. That makes a lot of sense. And planning it out together lets us do that face to face… but what if I have a great idea while working on an area.
Mike: Then just do it – and document the new ability on the wiki here. The goal isn’t to establish some master plan and execute on it – it’s to ensure we know why we’re making what we’re making and that players will enjoy it.
That story was a bit contrived, but these types of discussions really happened. Working with Mike showed me the power of having someone else not just looking over your shoulder, but actively involved in ideas on a regular basis. No matter how creative you are, having someone else reality check you often creates better ideas. When you’re in a quality focused company like Blizzard, that’s doubly important.
I remember one time I made this demon creature that shot a volcanic jet of ooze at a player. The idea was that the player could dodge the ooze by constantly moving while the missile flew through the air and left a puddle behind. After confirming it dealt damage, I hooked it up and left it in there. A few days later, Mike came by and asked:
Mike: Are you *sure* you can dodge that spell?
Me: Uh… I think so. *cheats speed up and runs around*
Mike: Well, no actual player can move that fast. But… are you sure it’s working?
Me: Hmmm… I thought so when I built it… but it seems like the damage ticks are hitting me still – just much later than expected…. even when I’m outside the pool.
Mike: Who can help us figure out what’s going on?
I wandered over to Sam Lantinga’s office.
Sam: Hey Alex! 😀 😀 😀 (He really smiles this much irl)
Me: Hey Sam! I’m trying to figure out why this monster seems to be dealing damage to me when I move out of the AoE.
Sam: Oh, that seems like a serious bug! 😀
Sam: Let’s take a look. 😀 😀 Sit down while I repro it.
Me: You don’t just want steps?
Sam: Nope. Sit here in case I have questions. It also helps to have someone to chat with while I’m waiting for the debug server to warm up.
This often took 5-10 minutes…
Collaboration sometimes means that you take the extra time to sit down and get to know the people you work with regularly and learn how they work. In Sam’s case, he’s an extremely social guy and being physically present with him shows that your problem is not only important, but that you respect the effort he puts into investigating the problem.
Sam: So what you’ve done here is impossible. 😀
Sam: Yeah, there’s no way this could possibly have worked. 😀 😀
Me: But it did…
Sam: Are you sure? 😀
Me: Fairly sure. Now I feel crazy.
Sam: Well, how did you test it?
I reproduced the test case using a speed cheat. It worked!
Sam: Oh. :O
Me: How did that work?
Sam: I’m not sure, but it certainly shouldn’t have worked! 😀
After some investigation.
Sam: So the reason it worked…. was that the speed cheat was so fast that it predicted on the server that you were outside the range of the spell entirely. But on a normal player character, they wouldn’t have escaped so easily. 😀
Me: Oh no. What do I do? This idea is sound.
Sam: It does seem really fun to be moving around and sidestepping giant jets of Demon Acid. 😀 😀
Me: … I wonder if anyone has ever said that before in their life.
Sam: Hahaha. It’s ok. I’m going to show you how to set this up properly – and we’ll write some new code to do it. Grab a seat. 😀 😀
Back to the Lab
Mike: How’d it go?
Me: It will be a few days, but we’ll have a new build which fixes the issue.
Mike: Great, because I’ve added a new section to the overworld design guidelines:
Spawning and Abilities
- Ability Crossover
- Care must be used when using control denying effects
- If too many monsters with CC exist in one location, the player spends more time locked out than playing
- Spawn Density
- Monsters should have a minimum amount of combat space around them
- This ensures that players can safely engage the creatures
- Chain Pulls
- Monsters which call for help need to be very carefully used
- Doubly so if the monster flee at low health
- Chain pulls – or situations where the player never gets a chance to rest can occur
- This leads to inevitable death – either immediately by aggroing the entire camp
- Or by a slow war of attrition
- Disruptive Patrols
- Therefore, it’s more appropriate for disruptive monsters to be relatively scarce
- Consistent patrols allow players to handle them beforehand
- This also reduces the number of the types of these monsters which exist at once
For a particularly harsh example, the Thief Catchers with nets in Orgrimmar are an excellent example of a particularly disruptive monster. (Though those were added to keep Rogues from ganking innocent orc players non-stop…)
Me: Huh, I hadn’t thought of it quite like this before.
Mike: It’s far from complete – and I know there’s a lot more to add on to this list. Help me out and we’ll make this list far better. 🙂
These kinds of stories were incredibly common throughout Burning Crusade and beyond. With thoughtful consideration and kind support, all of us who were fresh to the Blizzard team came to learn the patterns and methods used to craft the game.