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.

No comments:

Post a Comment