Tuesday, June 21, 2011

An Adaptive Hunter Rotation (part 2)

Model Imprecision
The first problem with trying to develop a 100% maximized, static playstyle is that the tools to get that precise don't actually exist. Don't get me wrong, there are plenty of tools out there that are very good and will give very accurate predictions. And they can predict results that will tell you that you can expect literally a 1.45 DPS increase by changing X to Y and therefore X is slightly better. The fact that the spreadsheet (or web app, or simulator, or napkin math) can give you such a precise number creates the illusion that the spreadsheet is actually accurate to that degree.

It's probably not and it probably overemphasizes minor changes. Virtually every model that is not a simulation is going to model various stat fluctuations not as a smooth, curved (or straight) line, but as a jagged mess of peaks and valleys as the data adheres to the model's parameters instead of probability. That 1 extra point of haste gets you exactly one more X shot in a given Y frame of time! That 1 extra point of crit gets you exactly one more proc! You do not want to be tricked into thinking you are maximizing DPS when you are really just gaming the model.

There definitely are times when reaching some threshold is reasonable. When explosive shot was more powerful, getting Cobra Shot to fit that CD window was important. That's a more macro change, compared to a more micro one that a super "precise" that only a spreadsheet/app is going to highlight. And even that, it was really a small window of time determined by latency rather than an exact number.

I am by no means advocating using a simulator either. Simulators do have the advantage of not appearing to be more precise than they are, though.

Haste as probability
When haste was first introduced to the game, some people at first argued that the value of haste was quantized, such that it had no value until you had just enough haste to get one extra shot on a given boss fight. You'd see another plateau at each step along the way. This is true on cases where you don't have to stop attacking - ever - but not in actual practice on existing bosses.

In the real world you have to stop attacking, most often simply because of movement. This separates damage time into smaller compartments and how this breaks up your damage is mostly probabilistic. There are multiple ways of looking at how haste breaks up your damage here.

One way is to look at whether or not you have to interrupt (or otherwise not start) a cast. Let's say you have to move out of an incoming shadow crash and that movement time is 3 seconds. You also have 1 second to react. Ideally you want to finish your cast, move, and start again - a total loss of 3 seconds DPS casting time. If you attacked with a 10s cast that does 10k damage, you would have the same theoretical DPS as having a 2s cast that does 2k damage. The best case scenario for the former is that it comes just after 9s into your cast; you'd lose 3 seconds to movement. The worst case is that it comes just before 9s, you have to interrupt the cast and end up losing just under 12 seconds. In the latter example, the best case is the same but the worst case is that you lose about 4 seconds.

By making the casts more granular, even if your 2s cast does have to be interrupted you are still likely to do a greater percentage of your damage. When you are interrupted you lose only a small piece of damage, instead of a large chunk.

SimCraft does make some attempts to model movement, but most other models do not and that misrepresents haste, potentially significantly. This example is purposefully ludicrous to highlight the issue; in reality you aren't looking at quite such a big impact, but it is there.

On-the-fly adjustments
On a fight like Patchwerk you know exactly what is going to happen to force you to change up DPS. Nothing. Contrary to what some PVP-exclusive players will argue, there are several times when you have to break or modify your rotation because something happened. It doesn't matter if it's predictably or not, if you try to follow an exact rotation, whether it repeats every 15 seconds or every 360 seconds, it will most likely get interrupted at some point in the fight.

So let's say you have a 15 second rotation that is perfect to a T. It is so precise that you get to do 35k DPS but it requires an exact order or you basically have to start back over again and the whole thing falls apart. And then someone on add duty needs your assistance. Or you get Caustic Slime. Or you have to move, like mentioned in the previous section. What if instead you had a rotation that maxed out at a potential 34k DPS but you didn't break down

How flexible is your rotation? These numbers are a bit extreme again and in reality you can probably do the max DPS during times where you know you can, and yet be prepared to play it by ear at a later time. You still have to know how to improvise. I would be willing to bet a raid leader would rather have someone who did %.05 less DPS than your best but could improvise through the tough situations and help resolve them, instead of being a detriment. Again, this is a bit of a false dichotomy; you can go for both.

Abusing shifts in power
Not every fight has something significant, but some have various mechanics that let you sacrifice a bit of power here for a lot more power there. Maybe some add reached low health and you want to break your rotation to snipe a killing shot. (I'm not talking about gaming the meters, but about times when this is an efficient redistribution of raid resources and you aren't just causing Guy X to waste a cast.) Or a power generator went down and you want to both minimize movement to get there and conserve resources (focus, CDs) for when you do get there. Or hypothetical boss ability Y that some how makes Kill Command amazing if used at the right time. Or something as mundane as being focus capped for a second so you can dump a full focus bar on the adds that are coming out with multi shot.

How flexible is your rotation? Can you improvise a bit to get a better performance, or is it too static and rigid?

The solution
Being flexible and able to improvise are certainly becoming major themes. What we need is to have both an intimate knowledge of the class from a theoretical standpoint and the experience required to have an intimate knowledge of boss fights so that we can put that theory to use. One of the things I hate to see from theorycrafting, for all of the reasons mentioned above, is to say something like "always do X, Y, Z" to excruciating detail. I don't think it's practical to actually implement that.

We should instead be more focused on providing the tools necessary to understand the class (the math on calculations, how things work, relative strengths of different abilities) so that the smart player can use them for max DPS when they don't have to improvise, when they do have to improvise, and be flexible enough to weave the two together. Here are your abilities, they scale with this, here's the formula. This is their damage per focus, this is their damage per cast time if you do X and Y, this is how it compares to doing Z instead. Look at this point here, it is significant because of A. This is how it all weaves together. Most of the time you are aiming for something that looks a bit like this rotation, but these other factors will change it, oh and don't forget to look out for that. Don't just present a static, rigid rotation that games the model and doesn't actually let the player understand what's going on so that they can improvise when they have to.

Monday, June 20, 2011

An Adaptive Hunter Rotation (part 1)

No class really has a set rotation anymore, given all of the procs, interactive abilities, cooldowns of various lengths, etc. But there's no good word to fits its place so I'll be using "rotation" to simply refer to the complete set of all ability choices made during an encounter. I'm glad we got that out of the way!

My main reason for writing this post is a general dissatisfaction for the way some hunter theorycrafting is being dispensed on the Elitist Jerks forum, particularly in the MM threads. This isn't a complaint about EJ at all, but rather at how a poster or two dispense and advocate solutions. Ok I might as well say it: I disagree with Whitefyst (the OP of the MM and MM in 4.2 threads) and his assessment of how to achieve optimal results in a raid. I have nothing against the guy personally and I think he's fairly knowledgeable, I just disagree with his approach. You can take a look at two of those threads to get an idea of what I'm talking about, but my complaint that I am writing about today is perhaps even a bit more generic.

It's too rigid. It's too static. It is precisely calibrated to a model that, while very good, does not represent real raid play to a high enough degree to warrant such calibration. It does not account for movement (SimCraft does this these days, but a lot of other models still do not). I'll cover each of these in their own section, but first let's take a look at how things used to be and where this way of looking came from originally.

The World Before WotLK
If you don't remember the hunter playstyle before Wrath of the Lich King, good. At the time it was all I knew but in retrospect it was bad. It was incredibly simple yet incredibly unintuitive. Most of our abilities were awful which made the rotation (it actually WAS a rotation then) simple, especially for BM. Serpent Sting was awful, Arcane Shot was awful, Aimed Shot was awful. Steady Shot was the only decent resource-consuming ability. It also delayed the Auto Shot timer leading to a rather stupid but effective macro. Hit that macro all day long, hit arcane shot while moving, manage your pet, manage your pots/cooldowns, and manage boss mechanics.

It was a static system (and also rigid, but too short for that to really matter). Proper gearing thus doubled how effective it should be by filling the gap that would otherwise be in the form of skill required to finesse a delicate resource system. More work was done out of game looking at a simple system under a microscope because you were already skill capped on what buttons to press and when. (Outside of pet management which to be fair as become easier).

The Better Style in WotLK and the Way Better Style in Cataclysm
Some people still ask me if hunters still use a single macro. I think in most cases they are trolling (comedy gold) but I am also willing to concede that they are also bad players who barely understand their class, let alone others. Anyway, WotLK was a pretty big overhaul for some classes and notably one for hunters. Most of this came in the form if giving us more buttons to press and steady shot and auto shot being de-linked. We had to juggle some short (6s-30s) cooldowns, watch a DoT or two, and possibly make use of procs. Mana was a complete non-issue as long as we had judgement of wisdom on the target, so for all intents and purposes our resource system was a combination of time and cooldowns. Definitely an improvement all the rotation for each spec was still pretty rigid, proc or not.

In Cataclysm we obviously finally got a real resource in the form of focus. Aimed Shot went back to having a (long) cast time and Steady Shot and the new Cobra Shot also have cast times. We have abilities that are instant and consume focus with a cooldown: mainly each spec's signature abilities; Kill Command, Chimera Shot, Explosive Shot, and Black Arrow. We have abilities that are instant, consume focus, and have no cooldown: Arcane Shot. We have abilities that are instant, consume focus, have no cooldown, but have a cast time: Aimed Shot. Abilities that consume no focus: Kill Shot. You know what, let's make a table. Aimed Shot! with an exclamation point is the procced version of the "hard cast" Aimed Shot ability.
Ability Instant Cast Consumes Focus Generates Focus Cooldown Spec
Steady Shot X All
Cobra Shot X All
Aimed Shot X MM
Aimed Shot! X X MM
Kill Command X X X All
Chimera Shot X X X MM
Explosive Shot X X X SV
Black Arrow X X X SV
Arcane Shot X X All
Kill Shot X X All

What does this change?
We now have a pretty rich resource system here. We want to consider each abilities DPS (damage per second) and DPF (damage per focus) and how it all fits into a much broader picture with focus, time, and CD balanced together. These things can also change dynamically. Wouldn't we want to develop a system that is not completely static, so that we can abuse resources at our disposal when the relative values change? When we get a haste proc and the cast time changes, shouldn't we re-balance? When focus generation or cost changes, shouldn't we re-balance around the lessened importance of DPF?

The static approach
I mentioned earlier that Whitefyst and others have advocated for MM a pretty static and rigid approach. Aim for exactly X% of haste, use this rotation, repeat. The percent of haste advocated is very strict and normally balanced around a 9s Chimera Shot cooldown (uses the glyph), with enough haste to fit steady shots and other focus consuming abilities perfectly into that 8 second window (1s for Chimera's GCD). Nothing very different is done during bloodlust, Termination (steady shot generates more focus when the target is below 25%), or various other external factors. Basically, these factors are held as constants as much as possible and decisions are made around them instead of considering them.

This isn't necessarily a bad approach. In fact, this is basically how it worked in BC and somewhat in Wrath. But with such a rich arsenal at our disposal it means one of two things.
1) The abilities simply aren't balanced. Ability X with a cooldown is so powerful that doing everything you can to increase its frequency trumps all other considerations (Explosive Shot was like and nerfed). Ability Y is so powerful that you want to do everything you can to use it more (Aimed Shot before it was nerfed). Or something like these; the theme here is that it's normally the result of an imbalance that either hasn't been addressed (early Cata) or won't be addressed at all (BC era of virtually no changes to anything but Aspect of the Viper).
or
2) The rigid and static rotation should perhaps be re-examined outside of Patchwerk fights. Hint: there are no fights this expansion with literally no movement or external considerations and there's a 99.9% chance we won't ever see a fight like that again.

If you couldn't tell, I am of the opinion that things are actually pretty well balanced now. Several factors come in to play every time you press a key these days and you need both the experience and the theory to play optimally. Static rotations throw a massive wrench into the works, which I plan to cover in some detail in part 2.

In part 2:
The Static Problems: Model imprecision, Haste, On-the-fly adjustments, Abusing shifts in power balance
The Solution: A granular, adaptive approach.

Friday, June 10, 2011

Sinestra - Hunter and ranged DPS

Now that we finally have Sinestra under our belt, I want to commit some thoughts on the fight and my role in it to internet posterity.

This was one of my favorite fights to learn this tier for a number of reasons. The pacing of every phase felt great - no drawn out starter or transition phases which you have to dredge through every attempt just to get to the meat of the fight. Nefarian was like that, in my opinion, and I remember doing some attempts with no crackles in p1 just so we could get to p3 faster and learn that. There are no hard phases where the onus is on one or a handful of people and everyone else (or at least me!) has very little responsibility. Nefarian is an example again here, this time with p3. I also like that it is difficult without being completely random - not that the whole thing is scripted by any means, but I can plan several things in advance. Every pull I really had an opportunity to perfect my play just a little bit more in a variety of areas.

With Sinestra, the first two phases seem crisp as everyone pushes for that high DPS threshold. The Lich King heroic fight at times seemed long for the sake of being long. With Sinestra you still have to master the mechanics, but only a few times. The third phase starts off chaotic as you deal with remaining adds and orbs/cutters at the same time, and by the time you have really finished that transition (respawned whelps killed again) you are deep into the phase. We also get to see three very different ways of having DPS thresholds in the same fight.

As far as my own strategy for this fight, in a generalized sense it is about the same as what I'd do as a hunter with any strat, but as a ranged DPS role it is heavily dependent on my guild's specific strat. We start off with heroism for two reasons 1) You don't have much use for it in p1 with Essence of the Red GCD capping a lot of your raid and 2) To meet some damage checks here. Ideally you want to get through phase 1 before a second set of wracks, third whelp group, and third pair of orbs. Our healers tell us that a second set of wrack isn't the end of the world because they don't have much to do in p2 (no clue if he's full of shit), but transitioning with a third orb pair is awkward and unnecessarily adds potential for mistakes.

We reset her to get better positioning for the pull, which means that you can't open with a hard cast aimed shot MD'd to the tank. Instead, I start with the usual prepot and MD and have a chimera shot immediately followed by a serpent sting right when she's targetable. From here I pop rapid fire with heroism going up and get some burst in. You will easily get through one rapid fire before the first orbs come out. Some hunters are averse to using rapid fire with heroism because your steady shots are severely under GCD cap, but the full picture is a bit more complicated than this. With heroism and rapid fire, I am down to 1.09 second aimed shots - and importantly I am generating a lot more focus with Rapid Recuperation which lets me cast even more aimed shots at this time. Obviously this is somewhat countered by the "wasted" haste on steady shots, but my math and experience suggest the payoff is worth it or a wash at worst. I also have another incentive for popping RF right off the bat - this lets me use it right at the start of p3, which means it could be back up again at the end of p3 if the fight goes a little bit longer than ideal.

I am very rarely using arcane shots at all in this fight. I use them 1) after heroism falls off before p2 transition 2) while moving (dancing around orb spawns, kiting orbs). Once we get to p2 the whelps are brought to the back of the room and AoE'd down. Hunter AoE is perfect for them, so take advantage of it - spam steady shot on Sinestra as they are brought to the back to cap focus and keep ISS rolling, then do a full focus dump. I leave my pet on Sinestra at this time so he's hitting her right away after Twilight Extinction goes off. Pets easily survive that, but you can also hit a cower to prevent a bit more. I'm always on one of the eggs so I switch my pet to mine right away as I'm running over into position. Again, this is to get the pet in position for when Twilight Carapace drops off and also to make sure mangle is up already. A short timer starts after Calen says "You are weakening Sintharia, accept the inevitable!" which lets you prepare for the carapace to fall and the eggs to no longer be immune. I think it's about 4-6 seconds. If you don't have the timer you can also judge it by her emote "You mistake this for weakness? FOOL!" - the carapace falls right about when she says "FOOL". Time it so that a hard cast aimed shot starts to wind up before the carapace falls and hits just after it falls. Normally I would doing aimed+chimera on Careful Aim (+80%) targets, but this one has so little health that I like to delay it a bit by doing a second aimed shot after this pre-cast one hits. You should be able to get both aimed shots and not much else off just before the egg drops below 80%. Both will crit so congratulations, you just did 80-100k damage to the egg in about 2 seconds!


The start of phase 3 is clean up duty for our ranged. We knock off the spitecaller and then the drake and then have a bit of a breather before the whelp tank is ready for us to kill those so he can switch to Sinestra. Our priority has been spitecaller first, but he's not quite in range yet. As I head to my p3 position I am normally dumping focus with chim+arcane or Fox+steady, switching to the drake when it's in range, and then switching to the spitecaller when it is in range. Finish off spitecaller, then finish off the drake - it should be dropping a few seconds after Essence of the Red goes off. Then it's burn time


I will confess that I haven't completely mathed out my strat here, to make sure there isn't something I could do better. But it's been working for me so far. You could either 1) hold RF until after Essence of the Red falls off or 2) use it now and adjust your rotation. I do the latter. My aimed shots are at about 1.01 seconds with ISS up but no RF. What I do at this time is let ISS fall off while RF is up, which still has my aimed shots at the GCD cap (.85s here), and do a simple Aimed Shot+Steady Shot, repeat cycle. I'm generating a lot of focus with the haste buff and RF up, so only the one steady every other shot is enough to keep this going! This lets me take advantage of the extra focus without capping and frankly shooting a ridiculous amount of aimed shots - while Careful Aim is still active so they are also crits. Again, I could stand to do some more math here but I believe it is at least a solid working hypothesis.


Right about the time RF falls off (at least the first time, depending on how much I had to move for orbs), the whelps are getting dragged to the back of the room. Our strat involves killing them once there to drop the puddle, and then continue to kill them (they rez after creating a pool) as that add tank runs up to Sinestra. As they are running across the room after the first kill I normally switch back to Sinestra until they stop again - their deaths are normally staggered a bit so they aren't clumped up as they run. After they are down this second time, all that is left is to kill Sinestra and handle orbs correctly. All of our best attempts and kill had Essence of the Red falling off after she was at 25% at the highest - meaning you are already in Termination range, generating more focus, so there is no "normal" time for all of p3 for the Marks hunter.


After the kill, don't forget to teabag any DPS who died!