Thursday, December 21, 2006

Warrior Tanking, part II (Why to Spec Prot)

So here I am, once again at home, with a new kind of jury-rigged wireless keypad for my laptop and an extra 512MB of memory for WoW away from my desktop (whose name is Monica, for those of you who are curious, although I rarely refer to her by name or even as a person). The last couple weeks have been crazy. Or felt crazy, anyway. Some highlights:

* Had a friend come up from Santa Barbara and we had a good time, and then we went down to his place in SB and had a good time. We can now add Irish coffee to the list of coffee-based beverages that I actually enjoy (the list previously being limited to Cuban espresso. Perhaps I have a thing for ethnic coffee with lots of additives).

* Saw The Nativity Story with Thayet and said friend. Thayet and I both liked it a lot. We both could have wished that the magi were a little more obviously foreign, but that’s all right. The real strength of the movie is that it plays things completely straight (granted there’s more than a little bit of a Christian slant to things, but that’s kind of inevitable if the magi actually show up and Jesus is actually born). Mary is just Mary, and Joseph is just Joseph, and their characters and relationship (progressing from “why do I have to marry him?” to being partners in a story they know they don’t fully understand) carry the film. Well worth seeing.

* Went to Dickens for the first and only time this season, which was disappointing but had some good parts. Saw some old Fair friends, including Enika and Kalaraen, and got to meet (briefly) some of Thayet’s friends too. Much sighing to be done about Dickens, but that’s for private.

At this point I could recap finals, or Thayet’s and my date to Santa Cruz complete with steam train, but instead I’d like to talk about something that I know you’re all dying to know about, and that’s why a warrior in WoW should and should not put his talent points into the protection tree (“spec protection” for those of you who don’t play).

A brief bit of context for those of you who don’t play but are interested in reading this far anyway. Every character class in WoW has three “talent trees,” which enhance certain class abilities or even grant new ones to allow you to tweak your character according to your playing style. You earn points to invest in these trees (“spec”) by advancing in level. Each tree has an easily identifiable theme: the three warrior trees are Arms, Fury, and Protection. Conventional wisdom says that Arms is the tree for warriors who like big, slow, two-handed weapons (I know that a two-handed sword is faster than a one-handed sword, but WoW is about fantasy conventions and not medieval martial arts), Fury is for warriors who like to wield two weapons at the same time (“dual-wield”), and Protection is for warriors who use shields. Another way to look at the trees is that Arms is for player vs. player combat (“pvp”), because it lets you deal a large amount of damage quickly; Fury is for player vs. environment combat (“pve”) because it maximizes your damage per second (“dps”) over time; and Protection is for tanking (see previous post of 11/3/06).

I am not going to argue with the above characterizations of pve/dps/tanking. What I’d like to talk about is why Protection is good for tanking. If you spend any amount of time talking to warriors in WoW you will find a great many of them under the misapprehension that Protection is good for tanks because it keeps you alive longer. This is a serious mistake. True, there are Protection talents that increase your armor, your defense skill, and make you better at blocking with a shield (yes, I know that you should never block with a shield in the kite, heater, and buckler contexts we’re talking about. See previous comment about verisimillitude). The truth is that all of that will keep you alive for a few extra seconds in any actually life-threatening scenario. What keeps a tank alive is the fact that he has a healer to heal him, and dps classes to kill the target. Protection adds a noticeable amount of durability to a character, but not enough to make a difference of more than a few seconds without support.

And in any case, as we all know by now, tanking is not about staying alive. Victory in combat is about staying alive; tanking is about generating threat. So the question we must ask ourselves is this: how does Protection increase a warrior’s ability to generate threat?

The first and easy answer is that once you have invested 31 talent points in the Protection tree you can gain an ability called Shield Slam. Recall that wielding a shield is actually a concession for a warrior—normally, your left hand should be wielding a weapon, since it is weapons that allow you to generate threat. All a shield does is make you more durable, which has very little to do with how effective a tank you are.* Shield Slam changes all of that, by giving you a shield-based attack that generates a ridiculous amount of threat (although we won’t go into the math of that here). Protection also makes you better at blocking with a shield, as mentioned above, and warriors have an attack called Revenge which also generates a large amount of threat and is only usable after dodging, parrying, or blocking an incoming attack. The more you can block, the more you can use the Revenge attack. The moral of the story is this: Protection lets you use a shield as a source of threat, rather than simply a source of durability.

That is the simple answer. Here’s a more interesting one. First, ask yourself this: how much rage is too much (see footnote for explanation of rage)? No such thing, you say? Not so! Follow me through a little bit of math:

A warrior’s abilities are subject to a 1.5 second “global cooldown” (“global CD”) which prevents any special ability (with certain exceptions we are not concerned with here) from being used for 1.5 seconds after any other ability has been used. This lets us calculate how often a warrior can use his special abilities. These abilities fall into two types: “instant” and “next melee,” and each class has its own independent global CD timer. An instant ability is one that is used as soon as you hit the button. Thanks to the global CD, a warrior can use those with a maximum frequency of once every 1.5 seconds. A “next melee” ability is one that is used the next time the warrior swings his weapon. The fastest weapons in the game swing every 1.3 seconds. Of course, if you were to hit the button for a next melee ability and you were using one of those 1.3 second weapons, the global CD would still be ticking down after you had swung your weapon. So a warrior can use one instant and one next melee ability every 1.5 seconds.

This lets us calculate a warrior’s maximum usable rage per second, which is an interesting number. Let’s take three warrior tanks, for each of the three trees:

Our Arms warrior will be using the following abilities: Mortal Strike (only available to Arms warriors), which is an instant ability with a cooldown of 5 seconds that costs 30 rage; Sunder Armor, which is an instant ability with no separate cooldown that costs 15 rage; and Heroic Strike, which is a next melee ability that costs an Arms warrior 12 rage. What is his maximum usable rage per second? Let’s assume he has a fast enough weapon that he will be using Heroic Strike every 1.5 seconds. That’s 8 rps for his next melee abilities. Every 5 seconds he’ll use the following sequence: Mortal Strike, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; wait 0.5 seconds, repeat. That will cost a total of 60 rage for those 5 seconds, or 12 rps. Total usable rps: 20. Total usable rps without Cleave**: 12.

Our Fury warrior does not have access to the Mortal Strike ability but does have access to Bloodthirst, which is an instant ability with a cooldown of 6 seconds that costs 30 rage. His Heroic Strike costs 15 rage, and Sunder Armor still costs 15. His next melee rps is 10. Every six seconds he’ll use the following sequence: Bloodthirst, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; repeat. That will cost a total of 75 rage for those 6 seconds, or 12.5 rps. Total usable rps: 22.5. Total usable rps without Cleave: 12.5

Our Protection warrior has a number of talents that reduce his rage costs, which is where I’ve been going this whole time. He’ll be using Shield Slam, which is an instant ability with a cooldown of 6 seconds that costs 17 rage; Sunder Armor, which only costs him 9 rage; and Heroic Strike, which costs him 12 rage. His Heroic Strike rps is 8. Every six seconds he’ll use the following sequence: Shield Slam, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; Sunder Armor, wait 1.5 seconds; repeat. Those 6 seconds cost him 7.3 rps. Total usable rps: 15.3. Total usable rps without Cleave: 7.3.

Arms: 20/12
Fury: 22.5/12.5
Protection: 15.3/7.3

Any rage beyond that (well, perhaps a little to have in reserve just in case) is basically useless from a tanking perspective; any rage less than that is sub-optimal threat generation. Here’s the catch: it’s really hard to get to the optimal Arms and Fury rps values. Presently, for a level 60 character to generate 1 rage from being hit, he has to take 45.6 damage. To generate 1 rage from attacking, he has to deal 17.075 damage (I think – the formula gives is nonsensical). Thus, for truly optimal threat generation, our three warriors must take the following damage:

Arms: 912 dps
Fury: 1026 dps
Protection: 697.68 dps

Keep in mind that an average tank will have perhaps 6000 hit points. Our Arms warrior, in the optimal scenario, will stay alive for 6.6 seconds; our Fury warrior, for 5.8; our Protection warrior, for 8.6. That is how long the healers have to cast a heal before their tank dies, followed shortly thereafter by everybody else. But the real trick is that the lower the optimal dps value, the more often you can reach it.

If our tanks decide not to use Heroic Strike every 1.5 seconds**, they could achieve mostly optimal threat generation by dealing the following damage themselves:

Arms: 204.9
Fury: 213.4
Protection: 124.6

Or those could be exchanged at the rate of 45.6 dps taken for every 17.075 dps inflicted. Once again, Protection’s optimal value is much easier to reach.

So the real trick here is that Protection lowers the optimal rps values to actually achievable levels. That is the second, and more interesting, answer to why Protection is the tree of choice for warrior tanks.

* “Rage” in this context is a term of art that refers to the “substance” that warriors expend to perform their special abilities. All warriors have a “rage bar” which goes from 0 to 100 and starts empty. It fills up as the warrior inflicts damage and takes damage, and once a warrior has accumulated enough rage he can spend it to perform some special ability.

** The reason a warrior might not want to use Heroic Strike is because next melee abilities don’t generate rage, even if they inflict damage (if they did, they would either net out to very little rage expended or else require an impractical activation cost). Thus, a warrior who is never swinging his weapon for a normal attack has to generate all of his rage through taking damage, and it is rather hard to generate usable amounts of rage that way without dying rather immediately.

1 comment:

JoeLinux said...

Awesome hanging out with you. We should do it again sometime soon! Let me know if/when you have some time off, and we'll plan something else to do up there!