Sacréd bleu!

The comments section of last Friday’s post hosted some interesting discussions. Wrathblood pointed out that some of the avoidance gear sets were performing about as well as the Control/Haste set, and Kihra cautioned against counting out Control/Mastery entirely. There was a lengthy discussion about whether Holy Avenger or Divine Purpose was a better choice for DPS (Holy Avenger holds a steady-state lead until somewhere around 22%-25% haste rating, but in practice the threshold is much higher on an average boss thanks to tank swaps). And I posted a short derivation explaining how Sacred Shield scales with Vengeance.

Perhaps most importantly, though, Weeby noticed I was using the wrong formula for Sacred Shield! I can’t figure out exactly how that happened – most of my formulas are rigorously tested in-game, after which I use curve-fitting in MATLAB to accurately determine the formula. In some cases, this ends up being slightly different from the tooltip, and occasionally drastically different. During beta, in fact, there was a long period of time when WoG’s tooltip was off by a noticeable amount (and when the tooltip was fixed, people reading the MMO-Champion spell diff cried loudly about a “nerf” that never happened!).

I can’t find a current data set for Sacred Shield, which means the last time we empirically tested it was in beta. My best guess at this point is that the tooltip was incorrect in beta (like WoG), so I used my empirically-determined formula. And then somewhere along the way (likely before beta ended, even), the spell formula was updated to match the tooltip, thus not triggering an entry in the MMO-Champion spell diff. That would explain why we never thought to re-check it.

There’s also the distinct possibility I just goofed up, either via a copy/paste error or something else entirely. It happens. Oops?

In any event, I did some in-game testing earlier this week to confirm the new formula. Believe it or not, the old formula was actually weaker than the new formula. Yes, we were undervaluing Sacred Shield. Rather than absorbing ~40% of a boss attack per tick like it did in the earlier model, it’s actually absorbing over 50% of a boss attack. It’s even more overpowered than the last blog post suggested.

That value will get larger for weaker bosses and smaller for harder-hitting bosses thanks to Vengeance. Note that the total amount absorbed will always be larger at higher Vengeance, but it will be a smaller percentage of a boss attack due to the base absorption value from the AP on your gear. The plot below shows how this scales with Vengeance to give you a clearer idea of how that works:

Sacred Shield absorption as a function of Vengeance. As Vengeance increases, each Sacred Shield tick absorbs a smaller percentage of a boss attack, saturating somewhere above 45% at high Vengeance.

For the mathematically-inclined, the formula for the size of a Sacred Shield absorb is

${\rm SS~Absorb} = 342.5 + 0.585\times AP$

and when normalized to the size of a boss attack, it looks like this:

$\LARGE {\rm \%~Absorb} = \frac{342.5+0.585 \times (1.1 \times (AP_0+V))}{4.1667 M V} $

where $V$ is your Vengeance AP, $AP_0$ is your character sheet AP (with Kings, but without the AP raid buff), the factor of 1.1 is for the 10% AP raid buff, and $M=0.362$ is your total mitigation factor from armor, spec, and Weakened Blows (in the gear set used for the simulations).

In today’s post, I’d like to briefly address some of the points raised in the comments and present updated data using the correct formula for Sacred Shield (SS). Since we’re only concerned with SS, I’ll be skipping the data sets that don’t use it.

Gear and Simulation Details

As before, here are the gear sets. the only notable change is that I’ve added a “C/HM” gear set, which stands for Control/HasteMastery. The idea here is to see if the synergy between haste and mastery makes a gear set that splits its attention between haste and mastery preferable to one that focuses on either in isolation. I have a more detailed simulation that does this in smaller steps along the continuum, but that will have to wait for a later date.

The stats of the gear sets we’re using are listed in the table below. Each set has 65k armor, 15k strength, and 24150 rating to distribute amongst the secondary stats. This is roughly equivalent to an average equipped ilvl of 522. For more details on the choices I’ve made, you can consult the original 5.2 Smoothness Simulations post.

|    Set: |  C/Ha |  C/Ma |  C/Av | C/Bal |  C/HM |    Ha | Avoid | Av/Mas | Mas/Av |
|     Str | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 |  15000 |  15000 |
|   Parry |  1500 |  1500 |  7500 |  4125 |  1500 |  1500 | 10825 |   7717 |   4000 |
|   Dodge |  1500 |  1500 |  7500 |  4125 |  1500 |  1500 | 10825 |   7717 |   4000 |
| Mastery |  1500 | 13500 |  1500 |  4125 |  6750 |  1500 |  1500 |   7716 |  15150 |
|     Hit |  2550 |  2550 |  2550 |  2550 |  2550 |   500 |   500 |    500 |    500 |
|     Exp |  5100 |  5100 |  5100 |  5100 |  5100 |   500 |   500 |    500 |    500 |
|   Haste | 12000 |     0 |     0 |  4125 |  6750 | 18650 |     0 |      0 |      0 |

I’m using the standard Monte-Carlo code, updated with the 5.2 mechanics. Just as last time, here’s the copy/paste summary of how the simulation works:

To better understand the data below, here’s a rough overview of how it’s generated: I run a Monte-Carlo sim that simulates 10k minutes of combat (think Simcraft, but paladin-specific and more limited in scope), making all combat rolls and logging all damage events. I take the resulting string of attacks (something like “1, 0, 0.7, 1, 0, 0, …” where 0 is an avoid (no damage), 1 is a full hit, 0.7 is a block, and so on) and do some calculations on it. I calculate the average damage intake normalized to 100% possible throughput (i.e. “1, 1, 1, 1, 1, …”), and report that in the “mean” row, representing mean damage intake (lower is better, represents better TDR). “std” is just the standard deviation of that mean as averaged over 5 attacks. “S%” is SotR uptime.

The rest of the rows are smoothing data for strings of N attacks. For now, let’s just consider the first gear column (C/Ha). I take the damage event sequence and perform a moving average on it (i.e. an N-attack moving average). I then calculate how many of those N-attack averages exceed a certain threshold of maximum throughput. So for example, if we look at a 3-attack moving average, the “70%” row tells me how many of those 3-attack averages exceed 70% of the maximum throughput. Max throughput for 3 attacks is “1, 1, 1″ or 3 normalized damage, so the 70% row tells me how many exceed 2.1 damage. And so on for 80% and 90%. Note that they’re cumulative, so if 5% of attacks exceed 90% max throughput those attacks are also being counted in the 80% and 70% rows (thus, if 17% of attacks exceed 80% max throughput, the percentage between 80% and 90% is 17%-5%=12%). I should add that the repeatability on these simulations is quite good thanks to the long integration time – results usually fluctuate by less than +/- 0.1% (absolute, i.e. 5% +/- 0.1%).

I do this for a bunch of different gear sets, i.e. “C/Ha” for Control/Haste, etc. The first table lists all of the gear configurations so you get a rough idea of what they look like. They’re roughly equivalent to stats in ilvl 496 gear.

The code can be found in the matlabadin repository, as usual. The two files in particular are pally_mc.m and pally_mc_smooth.m.

SotR Spam Queue (“S”)

First, the data for the simple “S” queue. I’m going to limit the commentary on this one, since it’s the least relevant.

| Set: |   C/Ha |   C/Ma |   C/Av |  C/Bal |   C/HM |     Ha |  Avoid | Av/Mas | Mas/Av |
|   S% |  0.522 |  0.411 |  0.419 |  0.452 |  0.472 |  0.499 |  0.366 |  0.362 |  0.357 |
| mean |  0.346 |  0.335 |  0.312 |  0.328 |  0.327 |  0.349 |  0.284 |  0.307 |  0.311 |
|  std |  0.132 |  0.129 |  0.146 |  0.138 |  0.126 |  0.139 |  0.152 |  0.151 |  0.141 |
| ---- | ------ |  --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 41.366 | 43.036 | 36.658 | 41.269 | 41.141 | 41.757 | 32.354 | 36.151 | 39.462 |
|  50% | 32.233 | 25.217 | 28.012 | 31.354 | 18.081 | 32.616 | 24.155 | 21.041 | 23.516 |
|  60% |  9.434 | 13.609 | 11.528 | 11.858 | 10.959 | 10.666 | 11.094 | 13.228 | 11.384 |
|  70% |  8.817 | 11.264 | 11.136 | 10.664 |  9.843 | 10.118 | 10.809 | 12.056 | 10.585 |
|  80% |  0.089 |  1.872 |  0.319 |  0.500 |  0.494 |  0.026 |  0.219 |  1.847 |  1.229 |
|  90% |  0.089 |  1.159 |  0.319 |  0.500 |  0.318 |  0.026 |  0.219 |  0.835 |  0.745 |
| ---- | ------ |  --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 35.922 | 34.023 | 30.145 | 32.932 | 32.815 | 36.499 | 26.374 | 30.640 | 28.455 |
|  50% | 22.878 | 18.430 | 17.260 | 16.832 | 12.846 | 23.620 | 13.907 | 14.291 | 16.981 |
|  60% |  7.218 |  9.698 |  7.788 |  8.899 |  7.289 |  8.808 |  7.042 |  8.915 |  9.394 |
|  70% |  0.907 |  3.706 |  2.283 |  2.348 |  2.160 |  2.193 |  2.360 |  3.900 |  3.829 |
|  80% |  0.470 |  0.944 |  1.183 |  1.065 |  0.882 |  1.171 |  1.261 |  1.669 |  1.077 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 38.944 | 32.548 | 29.802 | 33.318 | 35.580 | 39.165 | 24.885 | 29.567 | 29.604 |
|  50% | 17.340 | 14.978 | 15.669 | 17.961 |  7.437 | 18.319 | 12.282 | 12.482 | 12.271 |
|  60% |  1.775 |  4.072 |  4.417 |  3.777 |  2.959 |  4.018 |  4.490 |  6.354 |  4.208 |
|  70% |  0.026 |  0.656 |  0.565 |  0.493 |  0.256 |  0.668 |  1.000 |  1.439 |  1.046 |
|  80% |  0.000 |  0.085 |  0.029 |  0.025 |  0.013 |  0.003 |  0.025 |  0.145 |  0.085 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 36.257 | 34.763 | 29.263 | 34.727 | 27.357 | 36.922 | 23.094 | 26.475 | 26.437 |
|  50% | 15.495 |  8.955 | 13.362 |  9.598 |  7.199 | 17.292 | 10.827 | 10.570 |  9.221 |
|  60% |  2.303 |  1.153 |  2.010 |  2.219 |  0.243 |  3.208 |  1.883 |  2.046 |  1.828 |
|  70% |  0.000 |  0.000 |  0.168 |  0.001 |  0.000 |  0.373 |  0.371 |  0.380 |  0.330 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 33.896 | 33.016 | 26.627 | 31.643 | 28.598 | 35.080 | 21.098 | 27.303 | 24.229 |
|  50% |  9.094 |  9.050 |  8.245 | 10.490 |  5.793 | 10.828 |  6.420 |  8.540 |  7.058 |
|  60% |  0.039 |  0.380 |  0.382 |  0.367 |  0.121 |  0.413 |  0.870 |  1.448 |  1.165 |
|  70% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.019 |  0.068 |  0.132 |  0.081 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.010 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 32.519 | 29.918 | 24.762 | 29.278 | 25.296 | 33.933 | 19.208 | 24.663 | 24.000 |
|  50% |  8.412 |  7.123 |  7.436 |  6.395 |  4.647 | 10.383 |  5.726 |  7.341 |  5.930 |
|  60% |  0.379 |  0.267 |  0.692 |  0.500 |  0.224 |  1.018 |  0.673 |  1.053 |  0.380 |
|  70% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.012 |  0.028 |  0.024 |  0.020 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |

This data looks more or less the same as last time. Control/Haste commands a decent lead for larger spikes, but it lags a little at the lowest spike levels. There are a few subcategories where Control/Mastery ekes out a decent lead (especially at the 50% threshold), but overall it’s just not a compelling alternative. Control/Avoidance and Control/Balance both tend to lag a little bit, though sometimes show an advantage in the 40%-50% categories. That said, the 40% category is dangling dangerously close to “throughput damage” levels, so it’s not clear that it (or for that matter the 50% category) has a lot of relevance. Mel hesitates to even call these events “spikes.” It’s really the upper end of the distribution we care most about, and that is almost always dominated by haste.

The avoidance sets are actually fairly competitive with the “lazy” queue, because SotR isn’t being timed intelligently, making it a more stochastic process. And avoidance wrote the book on stochastic processes, so it gets a bit of a leg up here. We’ll see that lead erode in the shifting queues. But for the tank that’s got SotR macro-ed to CS, they’re not bad options.

The new Control/HasteMastery set is sort of lackluster for short strings of attacks, but competes rather well in the 4-attack and higher categories. We’ll talk more about that after we see the shifting queue data. For now, we’ll just say that for the novice tank, a mix of haste and mastery seems to give you a reasonable middle ground between the skill-dependent C/Ha set and the less skill-dependent C/Ma set, and in some cases improvements over both.

1-Attack Shifting Queue (“SH1″)

Next, let’s look at the SH1 data:

| Set: |   C/Ha |   C/Ma |   C/Av |  C/Bal |   C/HM |     Ha |  Avoid | Av/Mas | Mas/Av |
|   S% |  0.523 |  0.410 |  0.419 |  0.452 |  0.471 |  0.499 |  0.366 |  0.363 |  0.357 |
| mean |  0.345 |  0.337 |  0.312 |  0.328 |  0.330 |  0.349 |  0.284 |  0.307 |  0.312 |
|  std |  0.126 |  0.121 |  0.136 |  0.128 |  0.118 |  0.129 |  0.140 |  0.139 |  0.129 |
| ---- | ------ |  --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 41.738 | 49.026 | 37.940 | 43.039 | 42.781 | 42.377 | 33.252 | 38.972 | 43.496 |
|  50% | 31.526 | 24.384 | 27.829 | 31.248 | 17.568 | 31.818 | 23.667 | 19.525 | 21.765 |
|  60% |  7.751 | 10.142 |  8.998 |  9.376 |  9.169 |  8.591 |  8.746 | 11.277 |  7.569 |
|  70% |  7.688 |  7.042 |  8.701 |  7.659 |  8.365 |  8.570 |  8.502 |  9.418 |  7.150 |
|  80% |  0.001 |  0.404 |  0.004 |  0.006 |  0.044 |  0.000 |  0.007 |  0.500 |  0.305 |
|  90% |  0.000 |  0.060 |  0.004 |  0.006 |  0.000 |  0.000 |  0.007 |  0.075 |  0.062 |
| ---- | ------ |  --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 35.780 | 31.965 | 29.641 | 33.155 | 34.977 | 37.087 | 25.532 | 31.383 | 23.136 |
|  50% | 21.975 | 11.001 | 15.303 | 13.320 |  8.694 | 23.214 | 12.105 |  8.026 | 10.698 |
|  60% |  4.793 |  5.884 |  3.787 |  4.630 |  3.644 |  5.727 |  3.479 |  4.535 |  5.831 |
|  70% |  0.264 |  2.927 |  1.021 |  1.199 |  1.092 |  0.761 |  1.174 |  2.392 |  2.771 |
|  80% |  0.003 |  0.525 |  0.283 |  0.251 |  0.142 |  0.185 |  0.439 |  0.667 |  0.553 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 38.255 | 31.666 | 29.111 | 31.769 | 33.885 | 39.435 | 23.317 | 27.038 | 28.159 |
|  50% | 14.918 | 14.325 | 13.556 | 15.606 |  5.082 | 15.617 | 10.277 | 10.315 | 11.446 |
|  60% |  0.187 |  2.530 |  1.719 |  1.176 |  1.392 |  0.900 |  2.011 |  3.825 |  2.329 |
|  70% |  0.002 |  0.117 |  0.152 |  0.135 |  0.092 |  0.158 |  0.320 |  0.432 |  0.265 |
|  80% |  0.000 |  0.005 |  0.000 |  0.000 |  0.000 |  0.000 |  0.001 |  0.012 |  0.007 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 34.840 | 34.111 | 27.890 | 32.981 | 25.228 | 36.018 | 21.321 | 24.834 | 26.277 |
|  50% | 12.891 |  7.044 | 10.236 |  7.902 |  6.078 | 14.324 |  8.095 |  8.245 |  6.842 |
|  60% |  2.020 |  0.962 |  1.463 |  1.738 |  0.288 |  2.421 |  1.161 |  0.921 |  1.204 |
|  70% |  0.002 |  0.137 |  0.076 |  0.033 |  0.023 |  0.089 |  0.150 |  0.201 |  0.213 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 32.965 | 29.506 | 25.014 | 29.625 | 26.553 | 34.328 | 19.117 | 25.345 | 21.657 |
|  50% |  7.612 |  7.178 |  6.456 |  7.908 |  4.876 |  8.790 |  4.860 |  6.035 |  5.817 |
|  60% |  0.004 |  0.619 |  0.271 |  0.212 |  0.104 |  0.112 |  0.429 |  0.915 |  0.783 |
|  70% |  0.000 |  0.002 |  0.002 |  0.001 |  0.001 |  0.006 |  0.023 |  0.038 |  0.013 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.001 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 31.488 | 28.400 | 23.381 | 27.868 | 25.298 | 33.273 | 17.354 | 22.894 | 21.964 |
|  50% |  7.497 |  4.988 |  5.507 |  3.997 |  3.131 |  8.766 |  4.176 |  5.414 |  4.364 |
|  60% |  0.084 |  0.094 |  0.338 |  0.159 |  0.084 |  0.395 |  0.365 |  0.464 |  0.192 |
|  70% |  0.000 |  0.003 |  0.000 |  0.001 |  0.000 |  0.004 |  0.012 |  0.015 |  0.013 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |

C/Ha still does very well at suppressing the highest spikes, but trails C/Ma for long sequences of attacks and for smaller (40%-50%) spikes. C/Av and C/Bal both give pretty good showings as well, occasionally beating out both of the frontrunners. Even the avoidance sets are pretty good, to be honest. Sacred Shield seems to be the great equalizer in that regard – the synergy between avoidance and absorbs gives enough of a boost to the avoidance gear sets to make them competitive.

Avoidance sets tend to excel for long strings of attacks (again, owing to their stochastic nature) but trail in the short-attack categories. For many heroic bosses, this is a liability (example: Jin’rokh hits for around 330k on 25H without SotR active, making 3- to 4- attack strings worth considering).

It’s interesting to note that the newcomer, C/HM, often beats both the C/Ha and C/Ma sets. C/HM seems to amplify many of the benefits of the C/Ma gear set. It suppresses 40%-50% spikes more effectively and significantly improves spike suppression in the higher-threshold categories. While it generally doesn’t beat C/Ha in those higher categories, it doesn’t lose by that much either, and we’re comparing numbers that are already pretty small. If you have less than a 0.1% chance for an event to occur, it may not matter very much whether it’s 0.05% or 0.02%.

It’s also worth noting that it handily beats out all of the avoidance sets. While the Avoidance sets may show situational benefits over C/Ha or C/Ma alone, they never beat C/HM by a statistically significant margin.

With that in mind, it’s arguable that the C/HM gear set is the most balanced set to choose for overall survivability.

2-Attack Shifting Queue (“SH2″)

And finally, here’s the data for the SH2 queue:

| Set: |   C/Ha |   C/Ma |   C/Av |  C/Bal |   C/HM |     Ha |  Avoid | Av/Mas | Mas/Av |
|   S% |  0.523 |  0.410 |  0.420 |  0.452 |  0.471 |  0.498 |  0.367 |  0.363 |  0.357 |
| mean |  0.345 |  0.336 |  0.312 |  0.328 |  0.328 |  0.349 |  0.285 |  0.305 |  0.311 |
|  std |  0.132 |  0.128 |  0.146 |  0.138 |  0.126 |  0.139 |  0.152 |  0.150 |  0.139 |
| ---- | ------ |  --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 41.276 | 44.008 | 36.736 | 41.243 | 41.284 | 41.878 | 32.485 | 36.302 | 40.097 |
|  50% | 32.197 | 25.305 | 28.077 | 31.352 | 18.239 | 32.639 | 24.245 | 20.839 | 23.389 |
|  60% |  9.422 | 13.195 | 11.552 | 11.818 | 11.106 | 10.779 | 11.176 | 13.012 | 10.946 |
|  70% |  8.795 | 10.712 | 11.168 | 10.620 | 10.030 | 10.223 | 10.874 | 11.740 | 10.163 |
|  80% |  0.093 |  1.708 |  0.324 |  0.483 |  0.487 |  0.031 |  0.229 |  1.665 |  1.144 |
|  90% |  0.093 |  1.081 |  0.324 |  0.483 |  0.309 |  0.031 |  0.229 |  0.749 |  0.694 |
| ---- | ------ |  --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 35.992 | 34.321 | 30.324 | 32.950 | 33.285 | 36.708 | 26.564 | 30.852 | 28.321 |
|  50% | 22.890 | 18.336 | 17.386 | 16.981 | 13.163 | 23.848 | 14.039 | 14.034 | 16.854 |
|  60% |  7.212 |  9.297 |  7.907 |  8.964 |  7.378 |  8.839 |  7.128 |  8.207 |  8.951 |
|  70% |  0.883 |  3.096 |  2.184 |  2.186 |  1.970 |  2.100 |  2.283 |  2.997 |  3.307 |
|  80% |  0.453 |  0.940 |  1.200 |  1.083 |  0.831 |  1.122 |  1.272 |  1.294 |  1.001 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 38.882 | 33.666 | 30.039 | 33.515 | 36.163 | 39.326 | 25.134 | 30.070 | 30.471 |
|  50% | 17.167 | 14.259 | 15.634 | 17.740 |  7.362 | 18.552 | 12.218 | 11.486 | 11.708 |
|  60% |  1.726 |  3.666 |  4.570 |  3.766 |  2.851 |  3.873 |  4.574 |  5.472 |  3.838 |
|  70% |  0.013 |  0.409 |  0.527 |  0.408 |  0.228 |  0.616 |  0.979 |  1.043 |  0.762 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.003 |  0.001 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 36.049 | 34.672 | 29.295 | 34.609 | 27.601 | 37.116 | 23.108 | 25.838 | 26.217 |
|  50% | 15.356 |  8.622 | 13.507 |  9.452 |  7.314 | 17.272 | 10.928 |  9.812 |  8.924 |
|  60% |  2.227 |  1.034 |  2.024 |  2.229 |  0.236 |  3.210 |  1.843 |  1.809 |  1.590 |
|  70% |  0.001 |  0.056 |  0.196 |  0.004 |  0.001 |  0.340 |  0.373 |  0.328 |  0.306 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 33.788 | 32.789 | 26.668 | 31.640 | 28.974 | 35.172 | 21.238 | 26.753 | 23.933 |
|  50% |  8.891 |  8.671 |  8.309 | 10.287 |  6.049 | 10.899 |  6.364 |  7.845 |  6.687 |
|  60% |  0.033 |  0.490 |  0.388 |  0.358 |  0.118 |  0.394 |  0.834 |  1.344 |  1.054 |
|  70% |  0.000 |  0.003 |  0.001 |  0.002 |  0.000 |  0.022 |  0.066 |  0.101 |  0.040 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
| ---- | ------ |  --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 32.257 | 30.012 | 24.923 | 29.168 | 25.671 | 33.953 | 19.320 | 24.067 | 23.649 |
|  50% |  8.274 |  6.811 |  7.591 |  6.405 |  4.959 | 10.420 |  5.678 |  6.757 |  5.581 |
|  60% |  0.393 |  0.260 |  0.722 |  0.496 |  0.256 |  0.978 |  0.657 |  0.940 |  0.341 |
|  70% |  0.000 |  0.000 |  0.001 |  0.000 |  0.000 |  0.013 |  0.027 |  0.029 |  0.019 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |

The data here isn’t much different than the SH1 queue. We still see many of the same patterns, including the strength of C/HM overall. C/Ha performs a little less effectively with SH2 than with SH1, while C/Ma performs a little better, just as before. I’m not sure which is the more accurate model for a player, to be honest – do you react after one big hit, or does it take two of them before you notice the dip in your health bar?

Avoidance

First, let’s talk about avoidance. I think Wrathblood was right, in that I wasn’t giving it a fair shake. It does generally compete fairly effectively with haste, and shows a commanding lead in the long-attack and low-threshold categories. That said, I also don’t think it’s fair to toss out the high-spike categories as irrelevant. Certainly the difference between values that are less than 0.1% are of questionable relevance, but avoidance loses much more ground than that in many cases. We’re often comparing values like 0.001% to 0.3%, or 0.01% to 1%, which is well above the level of statistical relevance. One essentially eliminates that category, while the other still gives you a fair probability of seeing that sort of string in a given raid night.

Overall, I don’t think any of the Avoidance sets are that attractive when compared to the control sets. They tend to lead in categories that fall into the realm of “throughput damage” – TDR, long strings of attacks, and weaker spikes. If throughput is a problem for a given raid group, that may be a situation where switching to an avoidance set is warranted, but I don’t think that’s an accurate representation of most heroic raid groups. And given that throughput is much lower in normal-modes, I’m not sure it’s that relevant there either.

It may also be worth mentioning that one of the traditional draws of the avoidance paradigm was its passiveness. The thought was that a beginner raider might have an easier time with an avoidance set because it’s less dependent on timing their Active Mitigation. But much of the power that the avoidance gear sets gained since 5.2 is caused by Grand Crusader. So while a sloppy player may still do better with an avoidance set than with a haste or mastery gear set, the lead may not be as large as it was previously.

Don’t Count Mastery Out Yet!

Khira’s comment about the Control/Mastery gear set is worth considering as well. For a large and predictable boss attack C/Ma gives you the most on-demand mitigation to throw at that effect. And there are a lot of bosses that have this sort of effect in Tier 15. One could reasonably assume that by blunting that large special attack, you get the smoothest damage profile. Right?

Well, not necessarily. Certainly it gives you the lowest chance of dying from that special attack. But it isn’t necessarily the best overall. This is a case of local and global minimization problems – blunting the big attack may be a local minimum, but not the global minimum. The boss attacks that bookend the special attack matter, and those can change the outcome. It’s easy to imagine that getting 60% mitigation on the boss special and one melee attack (immediately before or after) from a buffed C/Ma SotR may not be as effective as covering the special and 2-3 attacks before and/or after with a 45% SotR from a haste-stacked set. It’s harder to do that amount of HP pooling without haste (or a cooldown like Holy Avenger).

Also note that there are ways to artificially improve mastery on-demand, mainly trinkets. Both of my trinkets have an on-use mastery effect right now, and both are on a one-minute cooldown. That means that I have a lot of on-demand mastery at my disposal already, so I can have large coverage uptime via haste and large mitigation from SotR at the same time, in the same gear set. There aren’t any tanking trinkets with on-use haste that I’m aware of – most of them seem to be on-equip proc effects (this is also another point in Holy Avenger’s favor, by the way – SotR isn’t recalculated on cast, so if you use a mastery trinket, you get to keep the bonus mitigation for as long as you can keep SotR refreshed, often up to 30 seconds).

There’s also the concept of “minimally sufficient cooldowns” to consider. Mel talked about this briefly a long long time ago, and I would love nothing more than to convince him to come out of the woodwork and talk about it again sometime. But the short version is that extra mitigation above what you need to survive the attack, while helpful, isn’t always necessary. This is the same logic that goes into his rationalization for haste over mastery: once SotR is large enough to make a dangerous attack less dangerous, making that SotR larger is worth less than simply getting more of them to spread around. SotR’s base mitigation is pretty high already, so it’s not clear that buffing it from 45% to 60% is always going to be a net gain. Sometimes it will be, heroic Sha of Fear being one particular example that stands out. But I think it will always come down to the details of a specific fight, namely whether a 45% SotR is a “sufficient” cooldown to survive the burst or not.

Conclusions

The real surprise in this data was the performance of the C/HM set. We’d expect that such a set would lie on a rough linear interpolation between the C/Ha and C/Ma data. But the strong synergy between haste and mastery throws a wrench into the works, creating a set that can out-perform both of those sets in many cases. It isn’t always as good as C/Ha in suppressing the largest spikes, but it’s rarely far behind, and to be fair, it wins in that category almost as much as it loses. The real benefit comes from its strong suppression of mid-range spikes, doing a better job at suppressing spikes that fall just below the peak of the distribution. And for longer strings of attacks, it has a very strong effect on the low-end spikes in the 40%-50% range.

The appealing part of this is that you’re getting broad-spectrum suppression without giving up very much at the high end. Avoidance performs much the same way, but does it less efficiently, permitting a higher number of large spikes. C/HM gives you the same effect at a fraction of the cost. And to boot, it should give you more DPS thanks to the haste stacking going on.

What does this mean for our gearing choices? Tanks at the bleeding edge may continue to go haste. Both for the DPS boost on certain fights and because it still does the best job of suppressing the highest spikes. They’re making a careful and calculated survivability-for-DPS trade-off by doing that. They’re mentally categorizing 40% and 50% “spikes” as throughput that their healers can keep up with, and for a guild clearing heroics that’s a pretty safe bet. So they focus their attention on eliminating the spikes that will cause their healers to panic, and get a nice DPS boost to help beat those enrage timers.

For players that are not on the bleeding edge – for example, players still progressing towards a normal-mode Lei Shen kill – the situation is more varied. You’re presented with a lot of gearing options, and to be honest, none of them are terrible. You can make it work with an avoidance gear set, even if it isn’t really optimal. I’d argue that the only real mistake you can make is to not take Sacred Shield. Or gem spirit, that would be bad too.

But there does seem to be a noticeable advantage to focusing on haste and mastery. The C/Av, C/Bal, and C/HM data sets show that while having some avoidance isn’t going to kill you, it’s also less effective than channeling that itemization into haste and mastery. So unfortunately, I think we’re back to the paradigm of marginalizing avoidance and trying to grab as much hit/exp/haste/mastery gear as possible.

Of course, if an item is a big upgrade, that’s a different story – the raw survivability gained by jumping 20 ilvls is going to trump stat allocation most of the time. A 522 dodge/mastery item will almost always be preferable to a 496 haste/mastery item, and potentially even a 509 haste/mastery item. But I’d argue that, for example, a thunderforged item with worse itemization may not always beat a non-thunderforged item with better itemization. This is particularly relevant to our choices of chest armor, since the T15 Retribution chest is perfectly-itemized and none of the off-set tanking options are. And dodge/parry items are probably still at the bottom of the pile, but that’s not news.

Coincidentally, the stat weights I provided AskMrRobot are already well-suited for a haste/mastery paradigm. For example, the Control/Haste preset gives haste a value of 1.0 and mastery a value of 0.9, while dodge and parry drop to 0.5 each. It looks like they’ve tweaked the mastery value down to 0.8 (and similarly for haste in the Control/Mastery preset), but that still should promote a decent balance of haste and mastery. Based on the data in this blog post, I think you could argue that mastery could be bumped back up to 0.9.

You could ask yourself whether there’s an ideal balance of haste and mastery to be had. In the C/HM set, we split the itemization equally between the two stats. In a future blog post, I’ll show data for a larger continuum of states between full haste and full mastery so we can see how the results change as we go from one extreme to the other.

Posted in Tanking, Theck's Pounding Headaches, Theorycrafting | Tagged , , , , , , , , , , , , , | 33 Comments

Is Nothing Sacred?

I’ve been hinting all week that there was some big news coming up regarding our gearing choices.  If you’ve followed the last two rounds of smoothness simulations, it looks an awful lot like Control/Mastery is the solid winner.  To put some numbers to that thought, let’s look at a side-by-side comparison of the queues:

         |       Control/Mastery       |        Control/Haste
| Queue: |       S |     SH1 |     SH2 |       S |     SH1 |     SH2 |
|     S% |  0.4108 |  0.4102 |  0.4105 |  0.5225 |  0.5222 |  0.5225 |
|   mean |  0.5412 |  0.5416 |  0.5422 |  0.6003 |  0.6013 |  0.6005 |
|    std |  0.1451 |  0.1328 |  0.1252 |  0.1481 |  0.1344 |  0.1425 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 42.2155 | 46.5763 | 42.8827 | 46.3508 | 47.4428 | 45.8948 |
|    70% | 21.9353 | 17.4630 | 19.5302 | 40.6535 | 43.3518 | 40.3810 |
|    80% | 21.9353 | 17.4630 | 19.5302 | 14.5957 | 10.0767 | 14.1655 |
|    90% | 10.2748 |  5.5675 |  8.4910 |  9.7813 |  4.4400 |  9.4358 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.6512 | 27.6415 | 33.6860 | 53.6503 | 53.9720 | 54.0338 |
|    70% | 18.2035 | 13.2302 | 13.8877 | 36.9320 | 36.7185 | 36.8463 |
|    80% |  7.4228 |  4.3803 |  1.7488 | 15.0675 |  7.4773 | 14.6283 |
|    90% |  2.7748 |  1.2550 |  0.6620 |  1.2695 |  0.4752 |  0.0010 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 33.8680 | 31.6200 | 31.6953 | 53.7005 | 52.9335 | 55.2110 |
|    70% | 12.4778 |  8.6483 |  4.0650 | 32.1685 | 26.9200 | 32.0120 |
|    80% |  5.2785 |  3.4120 |  1.3058 |  3.3473 |  2.0720 |  0.0050 |
|    90% |  1.2040 |  0.7582 |  0.2240 |  0.0000 |  0.0697 |  0.0000 | 
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 39.2205 | 36.6190 | 35.4823 | 55.3028 | 55.8280 | 56.5597 |
|    70% | 10.5500 |  8.6173 |  6.9608 | 28.5143 | 25.6930 | 26.8380 |
|    80% |  1.4735 |  1.3350 |  0.3348 |  8.8370 |  5.0570 |  6.9102 |
|    90% |  0.0000 |  0.0425 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 35.7910 | 32.5177 | 32.3367 | 54.0813 | 56.5700 | 54.7773 |
|    70% | 11.0220 |  8.3745 |  7.3345 | 24.1095 | 23.5930 | 22.9925 |
|    80% |  0.0000 |  0.1320 |  0.0105 |  4.2360 |  2.4580 |  3.3653 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.2383 | 28.7430 | 29.3895 | 52.9763 | 54.9205 | 53.4872 |
|    70% |  9.6973 |  7.1182 |  4.8477 | 22.5190 | 20.2357 | 21.5467 |
|    80% |  0.8415 |  0.5030 |  0.2890 |  3.7915 |  2.0220 |  2.8915 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |

Control/Haste wins the race to eliminating 90% spikes, and generally dominates that category.  But that’s mostly relevant for 2- to 4-attack spikes; beyond that point Control/Mastery catches up and both gear sets eliminate the category.  And C/Ha is miserably behind C/Ma in 70% and 80% spikes, and takes 10% more damage.  It’s such a significant difference that you can even see it in the damage distribution plots.  The first one below is for C/Ma with an SH2 rotation and a 5-attack moving average, the second is for C/Ha with SH1:

C/Ma SH2

Control/Mastery gear set, SH2 rotation.

C/Ha SH1

Control/Haste gear set, SH1 rotation.

Side by side like this, you can definitely see the difference.  C/Ha permits far more events above the 80% threshold, and has a larger skew towards the higher damage ranges.  C/Ma has much less skew, a lower mean, and chops off the high events much more effectively. Based just on the performance of the shifting queues, it’s not just the winner – C/Ma has taken C/Ha out back, beat it up a little, and kicked it while it’s down.

Talent Show

However, haste has one more trick up it’s sleeve.  When I wrote these simulations initially, I intentionally avoided adding any talent-based features.  The concept of talents was that they are supposed to be modular, and thus I couldn’t count on any given paladin taking any given talent.  This is also good for me, because it limits the number of configurations I needed to worry about – having to simulate different numbers for Execution Sentence healing vs. Light’s Hammer healing vs. Holy Prism healing, for example, would be a pain in the ass.

The L75 talents are a bit more relevant, as you could imagine Divine Purpose giving very different results than Holy Avenger.  I hope to get around to adding those talents some day so we can perform a realistic comparison of them, but I don’t think they will affect a player’s choice of gear very much.  Both should emphasize hit and expertise, both should favor haste and mastery, and your choice of haste vs. mastery is likely based more around play style than the small variations in smoothness each L75 talent will cause.

But there’s one tier of talents that hasn’t really panned out for protection.  Our L45 talent choices are heavily skewed – Selfless Healer and Eternal Flame simply cannot keep up with the sheer mitigative power of Sacred Shield.  I do know paladins that take the first two talents, but it’s a small minority.  And frankly, the rationalizations they give for making those choices don’t line up with my understanding of how tanks die or what prevents those deaths.

Since the vast majority of paladins are taking Sacred Shield, it seems reasonable to assume that it will be present, which we haven’t done in any of the simulations up to this point.  And that’s a big deal, because Sacred Shield scales. Oh does it scale.  It scales a lot, and not uniformly either.  Stacking mastery to the sky has almost no effect on Sacred Shield, and strictly zero effect if we’re only considering the spells characteristics.  But it scales very well (linearly, in fact) with haste, because we get more absorption bubbles and we get them faster.  It also scales with avoidance, because avoided attacks extend the average lifetime of the absorption bubbles, making each more effective.  We saw a similar effect with warriors and Shield Barrier usage, because it’s the same principle at work.

And this matters, because the haste variations between gears sets are huge.  The Control/Mastery set has 0% melee haste and the baseline 15.5% spell haste we get from Seal of Insight and the raid-wide spell haste buff.  The Control/Haste set has 28.24% melee haste and a whopping 48.11% spell haste.  In the C/Ma gear set we’re getting a Sacred Shield absorb bubble every 5.19 seconds.  The C/Ha gear set knocks that down to 4.05 seconds.

And these Sacred Shield absorbs aren’t anything to sneeze at.  To give you some idea of the magnitudes we’re talking about, the raw boss DPS I’m using is 310k, or 465k swings every 1.5 seconds.  Armor and other passive mitigation effects knock that down to a hair over 168k damage per swing as registered in the combat log.  In the steady state, that gives us 111.6k Vengeance attack power, or a total of about 156k AP.  With that much AP, each Sacred Shield bubble ends up absorbing about 67k, or ~40% of a boss swing.  That’s better than a block, and almost like getting a free SotR applied to one boss swing.  And the haste gear set lets you do that 20% more often.

So if we’re going to make a truly fair comparison between C/Ha and C/Ma, or any of the other gear sets for that matter, we should really be including Sacred Shield in the analysis.  At the same time that I added the shifting queues to the code, I finally implemented Sacred Shield as well.  And the results were fairly surprising.  Let’s take a look.

Gear and Simulation Details

First, the obligatory background information.  If you’ve been keeping up with these smoothness simulations, you can probably skip this section.  I forgot to include it earlier this week and got some questions about it, so I figured I should just keep including it.

The stats of the gear sets we’re using are listed in the table below.  Each set has 65k armor, 15k strength, and 24150 rating to distribute amongst the secondary stats.  This is roughly equivalent to an average equipped ilvl of 522.  For more details on the choices I’ve made, you can consult the original 5.2 Smoothness Simulations post.

|    Set: |  C/Ha |  C/Ma |  C/Av | C/Bal |    Ha | Avoid | Av/Mas | Mas/Av |
|     Str | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 |  15000 |  15000 |
|   Parry |  1500 |  1500 |  7500 |  4125 |  1500 | 10825 |   7717 |   4000 |
|   Dodge |  1500 |  1500 |  7500 |  4125 |  1500 | 10825 |   7717 |   4000 |
| Mastery |  1500 | 13500 |  1500 |  4125 |  1500 |  1500 |   7716 |  15150 |
|     Hit |  2550 |  2550 |  2550 |  2550 |   500 |   500 |    500 |    500 |
|     Exp |  5100 |  5100 |  5100 |  5100 |   500 |   500 |    500 |    500 |
|   Haste | 12000 |     0 |     0 |  4125 | 18650 |     0 |      0 |      0 |

I’m using the standard Monte-Carlo code, updated with the 5.2 mechanics.  Just as last time, here’s the copy/paste summary of how the simulation works:

To better understand the data below, here’s a rough overview of how it’s generated: I run a Monte-Carlo sim that simulates 10k minutes of combat (think Simcraft, but paladin-specific and more limited in scope), making all combat rolls and logging all damage events.  I take the resulting string of attacks (something like “1, 0, 0.7, 1, 0, 0, …” where 0 is an avoid (no damage), 1 is a full hit, 0.7 is a block, and so on) and do some calculations on it.  I calculate the average damage intake normalized to 100% possible throughput (i.e. “1, 1, 1, 1, 1, …”), and report that in the “mean” row, representing mean damage intake (lower is better, represents better TDR).  “std” is just the standard deviation of that mean as averaged over 5 attacks.  “S%” is SotR uptime.

The rest of the rows are smoothing data for strings of N attacks.  For now, let’s just consider the first gear column (C/Ha).  I take the damage event sequence and perform a moving average on it (i.e. an N-attack moving average).  I then calculate how many of those N-attack averages exceed a certain threshold of maximum throughput.  So for example, if we look at a 3-attack moving average, the “70%” row tells me how many of those 3-attack averages exceed 70% of the maximum throughput.  Max throughput for 3 attacks is “1, 1, 1″ or 3 normalized damage, so the 70% row tells me how many exceed 2.1 damage.  And so on for 80% and 90%.  Note that they’re cumulative, so if 5% of attacks exceed 90% max throughput those attacks are also being counted in the 80% and 70% rows (thus, if 17% of attacks exceed 80% max throughput, the percentage between 80% and 90% is 17%-5%=12%).  I should add that the repeatability on these simulations is quite good thanks to the long integration time – results usually fluctuate by less than +/- 0.1% (absolute, i.e. 5% +/- 0.1%).

I do this for a bunch of different gear sets, i.e. “C/Ha” for Control/Haste, etc.  The first table lists all of the gear configurations so you get a rough idea of what they look like.  They’re roughly equivalent to stats in ilvl 496 gear.

The code can be found in the matlabadin repository, as usual.  The two files in particular are pally_mc.m and pally_mc_smooth.m.

Results – Simple Shield of the Righteous Spam

First, let’s look at the data for the simple “S” queue and with Sacred Shield disabled.   This won’t include any fancy shifting tricks, so it’s a better estimate for a novice raider who’s still getting comfortable tanking and hasn’t mastered their active mitigation yet.  This isn’t new data – you’ve seen this before, but we need it to establish the baseline so that we can tell what sort of difference Sacred Shield makes.

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5224 |  0.4106 |  0.4191 |  0.4528 |  0.4990 |  0.3664 |  0.3632 |  0.3577 |
| mean |  0.6013 |  0.5410 |  0.5333 |  0.5559 |  0.6082 |  0.4946 |  0.5036 |  0.5158 |
|  std |  0.1478 |  0.1453 |  0.1759 |  0.1611 |  0.1523 |  0.1879 |  0.1771 |  0.1650 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 46.4365 | 42.2245 | 36.0532 | 42.0223 | 46.8495 | 30.6360 | 32.6615 | 38.9607 |
|  70% | 40.7703 | 21.9045 | 32.3510 | 32.0562 | 41.5132 | 27.8290 | 27.5790 | 22.6745 |
|  80% | 14.6537 | 21.9045 | 16.8478 | 17.5670 | 17.2325 | 16.7553 | 19.2880 | 22.6745 |
|  90% |  9.8918 | 10.2063 | 11.3503 | 10.7805 | 11.6783 | 11.2970 | 10.6098 | 10.0570 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 53.8772 | 32.5935 | 39.5635 | 45.3188 | 54.4480 | 34.0340 | 35.6205 | 31.5645 |
|  70% | 37.0875 | 18.1815 | 24.6943 | 28.7108 | 37.0938 | 18.9820 | 17.2312 | 17.7622 |
|  80% | 15.1958 |  7.4453 | 13.2320 | 12.3843 | 16.6545 | 11.3433 | 11.0848 |  8.8108 |
|  90% |  1.2962 |  2.7432 |  3.2145 |  2.6515 |  3.1935 |  3.6222 |  3.2912 |  3.0520 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 53.9435 | 33.9070 | 39.4125 | 42.8023 | 54.8250 | 32.6215 | 33.1535 | 30.3133 |
|  70% | 32.4230 | 12.4927 | 21.3595 | 25.8540 | 32.6262 | 17.0912 | 17.2385 | 13.6712 |
|  80% |  3.3830 |  5.2843 |  6.2967 |  6.5102 |  6.9973 |  5.6180 |  5.2748 |  6.7035 |
|  90% |  0.0000 |  1.2263 |  0.9175 |  0.6537 |  1.4930 |  1.9408 |  2.3090 |  2.7103 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 55.5823 | 39.0590 | 40.1595 | 42.7240 | 56.8680 | 33.0050 | 30.1425 | 34.5108 |
|  70% | 28.7618 | 10.5665 | 19.3762 | 22.4620 | 30.4220 | 15.4128 | 13.3293 | 11.5990 |
|  80% |  8.9097 |  1.4918 |  7.0112 |  5.3835 | 10.8432 |  4.9352 |  2.7422 |  3.4403 |
|  90% |  0.0000 |  0.0000 |  0.5200 |  0.3295 |  1.0175 |  1.0540 |  0.6695 |  0.7688 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 54.3558 | 35.7295 | 34.1108 | 41.2287 | 55.5080 | 25.9360 | 28.3017 | 31.3457 |
|  70% | 24.3050 | 11.0603 | 13.4900 | 16.6937 | 26.1385 | 10.4652 | 10.5652 | 11.1263 |
|  80% |  4.2673 |  0.0000 |  4.3717 |  4.8828 |  6.8168 |  3.4403 |  2.7655 |  1.4698 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.2012 |  0.3240 |  0.2855 |  0.2027 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 53.2705 | 32.1395 | 32.5230 | 38.7373 | 54.7385 | 24.7587 | 25.7575 | 28.3533 |
|  70% | 22.7233 |  9.7105 | 12.6490 | 15.3603 | 24.6157 |  9.4672 |  9.3260 |  9.6970 |
|  80% |  3.8538 |  0.7848 |  3.0023 |  2.9965 |  5.5295 |  2.0965 |  1.9265 |  1.4485 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0445 |  0.1020 |  0.1087 |  0.1403 |

As we saw before, Control/Mastery has a pretty strong advantage.  Control/Haste makes a good showing in certain categories, but lags significantly in most of them.

However, if we turn Sacred Shield on, we find get very different results:

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5229 |  0.4106 |  0.4195 |  0.4520 |  0.4980 |  0.3667 |  0.3621 |  0.3575 |
| mean |  0.4111 |  0.3898 |  0.3663 |  0.3893 |  0.4175 |  0.3378 |  0.3448 |  0.3644 |
|  std |  0.1362 |  0.1357 |  0.1521 |  0.1440 |  0.1424 |  0.1597 |  0.1553 |  0.1495 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 47.8083 | 48.5945 | 39.4050 | 45.5303 | 48.5420 | 34.5910 | 36.9545 | 45.0358 |
|  50% | 38.6730 | 29.1845 | 31.8520 | 32.9937 | 39.4498 | 27.3310 | 28.9110 | 28.6592 |
|  60% | 14.2155 | 25.0162 | 16.4483 | 18.5405 | 16.8133 | 16.3825 | 19.6868 | 24.3062 |
|  70% |  9.0985 | 12.2625 | 10.7745 | 11.6047 | 10.6237 | 10.6597 | 10.8950 | 11.3018 |
|  80% |  9.0983 | 11.1268 | 10.7743 | 10.6713 | 10.6235 | 10.6595 | 10.2533 |  9.9063 |
|  90% |  0.0005 |  1.8365 |  0.0005 |  0.5215 |  0.0003 |  0.0003 |  0.3465 |  1.2070 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 53.2233 | 47.9372 | 41.6563 | 46.2660 | 54.7275 | 37.3810 | 38.3425 | 44.8230 |
|  50% | 33.1910 | 29.1695 | 28.1168 | 31.0420 | 34.3940 | 25.1808 | 25.1827 | 27.6882 |
|  60% | 15.8120 | 15.3685 | 13.5373 | 12.3215 | 17.3197 | 11.6468 | 10.7345 | 14.6328 |
|  70% |  6.0195 |  6.2542 |  6.4393 |  7.1407 |  7.7778 |  6.0847 |  5.1463 |  6.4992 |
|  80% |  0.5590 |  2.0340 |  1.2630 |  1.3333 |  1.3225 |  1.3603 |  1.4642 |  1.8325 |
|  90% |  0.0003 |  0.0003 |  0.0003 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 55.6395 | 50.5580 | 45.6000 | 50.7708 | 56.6330 | 39.9558 | 41.5223 | 44.1125 |
|  50% | 32.0505 | 22.0170 | 23.8438 | 29.0312 | 32.5883 | 19.4885 | 20.2703 | 19.7258 |
|  60% |  3.3115 |  7.8463 |  6.6013 |  7.8057 |  7.0792 |  6.3295 |  6.5520 |  8.6195 |
|  70% |  1.5733 |  2.3697 |  3.3905 |  1.0685 |  3.8997 |  3.5480 |  2.4675 |  3.3725 |
|  80% |  0.0000 |  0.5643 |  0.4318 |  0.3043 |  0.6975 |  0.9630 |  0.8832 |  0.8835 |
|  90% |  0.0000 |  0.0860 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0003 |  0.0000 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 56.0972 | 47.6848 | 43.1835 | 49.6810 | 57.1600 | 35.3995 | 37.6767 | 39.3170 |
|  50% | 28.0432 | 23.6345 | 20.8675 | 23.0615 | 30.4812 | 17.0093 | 16.7255 | 20.8955 |
|  60% |  9.0510 |  2.8620 |  7.2145 |  6.7045 | 11.3188 |  5.9373 |  5.1080 |  4.2838 |
|  70% |  0.0000 |  0.3158 |  0.4495 |  0.2433 |  1.0105 |  1.0470 |  1.1665 |  1.4310 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0562 |  0.1053 |  0.1070 |  0.1305 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 57.0305 | 47.5482 | 42.5625 | 47.8055 | 58.5522 | 34.9025 | 34.1675 | 40.9050 |
|  50% | 28.6013 | 19.9410 | 20.1412 | 21.2048 | 30.8865 | 15.7623 | 15.3158 | 15.7263 |
|  60% |  3.9783 |  3.8653 |  4.6835 |  5.9700 |  6.6668 |  3.9325 |  3.5230 |  3.5655 |
|  70% |  0.0000 |  0.0000 |  0.0000 |  0.0747 |  0.2290 |  0.4517 |  0.5048 |  0.6350 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0210 |  0.0635 |  0.0578 |  0.0615 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 55.1845 | 47.9093 | 42.2420 | 47.8852 | 56.8610 | 34.7955 | 33.5052 | 41.3620 |
|  50% | 23.3448 | 18.5660 | 16.4868 | 18.9205 | 26.0792 | 12.7240 | 11.9865 | 16.0440 |
|  60% |  3.0648 |  3.1160 |  3.1250 |  3.7430 |  5.1485 |  2.6605 |  2.4692 |  2.8385 |
|  70% |  0.1460 |  0.0473 |  0.2498 |  0.2550 |  0.4335 |  0.2563 |  0.1417 |  0.1662 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0017 |  0.0055 |  0.0043 |  0.0067 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |

I’ve had to include a lot more data here, because Sacred Shield absorbs a LOT of damage.  We’re getting about a ~30% reduction in damage taken across the board by turning on Sacred Shield.  As we get into sequences of many attacks we can zero out almost all of the 60%-90% categories.  When that happens, we need to consider the lower sizes to get a clear idea of what each gear set is doing.  It makes the tables a bit more unwieldly, which is annoying, but most people just read my summary of the table anyway.  Either way, I’d rather have all of the data on the table so that inquiring minds can look for things I may have missed.

The first thing you note on this table is that Control/Haste fares significantly better than it did without Sacred Shield.  It is competing with or beating Control/Mastery in pretty much every category.  It isn’t until we get to 7 attacks that it starts to trail C/Mastery by any measurable amount, and even that’s not very much.  The small advantage C/Ma has in the  7-attack category doesn’t make up for the significant advantage C/Ha gives you in the 2- to 4- attack categories.  And while C/Ma maintains it’s lead in damage taken, that lead has dropped from 10% to 5%.

The other surprising thing about this data set is that the avoidance gear sets don’t perform all that badly.  They’re rarely winning in a category, but they often rival C/Ma.  Their usual weakness in the 80% and 90% thresholds is still there, but it’s not as pronounced as before.  And it still takes about 18% less damage than C/Ha.

This is likely due to the inherent synergy between avoidance and absorption effects.  Avoiding an attack during SotR means that there’s one fewer attack to which SotR’s mitigation is applied, effectively undermining the use of SotR – that’s the negative scaling we’ve consistently seen between avoidance and control stats in the past.

But avoiding an attack doesn’t waste an absorption bubble, allowing that bubble to apply to the next unavoided attack.  In that way, absorption bubbles automatically time-shift to make themselves useful. The only time they’re wasted is if they expire before you take an attack, which means you didn’t take damage during the duration – an automatically safe situation to begin with.

The other gear sets all perform pretty well too, though nothing stands out as particularly interesting.  None of them trail by much, so the “use whatever gear you can find” strategy isn’t going to be at that much of a disadvantage.

In any event, it seems Control/Haste has won this round.  Control/Mastery isn’t that far behind, but it also doesn’t provide the raw DPS increase that the haste build does.  When one build is better for DPS and for survivability with the “macro SotR to Crusader Strike” queue, it’s a bit of a no-brainer.

However, we also know that shifting seemed to give mastery a bigger benefit than haste.  So maybe enabling the shifting algorithm will allow mastery to regain some of that ground.  Let’s see if that changes anything.

Results – SH1 Finisher Queue

If you remember from last time, the SH1 queue tries to cast SotR if:

  1. We have 5 holy power and a generator is available within the next second
  2. We have 3+ holy power and the mean of the last boss attack exceeded 80% throughput.

This means that we’ll use SotR early if the last boss attack wasn’t blocked, avoided, or mitigated with SotR.  Otherwise we’ll just bank holy power to 5 and bleed it as safely as possible.

First, let’s look at the data with Sacred Shield disabled.  This is the same data we saw earlier this week for C/Ha and C/Ma, but this table includes all of the other gear sets.

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5224 |  0.4103 |  0.4197 |  0.4523 |  0.4980 |  0.3672 |  0.3625 |  0.3577 |
| mean |  0.6004 |  0.5416 |  0.5328 |  0.5562 |  0.6082 |  0.4936 |  0.5043 |  0.5164 |
|  std |  0.1348 |  0.1332 |  0.1643 |  0.1480 |  0.1397 |  0.1766 |  0.1638 |  0.1503 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 79.9800 | 65.3280 | 69.9758 | 74.0790 | 80.4850 | 65.0438 | 67.4257 | 63.1565 |
|  50% | 64.7512 | 50.0140 | 46.1452 | 51.0942 | 64.8940 | 37.6743 | 37.4632 | 45.0725 |
|  60% | 47.3285 | 46.5570 | 36.3417 | 42.8345 | 48.1180 | 30.6615 | 34.7815 | 42.3635 |
|  70% | 43.2215 | 17.4820 | 33.6598 | 32.6245 | 44.1107 | 28.5703 | 27.5072 | 18.3808 |
|  80% | 10.0245 | 17.4820 | 12.2670 | 12.9318 | 12.6908 | 12.3615 | 15.1310 | 18.3808 |
|  90% |  4.4145 |  5.6712 |  6.5693 |  5.8338 |  6.3378 |  7.0395 |  6.7092 |  6.1442 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 85.6148 | 83.1100 | 71.9463 | 79.9485 | 85.7280 | 63.5208 | 68.6168 | 77.3255 |
|  50% | 77.8120 | 58.6900 | 63.8260 | 70.0968 | 78.2438 | 56.0808 | 45.6707 | 53.3563 |
|  60% | 53.8410 | 27.6640 | 37.3355 | 43.9935 | 54.8933 | 31.0248 | 34.3588 | 26.9438 |
|  70% | 36.5553 | 13.3447 | 23.9787 | 27.9680 | 37.4950 | 18.2287 | 13.7600 | 13.5083 |
|  80% |  7.4112 |  4.4365 |  8.3697 |  7.3390 |  9.7087 |  7.5145 |  7.5018 |  5.6735 |
|  90% |  0.4773 |  1.3013 |  1.5867 |  1.2285 |  1.6435 |  2.1285 |  1.9637 |  1.7528 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 86.0850 | 83.9205 | 70.7567 | 79.5945 | 86.5430 | 62.6885 | 71.0963 | 78.4237 |
|  50% | 79.6950 | 61.9600 | 59.6745 | 64.4532 | 79.7443 | 48.4910 | 46.9840 | 54.0313 |
|  60% | 52.7840 | 31.5972 | 37.1283 | 41.4445 | 54.3593 | 30.1280 | 30.9165 | 27.8300 |
|  70% | 26.7898 |  8.7100 | 18.4998 | 22.4168 | 28.8195 | 14.6303 | 14.7073 |  9.9785 |
|  80% |  2.0325 |  3.5068 |  3.7713 |  3.8595 |  4.5088 |  3.6730 |  3.6110 |  4.6870 |
|  90% |  0.0653 |  0.7993 |  0.5550 |  0.4383 |  0.8952 |  1.2337 |  1.5215 |  1.7453 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 93.0055 | 84.9635 | 79.4570 | 84.4562 | 93.0613 | 69.4290 | 71.0673 | 77.7092 |
|  50% | 79.3107 | 60.1430 | 60.8635 | 67.3745 | 79.8648 | 51.1845 | 49.2092 | 53.2810 |
|  60% | 55.6362 | 36.5780 | 38.8565 | 41.5920 | 57.4337 | 31.2155 | 27.9410 | 31.6680 |
|  70% | 25.5045 |  8.8130 | 16.8290 | 18.7098 | 28.0448 | 13.0993 | 11.0980 |  9.4880 |
|  80% |  5.0088 |  1.3685 |  5.0305 |  3.7135 |  7.2525 |  3.8527 |  1.9560 |  2.6338 |
|  90% |  0.0000 |  0.0487 |  0.2490 |  0.1515 |  0.5242 |  0.6455 |  0.4367 |  0.4740 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 93.6545 | 85.7085 | 80.9963 | 86.8032 | 93.8197 | 72.0932 | 75.3320 | 78.7903 |
|  50% | 81.1658 | 65.3350 | 61.0710 | 67.5583 | 81.6785 | 49.4887 | 49.8540 | 55.8625 |
|  60% | 56.3747 | 32.6410 | 34.1103 | 40.5217 | 57.6178 | 25.0623 | 26.3197 | 28.7055 |
|  70% | 23.3570 |  8.5092 | 12.1910 | 14.3090 | 25.4800 |  9.0840 |  8.7905 |  9.1058 |
|  80% |  2.4442 |  0.1440 |  2.9768 |  3.2437 |  4.6220 |  2.6045 |  2.0735 |  1.0507 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.1085 |  0.2122 |  0.1905 |  0.1110 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 94.5883 | 87.7143 | 82.3010 | 89.3173 | 94.7705 | 72.6070 | 77.9573 | 81.1767 |
|  50% | 81.7600 | 62.9725 | 61.0677 | 68.3070 | 82.3575 | 49.7385 | 50.8487 | 54.5155 |
|  60% | 54.7430 | 28.8410 | 31.6180 | 37.7540 | 56.2775 | 23.1782 | 23.9253 | 25.5347 |
|  70% | 20.0370 |  7.2920 | 10.7345 | 12.8502 | 22.5915 |  8.0165 |  7.6148 |  7.8110 |
|  80% |  1.9885 |  0.5120 |  2.0800 |  1.9633 |  3.6658 |  1.6352 |  1.4348 |  1.0933 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0225 |  0.0697 |  0.0850 |  0.0852 |

We see a reprisal of the Control/Mastery superiority here, but we talked about that last time.  It’s clear that the shifting queue benefits Control/Avoidance less than the mastery and haste variants, and Control/Balance tends to fall somewhere in the middle.  The avoidance builds generally perform a little worse than the Control builds again, much like they did with the simple S queue.

Now let’s turn Sacred Shield back on and see what happens:

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5227 |  0.4103 |  0.4192 |  0.4522 |  0.4988 |  0.3669 |  0.3620 |  0.3572 |
| mean |  0.4112 |  0.3923 |  0.3670 |  0.3897 |  0.4178 |  0.3370 |  0.3453 |  0.3671 |
|  std |  0.1297 |  0.1272 |  0.1420 |  0.1334 |  0.1321 |  0.1479 |  0.1412 |  0.1372 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 47.6090 | 53.3802 | 39.9920 | 46.3927 | 48.5255 | 34.8960 | 38.7608 | 48.7848 |
|  50% | 39.0460 | 30.6213 | 32.9847 | 33.9475 | 40.0908 | 28.0093 | 29.3300 | 28.8960 |
|  60% | 13.0910 | 24.1870 | 14.1325 | 16.8777 | 15.2587 | 14.0968 | 17.5545 | 23.0013 |
|  70% |  7.4175 |  7.3740 |  8.1310 |  8.9853 |  8.4995 |  8.1120 |  8.5627 |  7.6457 |
|  80% |  7.4175 |  6.9742 |  8.1295 |  7.7037 |  8.4987 |  8.1117 |  7.6287 |  6.9807 |
|  90% |  0.0003 |  0.1588 |  0.0000 |  0.0037 |  0.0000 |  0.0003 |  0.0135 |  0.1363 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 54.6732 | 53.5018 | 43.6617 | 49.0445 | 56.5392 | 38.5643 | 40.1080 | 48.6035 |
|  50% | 33.3215 | 22.9238 | 27.4898 | 31.5487 | 35.2305 | 24.1510 | 23.0220 | 22.8960 |
|  60% | 13.8798 |  9.2035 | 10.5063 |  7.7275 | 15.5575 |  8.9612 |  6.3230 |  9.3345 |
|  70% |  3.9423 |  3.9482 |  3.2218 |  3.6018 |  4.8708 |  2.9163 |  2.5517 |  4.0790 |
|  80% |  0.0017 |  0.8727 |  0.2373 |  0.2875 |  0.2022 |  0.3850 |  0.5318 |  0.8918 |
|  90% |  0.0000 |  0.0003 |  0.0000 |  0.0003 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 57.7482 | 50.3973 | 47.5403 | 53.0330 | 59.5875 | 41.2575 | 42.6945 | 45.2568 |
|  50% | 29.6090 | 21.8163 | 21.9488 | 27.0672 | 31.3215 | 17.1445 | 17.8478 | 18.7295 |
|  60% |  1.1785 |  5.7568 |  2.4093 |  4.0728 |  2.7228 |  2.7700 |  3.6998 |  6.0033 |
|  70% |  0.1500 |  1.4965 |  0.7970 |  0.7388 |  0.8792 |  1.1280 |  1.2070 |  1.9040 |
|  80% |  0.0013 |  0.1310 |  0.1045 |  0.0710 |  0.1643 |  0.2465 |  0.2515 |  0.2935 |
|  90% |  0.0000 |  0.0105 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0005 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 57.0225 | 47.6938 | 43.5565 | 50.3275 | 59.0108 | 35.0115 | 37.2285 | 39.8558 |
|  50% | 26.1370 | 21.6223 | 17.4095 | 19.3090 | 28.3583 | 13.7083 | 13.7485 | 19.2475 |
|  60% |  7.0750 |  2.4827 |  5.0105 |  5.1677 |  8.5480 |  3.8860 |  3.2785 |  2.7635 |
|  70% |  0.0843 |  0.6472 |  0.2590 |  0.1657 |  0.4012 |  0.3640 |  0.4855 |  0.9257 |
|  80% |  0.0000 |  0.0233 |  0.0037 |  0.0020 |  0.0060 |  0.0248 |  0.0333 |  0.0643 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0003 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 58.3780 | 47.0712 | 42.9440 | 48.4048 | 60.3563 | 34.2907 | 32.9735 | 40.4083 |
|  50% | 27.7150 | 16.1460 | 17.9885 | 18.7237 | 30.0160 | 13.3348 | 12.4510 | 13.1953 |
|  60% |  3.1587 |  3.8188 |  2.8743 |  3.9238 |  4.5448 |  2.4330 |  2.2203 |  3.2333 |
|  70% |  0.0003 |  0.2053 |  0.0308 |  0.0473 |  0.0583 |  0.1335 |  0.2328 |  0.4163 |
|  80% |  0.0000 |  0.0017 |  0.0000 |  0.0000 |  0.0040 |  0.0145 |  0.0130 |  0.0165 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 56.0545 | 48.6200 | 43.1815 | 49.0210 | 58.3612 | 34.3670 | 32.6210 | 41.2830 |
|  50% | 22.4383 | 16.2710 | 14.7237 | 16.5923 | 24.9438 | 10.7795 |  9.4425 | 14.2403 |
|  60% |  2.0663 |  1.8787 |  1.5637 |  1.8995 |  3.1532 |  1.3958 |  1.4743 |  2.0515 |
|  70% |  0.0005 |  0.0730 |  0.0762 |  0.0818 |  0.1150 |  0.1095 |  0.0670 |  0.1415 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0003 |  0.0010 |  0.0013 |  0.0035 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |

Whoa. The shifting algorithm was giving C/Ma a significant edge before, but turning on Sacred Shield completely reverses that result.  Control/Haste completely blows everything else out of the water here for shorter strings, and not by any small margin.  In the 3- to 4-attack categories, it’s almost a full threshold level ahead.  It’s showing fewer spikes in the 70% category than C/Ma is showing in the 80% category!  It isn’t until we get up to 5- attacks that mastery manages to catch up by virtue of its stronger probabilistic footing.  The more attacks to which you can apply block chance, the better C/Ma perform.

I think that what’s happening here is the following: C/Ha is getting Sacred Shield bubbles every ~4 seconds, which means it’s covering roughly every third boss attack.  Those attacks are guaranteed to not trigger the shifting algorithm, and C/Haste generates holy power fast enough that it can basically always cover the other two with SotR if it needs to, even if the bleed valve engaged recently.  That makes it incredibly strong for short-attack strings.

It falls behind a little in the longer strings because it can only keep this up for so long before running out of gas and needing another ~5 seconds to recharge.  So for the long strings, it loses a little ground to the more stochasting C/Ma set.

C/Ma can’t muster up that same level of HPG, and it’s only covering one in four boss swings with the guaranteed absorb, so it’ll end up struggling for short strings.  But through sheer probability it’s going to be able to brute-force long strings and claw its way back into contention.

This is rather eye-opening, because it suggests that there’s very little point in running Control/Mastery if you’re an advanced tank (using Sacred Shield, of course).  There doesn’t seem to be a category in which C/Ma gives a distinct advantage, and you’d be giving up a lot of DPS as well.  In one fell swoop, it’s upended the paradigm and put us right back where we were in 5.0.

But we have one final simulation to run, this time with the SH2 queue.  We know that favors C/Ma a little, so let’s see if it can pull out a last-minute hail mary.

Results – SH2 Finisher Queue

Again, first we’ll look at the data with Sacred Shield disabled to set our baseline.

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5223 |  0.4100 |  0.4194 |  0.4523 |  0.4993 |  0.3666 |  0.3620 |  0.3577 |
| mean |  0.6000 |  0.5428 |  0.5319 |  0.5565 |  0.6084 |  0.4942 |  0.5050 |  0.5171 |
|  std |  0.1424 |  0.1250 |  0.1652 |  0.1486 |  0.1410 |  0.1747 |  0.1594 |  0.1415 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 77.8200 | 65.0427 | 68.2365 | 72.6840 | 79.0070 | 63.8262 | 66.6148 | 62.8997 |
|  50% | 64.6552 | 48.8390 | 45.9310 | 51.0615 | 64.8900 | 37.7113 | 37.6560 | 43.9873 |
|  60% | 45.7122 | 43.0228 | 35.8450 | 42.0607 | 46.6923 | 30.4370 | 32.7540 | 39.3973 |
|  70% | 40.2465 | 19.5655 | 32.0827 | 31.5863 | 41.3385 | 27.4450 | 27.0597 | 20.1478 |
|  80% | 14.1430 | 19.5655 | 14.5213 | 15.6145 | 15.8750 | 14.4053 | 17.0558 | 20.1478 |
|  90% |  9.3812 |  8.5258 |  9.7062 |  9.4170 | 10.5368 |  9.5890 |  9.0388 |  8.4430 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 81.8700 | 80.9910 | 70.0565 | 77.7767 | 82.9153 | 62.2112 | 66.2630 | 75.3718 |
|  50% | 74.4885 | 59.3250 | 62.3030 | 68.4200 | 75.9533 | 55.2432 | 49.8645 | 54.8380 |
|  60% | 53.8223 | 33.8610 | 41.0710 | 47.0465 | 55.7272 | 35.3563 | 37.0870 | 32.0658 |
|  70% | 36.7032 | 13.9912 | 24.1533 | 28.1390 | 37.4335 | 18.3825 | 15.5112 | 13.3758 |
|  80% | 14.5350 |  1.7413 | 10.9438 |  9.5242 | 15.4828 |  8.9765 |  7.6713 |  3.4228 |
|  90% |  0.0010 |  0.6500 |  0.3152 |  0.1653 |  0.4120 |  0.8832 |  1.0208 |  1.1808 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 85.7677 | 85.2933 | 72.4490 | 80.5705 | 87.1720 | 66.1072 | 73.5293 | 80.4767 |
|  50% | 76.3633 | 66.6900 | 58.2595 | 65.1142 | 77.4215 | 47.6770 | 51.2200 | 58.7230 |
|  60% | 54.9747 | 31.7698 | 40.8983 | 44.3940 | 57.2597 | 33.2178 | 33.4380 | 27.1323 |
|  70% | 31.8188 |  4.1273 | 19.5360 | 24.5765 | 33.1850 | 14.8280 | 13.6393 |  6.6363 |
|  80% |  0.0035 |  1.2910 |  0.6425 |  0.4238 |  0.9350 |  1.4013 |  1.6883 |  2.7095 |
|  90% |  0.0000 |  0.2180 |  0.0508 |  0.0217 |  0.1497 |  0.4260 |  0.6865 |  1.0378 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 91.1868 | 87.1790 | 78.0393 | 84.1690 | 91.9443 | 68.5353 | 73.5373 | 80.9253 |
|  50% | 77.6485 | 62.6120 | 62.1093 | 69.7057 | 79.4778 | 53.1682 | 51.7235 | 55.2273 |
|  60% | 56.3043 | 35.5973 | 40.1310 | 42.6025 | 58.6827 | 32.3425 | 28.2125 | 31.0635 |
|  70% | 26.7188 |  6.9745 | 16.5240 | 18.3535 | 28.6548 | 12.6120 |  9.4627 |  7.5395 |
|  80% |  6.8837 |  0.3365 |  4.5732 |  3.4560 |  8.0095 |  3.3715 |  0.8610 |  1.4175 |
|  90% |  0.0000 |  0.0000 |  0.0305 |  0.0113 |  0.1123 |  0.2295 |  0.1958 |  0.2898 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 92.4952 | 86.9205 | 80.7193 | 86.2888 | 93.3290 | 72.9005 | 76.6795 | 80.3848 |
|  50% | 79.2488 | 66.7635 | 60.8193 | 67.7832 | 80.9382 | 49.7330 | 51.7130 | 57.6740 |
|  60% | 54.5883 | 32.6580 | 33.2920 | 40.7420 | 56.3898 | 24.5072 | 26.2225 | 28.1565 |
|  70% | 22.8665 |  7.3368 | 11.1203 | 13.7167 | 24.2715 |  7.9290 |  7.6668 |  7.7412 |
|  80% |  3.3348 |  0.0128 |  2.4295 |  2.9755 |  4.4640 |  2.0282 |  1.5145 |  0.5995 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0245 |  0.0643 |  0.0847 |  0.0762 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 93.3610 | 88.5393 | 81.7302 | 88.7318 | 94.1352 | 73.3020 | 78.4955 | 82.5045 |
|  50% | 79.4857 | 65.5380 | 61.3417 | 69.2993 | 81.4112 | 50.9712 | 52.6560 | 56.6260 |
|  60% | 53.2993 | 29.5740 | 31.6163 | 38.8610 | 55.4382 | 23.1475 | 24.0225 | 25.2393 |
|  70% | 21.3562 |  4.7965 | 10.4565 | 12.9678 | 23.2783 |  7.3540 |  6.5375 |  5.8625 |
|  80% |  2.8672 |  0.2820 |  1.6265 |  1.1868 |  3.7050 |  1.1700 |  0.8225 |  0.6787 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0047 |  0.0178 |  0.0320 |  0.0480 |

There isn’t a lot new here – this is much the same as the SH1 data.  Control/Mastery dominates, the other Control sets lag by varying degrees, and avoidance tends to lag even further until we look at very long strings of attacks.  Business as usual.

However, turning on Sacred Shield one last time…

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5229 |  0.4109 |  0.4191 |  0.4524 |  0.4981 |  0.3660 |  0.3617 |  0.3566 |
| mean |  0.4120 |  0.3902 |  0.3673 |  0.3890 |  0.4176 |  0.3380 |  0.3455 |  0.3661 |
|  std |  0.1324 |  0.1276 |  0.1449 |  0.1374 |  0.1337 |  0.1492 |  0.1434 |  0.1368 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 47.6120 | 50.2428 | 39.8375 | 45.7452 | 48.3047 | 34.8185 | 38.0930 | 46.7488 |
|  50% | 38.9460 | 28.5045 | 32.7732 | 33.3143 | 39.7985 | 27.9272 | 29.1158 | 28.0058 |
|  60% | 14.2005 | 23.6138 | 15.2243 | 17.4722 | 16.0515 | 14.8583 | 18.1448 | 23.1213 |
|  70% |  8.6380 | 10.5908 |  9.2225 | 10.2643 |  9.4262 |  8.9523 |  9.4345 |  9.8748 |
|  80% |  8.6378 |  9.4778 |  9.2225 |  9.2380 |  9.4262 |  8.9520 |  8.6443 |  8.3620 |
|  90% |  0.0005 |  1.7873 |  0.0003 |  0.4998 |  0.0005 |  0.0003 |  0.3010 |  1.0542 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 54.1732 | 49.7465 | 43.3820 | 47.6243 | 55.8525 | 38.5485 | 39.8533 | 46.8705 |
|  50% | 33.9008 | 29.2475 | 29.0235 | 32.0695 | 35.4320 | 25.4790 | 25.5342 | 27.7323 |
|  60% | 16.0977 | 14.1055 | 12.8713 | 10.5247 | 17.4093 | 10.6113 |  8.2012 | 12.5555 |
|  70% |  5.2683 |  2.6925 |  4.0322 |  5.1090 |  5.8770 |  3.3680 |  2.0065 |  3.3333 |
|  80% |  0.0005 |  0.2215 |  0.0328 |  0.1455 |  0.0620 |  0.1715 |  0.3105 |  0.5557 |
|  90% |  0.0003 |  0.0000 |  0.0000 |  0.0003 |  0.0003 |  0.0000 |  0.0003 |  0.0000 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 56.8932 | 54.5630 | 48.4860 | 52.9208 | 58.8742 | 42.7167 | 44.7313 | 48.1942 |
|  50% | 32.3667 | 19.4830 | 23.6827 | 29.0388 | 33.4400 | 18.0577 | 19.5975 | 17.5515 |
|  60% |  1.4580 |  3.5452 |  2.5282 |  4.3430 |  2.9897 |  2.8442 |  3.2468 |  4.9950 |
|  70% |  0.0535 |  0.6055 |  0.3357 |  0.3340 |  0.4828 |  0.7567 |  0.7258 |  1.0982 |
|  80% |  0.0003 |  0.0170 |  0.0053 |  0.0010 |  0.0298 |  0.1063 |  0.0865 |  0.0828 |
|  90% |  0.0000 |  0.0013 |  0.0000 |  0.0000 |  0.0003 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 57.3653 | 47.7255 | 44.5812 | 50.7285 | 59.1245 | 35.9823 | 38.9498 | 40.3257 |
|  50% | 27.4577 | 20.2110 | 19.1030 | 20.9293 | 29.4162 | 14.7647 | 14.4468 | 18.8630 |
|  60% |  7.4005 |  2.2590 |  5.0818 |  5.0638 |  8.5432 |  3.7573 |  3.0122 |  2.1902 |
|  70% |  0.0325 |  0.1300 |  0.1363 |  0.0567 |  0.2250 |  0.2560 |  0.2508 |  0.4215 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0028 |  0.0095 |  0.0055 |  0.0100 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 58.3780 | 47.0772 | 43.6273 | 48.4960 | 60.4503 | 35.2037 | 34.0155 | 41.4363 |
|  50% | 28.5205 | 17.8475 | 19.2605 | 19.8965 | 30.5623 | 14.0432 | 13.2497 | 13.7620 |
|  60% |  3.3697 |  2.8927 |  2.9888 |  4.3565 |  4.4585 |  2.3605 |  2.0293 |  2.2940 |
|  70% |  0.0005 |  0.0253 |  0.0043 |  0.0600 |  0.0212 |  0.0692 |  0.0895 |  0.1422 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0015 |  0.0053 |  0.0030 |  0.0045 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  40% | 56.1492 | 49.2988 | 43.4217 | 48.6828 | 58.2107 | 34.9405 | 33.4910 | 42.2753 |
|  50% | 23.0362 | 16.5573 | 15.8103 | 17.8190 | 25.2770 | 11.2423 | 10.0868 | 14.1870 |
|  60% |  2.5048 |  1.5065 |  1.6330 |  2.2555 |  3.3623 |  1.3305 |  1.1208 |  1.4793 |
|  70% |  0.0005 |  0.0107 |  0.0135 |  0.0200 |  0.0460 |  0.0570 |  0.0275 |  0.0548 |
|  80% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0003 |  0.0005 |  0.0000 |  0.0005 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |

Again, we see Control/Haste dart out to an early lead in the short-string categories. But this time starts falling slightly behind Control/Mastery in the 5-attack category, and never quite regains the lead. This is still not a banner showing for Control/Mastery, mind you, but at least it didn’t lose in every category this time. I guess we can give it a medal for participation?

It’s worth commenting on the other sets here as well. The other Control sets still lag a little, but again aren’t that bad. The avoidance gear sets actually compete pretty well at lower threshold levels in most of the categories, often winning by a pretty wide margin. But like usual they can’t suppress the largest spikes the way a Control set can. And the mantra we’ve been repeating is “Spikes kill tanks,” so we have to consider those high-damage categories as a little more important. All in all, we’re still not very impressed with the other offerings.

Conclusions

It looks like Control/Haste has a pretty commanding lead when Sacred Shield is turned on, even though it lags significantly when Sacred Shield is absent.  Unless we’re really concerned with 6- and 7-attack strings, there’s a decent bit of survivability to be gained by sticking with haste.  And of course, there’s the DPS angle to consider, which is nontrivial for raiders in a variety of categories; from 10-mans raiders where tank DPS is a large percentage of raid DPS to heroic raiders looking for that last little bit of juice to meet the enrage.

What surprised me most about these results was just how powerful Sacred Shield is.  I’ve been touting it as the obvious choice in that talent tier since release, but these results really hammer that point home.  Sacred Shield is essentially a floating “smart SotR” every six seconds that automatically adapts to your damage intake pattern.  It’s steady, can’t overheal, won’t be wasted when you get a lucky avoid, and best of all free because it only costs a GCD.  It’s the damage smoother’s dream talent, and there’s literally nothing else in the tier that can compare.

Once you recognize the power of Sacred Shield, the dominance of haste in these simulations becomes more understandable.  Getting more of these “smart SotRs” is a huge benefit for a tank that adapts their actual SotR usage to intake patterns, because they can often guarantee coverage of every melee attack.

That said, we see that even with the simple S queue, Control/Haste pulls ahead.  Not only does it provide better active mitigation when you’re shifting, it provides better passive mitigation through Sacred Shield and “lazy” SotR usage.  Sacred Shield single-handedly turns Control/Haste from an expert’s gearing strategy to one that a novice will be able to use effectively.

And that’s… well, to be honest, it’s a little overpowered.  Broken, even.  As much as I like the haste gearing strategy, it does seem like it’s too good to be true.  Maximum DPS in conjunction with maximum survivability through a stat that is not traditionally desired by tanks is a bit lopsided, and part of the reason we saw changes to Grand Crusader in 5.2.  Were the developers blinded the same way we have been by not including Sacred Shield in our models? I don’t know, obviously, but it seems strong enough that I could believe it wasn’t intended.

And of course, there’s an even more important question from our perspective:  is this interaction is something that, now that the cat is out of the bag, will end up drawing their attention and call down the nerf bat?

And the corollary: can we stack enough haste to outrun it?

Posted in Tanking, Theck's Pounding Headaches, Theorycrafting, Uncategorized | Tagged , , , , , , , , , , , , | 60 Comments

Control Shift En-tier

About a week ago, Wrathblood asked me to take a more thorough look at the Tier 15 2-piece bonus. The earlier simulations I ran were based on a lower-ilvl gear set (496) which was more constrained in its itemization, and only considered the Control/haste gearing strategy. He suggested that the extra itemization afforded by higher-ilvl gear may have effects that we didn’t anticipate, as might the more extreme values of haste and mastery we’re pushing in the ilvl 522 gear sets because of the relaxed parry/dodge constraints. And of course, it’s not hard to imagine that a Control/Mastery build might interact more strongly with a block-based set bonus.

Even if the results don’t end up making the 2-piece an amazing bonus, it’s good to cover more of the parameter space. Better to have data and know what you’re dealing with than to guess and make blind assumptions, especially when the data isn’t hard to generate.

In addition, Mel and I have been discussing a few of the more significant limitations of our earlier simulations. One of them was our SotR model. It’s not clear how exceptional you need to be to effectively pull off the time-shifting hijinks that we suggested in the 5.2 Smoothness post. But it’s also probably not realistic to model it as if it were macro’ed to Crusader Strike. It would be tough to come up with a happy middle ground, but it’s not that hard to make some basic tweaks to improve the SotR usage model. So that’s exactly what I did.

I’ve introduced a new “Shift” finisher queue that tries to intelligently shift the usage of SotR around to react to spikes. The queue, which we’ll call “SH” will cast SotR when either of the following conditionals is satisfied:

  1. We have 5 holy power and a generator is available within the next second
  2. We have 3+ holy power and the mean of the last N boss attacks is greater than 80% throughput.

The first condition is the bleed valve, and taken in isolation gives identical results to the simple “spam SotR whenever you have 3 holy power” model we’ve been using in previous sims, also known as the “S” rotation. It’s only purpose is to make sure we don’t end up wasting holy power, and bleed it in the safest way possible.

The second condition is the one that acts as a spike filter. Maximum throughput in the simulation is a string of full hits, which looks like (1, 1, 1, 1, 1, 1, …). This filter just looks at the last N attacks, takes the average, and compares it to 0.8.

So for example, if I set N=1 (an “SH1″ queue) it filters based on only the last attack, and will use SotR (if possible) any time we take a full hit. It wouldn’t use SotR if we blocked the previous attack, because that only registers as 0.7 damage, nor if we mitigated it with an existing SotR or avoided it. It doesn’t look at any attacks beyond the previous one, however. You can probably already guess that this means it’ll be a short-spike filter.

If instead we used N=2 (“SH2″), then it would look at the mean of the last two attacks. So for example, it will try to cast SotR if we take two full hits (because $\frac{1+1}{2}=1$, which is >0.8), or one hit and one block ($\frac{1+0.7}{2}=0.85$, which is >0.8), but not two blocks (mean of 0.7) or any other combination.

We could, of course, set N higher than 2 if we wanted to defend only against extremely high spikes. However, by N=3 we’re already looking at 4.5 seconds, and it only takes 5.5-7.5 seconds to generate 3 holy power depending on your haste level. By N=3 or N=4 we’re already almost guaranteed to trigger the bleed valve condition during our filter period, which means we’re not very likely to see events that exceed 0.8 in the first place. As N increases, the filter gets engaged less frequently and the results should tend towards the “S” rotation.

We could also change the threshold level from 0.8 to something else, if we wanted to. The lower we set it, the more frequently it will engage, and if we set it too low it will just fire any time we don’t avoid N attacks. If we set it higher than 0.8, we limit the filter’s trigger condition to strings of full hits. I’ve chosen 0.8 specifically so that hit+block combinations trigger the conditional for N=2, but a single block won’t trigger it for N=1. We can explore the effects of changing this threshold condition in a later blog post.

Later this week, we’ll see how this shift queue performs with all of the gear sets we’ve compiled. Today, we’re just going to see how it performs with the Control/Haste and Control/Mastery gear sets, alongside the queues we tested in the last round of T15 2-piece simulations. Thus, a quick review of the T15 2-piece finisher queues is in order:

  • “T” (for “tier bonus”) will use WoG any time the tier bonus buff drops off, as well as if we hit 5 holy power so that we don’t waste anything.
  • “TS” tries t0 keep the tier bonus up at all times and uses SotR as a bleed mechanism. The logic is to cast WoG every time the tier buff drops off and only cast SotR when we’re at 5 holy power.
  • “ST” is a “first come, first serve” style rotation that tries to keep something up at all times, whether it’s SotR or the tier 15 set bonus. It will prioritize SotR over the tier bonus. The logic is roughly “if neither buff is up and HP>=3, cast SotR; if neither buff is up and HP<3, try to cast WoG.”

As a reminder, here are the stats for the Control/Haste and Control/Mastery gear sets:

|    Set: |  C/Ha |  C/Ma |
|     Str | 15000 | 15000 |
|   Parry |  1500 |  1500 |
|   Dodge |  1500 |  1500 |
| Mastery |  1500 | 13500 |
|     Hit |  2550 |  2550 |
|     Exp |  5100 |  5100 |
|   Haste | 12000 |     0 |
|   Armor | 65000 | 65000 |

Control/Mastery Gear Set

The mastery set runs a whopping 30.5% mastery, pushing SotR’s mitigation up to 60.5%; that’s as potent as a warrior’s critical block. Speaking of blocking, it also packs an impressive 41% block, though that gets knocked down to 36.5% against a boss. The downside is that we have 0% haste in this gear set, so our holy power generation is capped at around 0.41 HP/sec. There’s an inherent trade-off here – timing SotR will give you a strong effect, but the lower uptime of SotR means that we can’t cover as many attacks.

As before, we need to specify how much overheal we expect WoG to generate to properly evaluate the queues that include WoG. We’ll start with 100% overheal (meaning WoG itself does essentially nothing for you), and then look at the 50% and 0% overheal cases.

WoG overheal factor: 100%

| Queue: |       S |     SH1 |     SH2 |       T |      TS |      ST |
|     S% |  0.4101 |  0.4101 |  0.4105 |  0.0000 |  0.2126 |  0.2360 |
|   mean |  0.5417 |  0.5429 |  0.5423 |  0.6231 |  0.5433 |  0.5375 |
|    std |  0.1449 |  0.1325 |  0.1253 |  0.1455 |  0.1513 |  0.1475 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 42.3010 | 46.7672 | 42.9268 | 65.4025 | 48.0190 | 46.1590 |
|    70% | 21.9970 | 17.6668 | 19.5328 | 27.2403 | 18.5732 | 17.6793 |
|    80% | 21.9970 | 17.6668 | 19.5328 | 27.2403 | 18.5732 | 17.6793 |
|    90% | 10.2610 |  5.6763 |  8.4748 |  3.6463 |  2.4868 |  2.3977 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.7568 | 27.8945 | 33.7280 | 54.9875 | 36.7665 | 34.8075 |
|    70% | 18.2605 | 13.4463 | 13.9110 | 29.3353 | 17.6935 | 16.4103 |
|    80% |  7.4737 |  4.4705 |  1.7305 |  7.4543 |  4.3247 |  3.9830 |
|    90% |  2.7365 |  1.2675 |  0.6405 |  0.6740 |  0.4245 |  0.3802 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 33.9690 | 31.9660 | 31.7003 | 48.5408 | 30.4235 | 29.5403 |
|    70% | 12.5495 |  8.7740 |  4.0938 | 28.7690 | 15.3175 | 13.7128 |
|    80% |  5.2840 |  3.4635 |  1.2557 | 10.2150 |  5.0597 |  4.4720 |
|    90% |  1.2183 |  0.7810 |  0.2188 |  1.8105 |  0.9160 |  0.7803 |
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 39.1620 | 36.9288 | 35.6007 | 61.8642 | 36.6945 | 35.0003 |
|    70% | 10.6135 |  8.7673 |  6.9117 | 27.4010 | 12.7738 | 10.9168 |
|    80% |  1.4990 |  1.3630 |  0.3220 | 11.7240 |  4.7525 |  3.8885 |
|    90% |  0.0000 |  0.0375 |  0.0000 |  0.4228 |  0.1762 |  0.1425 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 35.8623 | 32.9168 | 32.5135 | 58.4110 | 35.6808 | 33.3798 |
|    70% | 11.1083 |  8.5260 |  7.2780 | 26.0475 | 10.6435 |  8.5690 |
|    80% |  0.0000 |  0.1315 |  0.0095 |  4.1433 |  1.3693 |  1.0128 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0948 |  0.0305 |  0.0248 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.3012 | 29.1515 | 29.4353 | 55.0732 | 31.1550 | 28.9513 |
|    70% |  9.7462 |  7.2493 |  4.8043 | 24.8360 |  8.8652 |  6.8185 |
|    80% |  0.8013 |  0.5012 |  0.2617 |  5.0090 |  1.2965 |  0.8367 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.2248 |  0.0468 |  0.0355 |

First, let’s consider the shifting queues. Both show a distinct improvement over the S queue, suggesting that timing SotR casts really does make a difference in spike representation. SH1 does the best job at eliminating 2-attack spikes, which makes sense since it’s a short-spike filter. While it outperforms S across the board, it falls behind SH2 for 3+ attacks, suggesting that SH2 is probably the stronger of the two queues overall for a mastery gear set. It’s also worth noting the magnitude of the improvement: compared to S, we’re getting a 40%-80% reduction in some of the spike categories, especially in the important 4- to 5-attack regime. That’s not a trivial gain for a reasonably simple time-shifting algorithm.

As in the last round, the T queue is pretty much garbage. The set bonus isn’t strong enough to stand on its own, so it’s not worth spamming WoG in an attempt to keep the buff up 100% of the time.

The TS queue doesn’t perform all that poorly compared to S, even showing a pretty significant improvement for 2-3 attacks. But it only manages to match the performance of S for 4 attacks, and lags a bit in the 5+ attack categories. When compared to SH2, it falls significantly behind in nearly every metric.

A similar story could be told about ST, which performed reasonably competitively in the last round of testing. It can hold its own against S, but falls behind SH2 by a significant margin. At 100% overheal on WoG, there’s just no situation where the set bonus seems to give a clear survivability advantage.

Let’s see what happens when WoG’s overheal is cut to 50%.

WoG overheal factor: 50%

| Queue: |       S |     SH1 |     SH2 |       T |      TS |      ST |
|     S% |  0.4104 |  0.4105 |  0.4104 |  0.0000 |  0.2122 |  0.2356 |
|   mean |  0.5420 |  0.5408 |  0.5413 |  0.5551 |  0.4898 |  0.4989 |
|    std |  0.1449 |  0.1333 |  0.1256 |  0.1373 |  0.1484 |  0.1373 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 42.3070 | 46.4395 | 42.8245 | 49.6615 | 36.9973 | 39.7920 |
|    70% | 22.0145 | 17.4175 | 19.5012 | 17.5070 | 14.1575 | 16.2463 |
|    80% | 22.0145 | 17.4175 | 19.5012 | 16.0098 | 13.2680 |  8.5230 |
|    90% | 10.2410 |  5.6247 |  8.3945 |  2.1725 |  1.7857 |  1.7715 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.7285 | 27.4853 | 33.6465 | 39.5823 | 29.2448 | 31.4512 |
|    70% | 18.2455 | 13.2448 | 13.8183 | 15.8858 | 12.2385 | 14.6877 |
|    80% |  7.5020 |  4.3853 |  1.7138 |  3.3298 |  2.6967 |  3.4908 |
|    90% |  2.7553 |  1.2767 |  0.6318 |  0.2680 |  0.2367 |  0.3100 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 34.1212 | 31.4797 | 31.5030 | 33.3507 | 23.0412 | 26.3468 |
|    70% | 12.5640 |  8.6035 |  4.0767 | 13.8833 |  9.7470 | 10.6955 |
|    80% |  5.2990 |  3.4830 |  1.2605 |  3.5175 |  2.4328 |  2.1993 |
|    90% |  1.2255 |  0.7878 |  0.2120 |  0.3693 |  0.3953 |  0.0762 |
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 39.3628 | 36.3190 | 35.3318 | 40.4225 | 23.0955 | 23.1992 |
|    70% | 10.6638 |  8.7133 |  6.8473 | 12.2817 |  7.4853 |  7.0390 |
|    80% |  1.5003 |  1.3500 |  0.3285 |  1.0110 |  1.5378 |  0.7823 |
|    90% |  0.0000 |  0.0498 |  0.0000 |  0.0462 |  0.0590 |  0.0290 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 35.9303 | 32.3367 | 32.2488 | 40.4633 | 21.5243 | 21.2708 |
|    70% | 11.0507 |  8.3502 |  7.1970 | 11.1772 |  5.5295 |  4.5475 |
|    80% |  0.0000 |  0.1467 |  0.0110 |  0.6997 |  0.4557 |  0.3740 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0037 |  0.0077 |  0.0067 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.3418 | 28.5257 | 29.1668 | 35.7612 | 18.7482 | 18.8182 |
|    70% |  9.7500 |  7.1750 |  4.7520 | 10.0488 |  3.8830 |  2.9875 |
|    80% |  0.8268 |  0.4840 |  0.2512 |  0.7990 |  0.2135 |  0.1840 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0005 |  0.0028 |  0.0008 |

The S, SH1, and SH2 data doesn’t change here outside statistical fluctuations. The T queue is still a lot less garbage-y now, arguably matching the performance of S for shorter strings. It still loses ground for 6- to 7-attacks, however.

TS and ST show a fairly significant improvement over S across the board. But neither is clearly superior to our new gold standard, the SH2 queue. They generally outperform the shift queues for 2 attacks, but it’s questionable how much we really worry about 2-attack strings, since most bosses don’t melee you for 400k or more. SH2 tends to beat them in the 3- to 5-attack categories, but falls behind again at 7 attacks. All in all I think it’s pretty much a three-way tie between SH2, TS, and ST at this point.

So if WoG’s giving you 50% overheal, gaming the new set bonus buy syou a small improvement over just spamming SotR (“S”), but it’s not a clear improvement over just sticking with SotR and being careful with your timing (“SH”).

Let’s crank WoG up to maximum effectiveness and look at the 0% overheal data:

WoG overheal factor: 0%

| Queue: |       S |     SH1 |     SH2 |       T |      TS |      ST |
|     S% |  0.4108 |  0.4102 |  0.4105 |  0.0000 |  0.2121 |  0.2360 |
|   mean |  0.5412 |  0.5416 |  0.5422 |  0.5022 |  0.4465 |  0.4597 |
|    std |  0.1451 |  0.1328 |  0.1252 |  0.1373 |  0.1490 |  0.1337 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 42.2155 | 46.5763 | 42.8827 | 38.5640 | 33.1002 | 27.4115 |
|    70% | 21.9353 | 17.4630 | 19.5302 | 15.8348 | 12.1708 |  9.5460 |
|    80% | 21.9353 | 17.4630 | 19.5302 | 15.8348 | 11.4650 |  7.9205 |
|    90% | 10.2748 |  5.5675 |  8.4910 |  2.1077 |  1.6105 |  0.9662 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.6512 | 27.6415 | 33.6860 | 26.2135 | 21.5578 | 20.9620 |
|    70% | 18.2035 | 13.2302 | 13.8877 | 11.5970 |  9.2747 |  6.9993 |
|    80% |  7.4228 |  4.3803 |  1.7488 |  2.8165 |  2.1900 |  1.2845 |
|    90% |  2.7748 |  1.2550 |  0.6620 |  0.2760 |  0.2053 |  0.1045 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 33.8680 | 31.6200 | 31.6953 | 18.7090 | 14.8930 | 17.8592 |
|    70% | 12.4778 |  8.6483 |  4.0650 |  7.2133 |  6.1665 |  4.8243 |
|    80% |  5.2785 |  3.4120 |  1.3058 |  2.0125 |  1.8793 |  0.4870 |
|    90% |  1.2040 |  0.7582 |  0.2240 |  0.3785 |  0.2710 |  0.0468 |
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 39.2205 | 36.6190 | 35.4823 | 28.2785 | 14.6325 | 14.4177 |
|    70% | 10.5500 |  8.6173 |  6.9608 |  4.3925 |  3.8047 |  2.8465 |
|    80% |  1.4735 |  1.3350 |  0.3348 |  0.6145 |  0.8670 |  0.2318 |
|    90% |  0.0000 |  0.0425 |  0.0000 |  0.0210 |  0.0413 |  0.0017 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 35.7910 | 32.5177 | 32.3367 | 23.0938 | 13.8513 | 11.4323 |
|    70% | 11.0220 |  8.3745 |  7.3345 |  3.6457 |  2.1958 |  1.4570 |
|    80% |  0.0000 |  0.1320 |  0.0105 |  0.0703 |  0.1385 |  0.0610 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0025 |  0.0003 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 32.2383 | 28.7430 | 29.3895 | 19.1578 |  9.9872 | 10.3063 |
|    70% |  9.6973 |  7.1182 |  4.8477 |  3.2942 |  1.3065 |  0.7248 |
|    80% |  0.8415 |  0.5030 |  0.2890 |  0.0478 |  0.0342 |  0.0128 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |

Here we finally start to have a real competition. The raw healing power of WoG is enough to tip the scales a bit, such that even the T rotation is competitive. It flat-out beats the simple S queue, and does a reasonable job of competing with SH2. It edges out SH2 for longer (5+ attacks) and shorter (2 attacks) strings, though it trails ever so slightly in the 4–attack category.

TS and ST fare about the same, outperforming SH2 in a number of categories but trailing in isolated spots, especially in the 4-attack range. ST seems to have pulled ahead of TS enough to be strictly superior in all categories. Overall one could make the argument that either TS or ST is competitive enough to be pereferable to even SH2 at this point. the fact that they beat out S by a pretty handy margin is notable for tanks that aren’t trying to micromanage SotR – mixing some WoGs in to maintain the buff may be a net gain for those players.

It’s also worth noting that at 50% and 0% overheal, the WoG queues beat out the S and SH queues in total damage reduction (TDR) by a large amount. TS and ST offer a whopping 17% reduction in total damage taken. Remember though, most of that effectiveness is coming from WoG, not the set bonus.

So, much as we saw last time, queues that leverage the power of the T15 2-piece set bonus don’t become truly competitive until WoG is operating near maximum efficiency. We’ll talk more about what this means shortly, but first let’s look at how things change for a Control/Haste gear set.

Control/Haste Gear Set

The haste gear set shifts to the opposite extreme. We only have a meager 10.5% mastery, giving 19.5% block chance against a boss and 40.5% SotR mitigation. However, we’ve piled on the haste – 28.24% of it, to be exact, and we’ll reap the benefit of that by having significantly higher holy power generation. In this gear set, HPG caps out around 0.52 per second. If you recall the last smoothing post, we posited that this extra 28% uptime on SotR would make a bigger impact on the shifting queues than the extra 20% mastery would. Let’s see if we were right.

Again, we start with the 100% overheal data:

WoG overheal factor: 100%

| Queue: |       S |     SH1 |     SH2 |       T |      TS |      ST |
|     S% |  0.5228 |  0.5225 |  0.5226 |  0.0000 |  0.3242 |  0.3530 |
|   mean |  0.6010 |  0.6015 |  0.6016 |  0.6652 |  0.5773 |  0.5749 |
|    std |  0.1479 |  0.1342 |  0.1418 |  0.1562 |  0.1496 |  0.1470 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 46.3575 | 47.4338 | 46.0037 | 65.5367 | 47.2860 | 46.8760 |
|    70% | 40.7343 | 43.3862 | 40.4728 | 42.3603 | 30.2638 | 29.2868 |
|    80% | 14.6405 | 10.0218 | 14.2113 | 42.3603 | 22.0120 | 20.4937 |
|    90% |  9.9078 |  4.4075 |  9.4393 | 10.8740 |  5.6080 |  5.2313 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.7650 | 54.0125 | 54.2755 | 59.2830 | 46.6840 | 46.6097 |
|    70% | 37.0855 | 36.8943 | 37.0173 | 41.9015 | 26.6883 | 26.2925 |
|    80% | 15.1855 |  7.4750 | 14.6333 | 19.1935 |  9.7335 |  9.0783 |
|    90% |  1.2980 |  0.4585 |  0.0008 |  3.6005 |  1.3678 |  1.2080 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.8647 | 52.9630 | 55.3687 | 57.4893 | 46.3350 | 46.0938 |
|    70% | 32.2542 | 26.9342 | 32.2070 | 40.2890 | 23.4513 | 23.4288 |
|    80% |  3.3598 |  2.0602 |  0.0017 | 23.0570 |  8.0365 |  7.2527 |
|    90% |  0.0000 |  0.0730 |  0.0000 |  8.0308 |  2.1803 |  1.6980 |
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 55.5468 | 55.8940 | 56.7255 | 71.8725 | 46.1725 | 45.1663 |
|    70% | 28.6008 | 25.7090 | 26.9973 | 39.7900 | 21.4207 | 21.0795 |
|    80% |  8.9258 |  5.0655 |  7.0110 | 23.4135 |  6.1088 |  4.8078 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  3.2043 |  0.6520 |  0.4323 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 54.1748 | 56.6675 | 55.0505 | 69.3145 | 44.5780 | 44.0457 |
|    70% | 24.2147 | 23.5965 | 23.1848 | 39.8963 | 19.3180 | 18.5075 |
|    80% |  4.2663 |  2.4810 |  3.3905 | 13.6180 |  3.6472 |  3.0048 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  1.2370 |  0.1580 |  0.0800 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.0793 | 55.0057 | 53.8088 | 67.3342 | 45.6855 | 44.9018 |
|    70% | 22.6185 | 20.2733 | 21.7108 | 40.0643 | 16.8960 | 15.8635 |
|    80% |  3.8282 |  2.0460 |  2.8815 | 15.1383 |  2.0480 |  1.4508 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  2.3283 |  0.0700 |  0.0250 |

The behavior of SH1 and SH2 is a little different here. With the mastery gear set, we saw SH2 dominate in all categories except for the 2-attack range. However, with the haste gear set SH1 seems to be doing the dominating. This is mostly due to having faster holy power generation – 0.52 HP/sec compared to 0.41 HP/sec for the mastery set. That drops your mean SotR time from 7.3 seconds to 5.8 seconds, and as I mentioned in the introduction, faster holy power generation makes higher-N queues less efficient. We now have enough HPG to be a little riskier with our reaction filter, because we’re generating holy power fast enough that the downtime is only going to be about 2 boss swings.

This is also the cause of the curious data in the 4-attack category, which is the one place that SH1 clearly falls behind SH2 (at least, for 80 and 90% spikes). Because the downtime of SotR is 2 boss swings, the SH1 becomes a little more vulnerable to 4-attack strings thanks to the “2 on, 2 off” pattern of SotR. SH2 is a little more conservative with its SotR usage, and thus covers that particular case a little more effectively.

How does the improvement from S to SH compare to what we saw in the mastery set? Well, it’s… about the same, actually. We see a lot of the same 30%-50% drops going from S to SH, with larger reductions in a few categories. But it’s not a strong victory for haste over mastery like we predicted.

Part of the problem is that haste’s strength comes from shaving off the top category – it’s good at combating 80% and 90% spikes, but it doesn’t do as much for 60% or 70% spikes. But the default S queue already eliminates most of the 90% categories for the haste gear set, so there’s no more room for improvement there. The 80% categories still show large gains, but not larger than the mastery data showed. And in the 60% and 70% categories, the time-shifted queues tend to show less improvement with the haste gear than the mastery gear. So it’s not clear that there’s a large untapped well of survivability that one can draw from with this simple shifting model.

Moving on to the WoG queues, you could probably have guessed this but… yes, the T queue is still garbage at 100% overheal.

TS and ST both perform fairly similarly, doing a better job of suppressing 60%-70% spikes than the S or SH queues, but lagging in the 80%-90% categories. Just as in the last round of simulations, this has to do with the damage profile of each distribution. TS and ST have a broader profile with a longer tail, while S (and SH) suppress the long tail at the expense of shifting the mean of the distribution to higher spike levels. I won’t reprise the plots here, because they look pretty much the same as last time, so you can take a look at the last post to see example graphs.

Short version: at 100% overheal, the set bonus still doesn’t seem to be worth prioritizing for a haste gear set.

Onwards and upwards (for WoG anyway); the 50% overheal data beckons:

WoG overheal factor: 50%

| Queue: |       S |     SH1 |     SH2 |       T |      TS |      ST |
|     S% |  0.5226 |  0.5224 |  0.5232 |  0.0000 |  0.3242 |  0.3532 |
|   mean |  0.6008 |  0.6006 |  0.6005 |  0.5745 |  0.5339 |  0.5391 |
|    std |  0.1481 |  0.1348 |  0.1423 |  0.1489 |  0.1422 |  0.1393 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 46.3222 | 47.3290 | 45.7760 | 53.1528 | 39.7963 | 41.6880 |
|    70% | 40.7070 | 43.2488 | 40.2820 | 25.5638 | 23.9830 | 23.3118 |
|    80% | 14.6335 | 10.0162 | 14.0865 | 19.8077 | 15.3640 | 11.3565 |
|    90% |  9.8972 |  4.3823 |  9.3970 |  5.0638 |  3.8420 |  2.9267 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.7365 | 53.8780 | 54.0440 | 46.7885 | 39.3038 | 40.0625 |
|    70% | 37.0468 | 36.7013 | 36.7800 | 24.0000 | 19.6335 | 18.7733 |
|    80% | 15.1913 |  7.3915 | 14.5518 |  7.0505 |  6.0220 |  5.0628 |
|    90% |  1.3120 |  0.4600 |  0.0023 |  0.7963 |  0.6673 |  0.5020 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.8390 | 52.8623 | 55.0905 | 41.6155 | 36.7965 | 38.4763 |
|    70% | 32.2512 | 26.8493 | 31.8983 | 22.9363 | 15.6793 | 14.8535 |
|    80% |  3.4008 |  2.0172 |  0.0030 |  8.0065 |  3.7687 |  2.8995 |
|    90% |  0.0000 |  0.0720 |  0.0000 |  0.3538 |  0.6822 |  0.2405 |
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 55.5238 | 55.7700 | 56.4808 | 40.8570 | 34.2160 | 35.9790 |
|    70% | 28.6000 | 25.5805 | 26.7625 | 21.4312 | 12.6945 | 12.0057 |
|    80% |  8.8878 |  4.9570 |  6.9828 |  2.4095 |  1.9552 |  1.7050 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.2692 |  0.1355 |  0.0532 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 54.2253 | 56.4615 | 54.6968 | 45.6250 | 32.6095 | 34.4695 |
|    70% | 24.2168 | 23.4888 | 23.0660 | 19.7000 |  9.8537 |  9.8712 |
|    80% |  4.2467 |  2.4075 |  3.3208 |  3.1580 |  1.0467 |  0.6258 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0540 |  0.0168 |  0.0067 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.1063 | 54.8103 | 53.4983 | 45.6503 | 31.3818 | 32.3642 |
|    70% | 22.6195 | 20.1075 | 21.6425 | 17.4415 |  7.6185 |  8.1792 |
|    80% |  3.8020 |  1.9550 |  2.9023 |  1.9150 |  0.4410 |  0.2603 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0075 |  0.0013 |  0.0008 |

In this data set, we’re starting to see a clear advantage towards the TS and ST rotations. They’re solidly competing with SH1, and even though they permit more 90% spikes, they more than make up for it with suppression in the 60%-80% categories. T is also in the running now, though there’s no situation where it’s clearly preferable to either of the mixed queues.

It seems that the extra holy power fueling WoG in this gear set is having a significant effect. With this much HPG, we’re able to get a respectable SotR uptime while also taking advantage of the set bonus, which makes it more valuable than it was in the mastery gear set. I think it’s fair to say that ST has a slight lead over all of the competitors this round. Let’s see what’s in store when we crank WoG up to full power:

WoG overheal factor: 0%

| Queue: |       S |     SH1 |     SH2 |       T |      TS |      ST |
|     S% |  0.5225 |  0.5222 |  0.5225 |  0.0000 |  0.3247 |  0.3534 |
|   mean |  0.6003 |  0.6013 |  0.6005 |  0.4974 |  0.5072 |  0.5027 |
|    std |  0.1481 |  0.1344 |  0.1425 |  0.1503 |  0.1445 |  0.1370 |
| ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 46.3508 | 47.4428 | 45.8948 | 30.6310 | 34.8588 | 32.9618 |
|    70% | 40.6535 | 43.3518 | 40.3810 | 19.8600 | 22.1415 | 17.7995 |
|    80% | 14.5957 | 10.0767 | 14.1655 | 18.9675 | 14.8998 |  8.9260 |
|    90% |  9.7813 |  4.4400 |  9.4358 |  5.0583 |  3.7705 |  2.0580 |
| ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.6503 | 53.9720 | 54.0338 | 29.0413 | 31.9298 | 30.9422 |
|    70% | 36.9320 | 36.7185 | 36.8463 | 12.1288 | 15.7963 | 11.7378 |
|    80% | 15.0675 |  7.4773 | 14.6283 |  4.3130 |  5.3172 |  2.4430 |
|    90% |  1.2695 |  0.4752 |  0.0010 |  0.7910 |  0.6440 |  0.1398 |
| ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 53.7005 | 52.9335 | 55.2110 | 24.9007 | 30.3105 | 30.3485 |
|    70% | 32.1685 | 26.9200 | 32.0120 |  9.0545 | 11.2550 |  8.7277 |
|    80% |  3.3473 |  2.0720 |  0.0050 |  1.0317 |  2.6930 |  0.8783 |
|    90% |  0.0000 |  0.0697 |  0.0000 |  0.3053 |  0.5988 |  0.0318 |
| ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 55.3028 | 55.8280 | 56.5597 | 27.1045 | 28.0080 | 26.2122 |
|    70% | 28.5143 | 25.6930 | 26.8380 |  8.6128 |  8.5400 |  6.5027 |
|    80% |  8.8370 |  5.0570 |  6.9102 |  0.2565 |  1.2795 |  0.5853 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0813 |  0.0020 |
| ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 54.0813 | 56.5700 | 54.7773 | 21.6617 | 24.0912 | 22.7147 |
|    70% | 24.1095 | 23.5930 | 22.9925 |  6.6400 |  6.1165 |  4.4040 |
|    80% |  4.2360 |  2.4580 |  3.3653 |  0.5295 |  0.4777 |  0.1800 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0047 |  0.0000 |
| ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |
|    60% | 52.9763 | 54.9205 | 53.4872 | 21.2062 | 23.0325 | 20.7325 |
|    70% | 22.5190 | 20.2357 | 21.5467 |  3.8108 |  4.1210 |  2.7390 |
|    80% |  3.7915 |  2.0220 |  2.8915 |  0.2178 |  0.2122 |  0.0222 |
|    90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0000 |

Again, leveraging the full power of WoG pushes the tier set queues to the forefront. ST in particular has a commanding lead in every category, but TS and T aren’t far behind. Even T is eclipsing the S and SH queues by a fair margin in almost all categories. There’s no question that at 0% overheal, these WoG queues take the lead.

Conclusions

So we’ve waded through a lot of data, but we still haven’t addressed what it means in a practical sense. The shifting queues are obviously a success, and we’ll be seeing more of those later this week to try to get a more complete view of how they impact our gearing. The improvement from S to SH is fairly significant, reinforcing the idea that smart use of SotR will always trump “lazy” usage (i.e. macroing it to Crusader Strike).

Though unfortunately, it doesn’t seem that the haste gear set gives a larger benefit than the mastery gear set in this regard. Mel and I had both expected a more significant drop in the haste gear set, but it never materialized. This could just be a product of how high the uptime on SotR is already; having more uptime to shift around could be more valuable when you have less of it to work with in the first place. Maybe by the time you’re at 40%-50% uptime on SotR, there just may not be that much room for shifting that uptime around.

Or maybe we just under-estimated the interaction of the passive benefit of mastery with the shifting algorithm. A higher block chance may just cause the filter to apply that shifting algorithm more efficiently since it isn’t engaging as often. Or maybe it’s something else I haven’t thought of yet. It’s not entirely clear what interaction is the limiting factor here, but something is certainly doing it.

From this data you might conclude that Control/Mastery has cemented its claim as the dominant survivability gearing strategy for this tier of content. However, haste has one final ace up it’s sleeve, and later this week we’ll see exactly how that hand plays out.

Regarding the Tier 15 set bonus, I’ll echo my sentiment from last time – while the 0% overheal data makes the 2-piece look very impressive, we also need to keep in mind that it’s the least realistic of the simulations. If you’re mindlessly spamming WoG on yourself, you’re guaranteed to waste some of that with overhealing.

And it’s not just our overhealing that counts here. If you WoG yourself to full health right before your healer drops a large heal on you, all of that heal just turned into overheal. And we have to count that against us, because all the healing that WoG performed was irrelevant in that case. We’d have been returned to full health whether we used WoG or not, so we would have gotten more mileage out of a Shield of the Righteous (not to mention the loss of Bastion of Glory stacks).

So what is a realistic estimate of our overhealing with WoG? If we’re following the ST or TS rotations, I’d wager that it’s 50% or more. 20%-30% of it from your own overhealing, and another 20%-30% from overhealing you indirectly cause for your healers. You could probably do better than that if you’re running light on healers for an encounter, but I think that creates more risks than it eliminates. That situation leaves you with fewer backup sources of healing for when things go awry, and increases the time it takes before someone else can react and step in to help.

So under most conditions, I don’t think it’s worth weaving WoGs into your rotation for the sake of the set bonus. The situations where it does make sense to slip WoG in are the ones where it’s nearly guaranteed to not cause overheal – in other words, when we’re already fairly low on health. However, that’s generally a case where we would already be using WoG (often with banked Bastion of Glory stacks) even without the set bonus. In a bizarre situation where you are your only healer, such as soloing old raid content, I think the set bonus might become very attractive because you can guarantee you’ll be in the no-overhealing regime. But I don’t think it’s likely we’ll see that situation in regular old “bring-a-healer-along” raiding.

In short, I still don’t find the 2-piece compelling as a maintenance buff. The optimum usage is dictated more by WoG’s effectiveness than the value added by the extra block chance. The most effective way to make use of the set bonus seems to be to use WoG exactly like we do now: not as a proactive tool (like SotR), but as a reactive tool, an emergency heal for when things get dicey.

Posted in Tanking, Theck's Pounding Headaches, Theorycrafting, Uncategorized | Tagged , , , , , , , , , , , , , | 26 Comments

I can go make a blog in 2 minutes

Last week, a few people alerted me to a thread on the official WoW forums in which some players were arguing about the usefulness of AskMrRobot, and in particular its default stat weights.  As loyal readers, you probably already know that I developed those default stat weights.  My response in that forum thread was long and contained quite a bit of discussion about the thought processes that went into those stat weights, and it occurred to me that it would make for a good “quickie” blog post.

Much of this will look familiar to regular readers.  We’ve discussed smoothness at great length.  We’ve talked about raw TDR stat weights.  And we’ve talked about the difficulties of valuating Stamina, and how it’s often better at saving healer mana than TDR stats like dodge and parry are.  The only “new” part is the glimpse at how all of that influences the choice of default stat weights.

I wouldn’t normally post on a Sunday, but this is likely to be a busy week at Sacred Duty, so I wanted to get this up quickly.  Stay tuned for some reasonably large and important blog posts later in the week!

——————————————————————————————————–

More seriously: I don’t usually wade into the official forums, because the signal-to-noise ratio is pretty awful around here, and this thread is no exception.  That said, there’s some particularly pervasive and inaccurate noise being repeated here, so let’s stamp that out.

1. You will never need more stam than what comes on gear. You are not doing heroics this week. It is silly to have such a high default weight for stam. It is silly to gem solid cuts.

I completely disagree, for several reasons.  The first is that you don’t have the proper perspective to make that statement.  Looking at your armory, you’ve cleared a few heroic bosses in 5.0/5.1 content, and cleared all of the normal modes numerous times.  That means you are going into Throne of Thunder with above-average gear for the first few normal modes.  In other words, you may have more than enough stamina on your gear because you overgear the fights.

However, the average raider hasn’t cleared all of the 5.1 content.  They are going into ToT significantly undergeared for even the first few bosses.  And when you are undergeared, your absolute, 100% guaranteed, there-really-is-no-argument-to-be-had-here-so-don’t-even-try stat is STAMINA.  Get the health you need to survive long enough to receive heals.  Period. This is exactly the reason that hard-mode progression tanks stack Stamina early on – to meet the EH checks they run into when running content they significantly undergear.

I’ll note that if you had pulled the last few bosses of ToT in week one, you may have gotten a very different impression.  The first 5 or 6 do not significantly challenge EH, but the last few do.  Even in ~507ish ilvl gear, Lei Shen hits like a truck.  From a random Lei Shen 10N log:

[19:20:35.738] Lei Shen hits Yogurto 163283
[19:20:37.252] Lei Shen hits Yogurto 169082

170k every 1.5 seconds is a lot to deal with on a boss with a lot of movement.  This whole myth of “get enough health to survive 3 attacks and you’re fine” doesn’t cut it, because that’s not how most tank deaths work.  If you die in 2-3 hits, its because you failed a cooldown for something predictable.  What you’re more likely to do is die to a string of 5-6 hits, or 3-4 plus incidental damage or a special, during a period where your healing is interrupted.  And nothing guards against that better than stamina.

2. The best way to reduce stress on healers is by lowering incoming damage. Stamina does not lower incoming damage at all. You take more damage if you forgo tanking stats for stam. The term manasponge came about for a reason. It is not a term of endearment.

This is another falsehood that gets tossed about by inexperienced tanks.  The term “mana-sponge” stopped being relevant somewhere around Burning Crusade.  Yes, a tank stacking Stamina does take more damage than a tank stacking, say, mastery.  Does that make them a worse tank? I’d say that the answer is unequivocally “No.”

If your goal is taking the absolute least damage possible, you should be stacking avoidance.  Pound for pound, avoidance gives more “total damage reduction” (TDR) than any other stat.  You know what our absolute worst TDR stats are? Hit, expertise, and haste.

Yet looking at your armory, you seem to have reforged much of your dodge and parry into hit, expertise, and haste.  So we are confronted with a conundrum: either

1) you think that TDR is something tanks should seek, in which case you are reforging and gemming completely wrong and shouldn’t be giving advice.

Or

2) you don’t think that TDR is worth seeking, and instead gem for “smoothness” stats, but you’re telling people on the forums they should be seeking TDR stats anyway.  In which case you also shouldn’t be giving advice.

The only constant in those two statements is that you really, really shouldn’t be giving advice. :)

The fact is that TDR hasn’t been relevant since BC or Wrath, depending on who you ask.  Potentially very briefly at the beginning of Cataclysm, when healers were undergeared, but that quickly ended once they started acquiring even a little bit of normal-mode raid loot.  Healers simply do not run out of mana healing tanks nowadays, even in 25-man.  They run out of mana for all sorts of other reasons – excessive raid damage being the primary culprit – but if you take any half-decent healer and tell them their only job is to heal any half-decent tank, mana will never be an issue.

What kills tanks is not their healer running out of mana, but running out of time.  Spike damage is what kills tanks, and it’s what has been killing tanks since time immemorial.  Taking a few too many large hits in a row while your healer is distracted, stunned, moving, or what have you.  That is how tanks die.

If you look at most logs, it’s not hard to see the truth in either of these assertions.  Most healers overheal by 30% or more when they heal tanks.  That’s not because they have mana to waste, but because it’s hard to avoid doing so with all of the self-healing and cross-healing going on.  And more importantly, because they have to maintain some level of overhealing to combat spikes, because during a spike that extra throughput becomes immensely valuable, so much so that it’s worth overhealing by 30%-40% most of the time.  Because it means that extra 30%-40% throughput is there during a spike, when it matters.

And if we’ve accepted that spike damage is what’s relevant (well, maybe you haven’t, but I’m going to go out on a limb and assert that it is), then the question of stat priorities gets turned on its head.  All of the sudden, “reliable’ stats start to win out.  Having hit, expertise, and haste ensures higher SotR uptime and thus fewer/smaller spikes.  And what’s the most reliable stat of them all?  STAMINA.  it is there, always, all the time, preventing spikes.  Because having 10% more health makes every spike 10% smaller, and easier to heal.

It’s even worth noting that from a healer’s perspective, stamina is a mana-saving stat.  This talk of “mana sponges” suggests a fairly critical oversight in your thinking.   Healers are not robots or calculators, they’re people.  They heal based on a few factors, and one important one is reacting to changes of your health bar.  A larger health pool does a few things for them: it makes each attack a smaller proportion of that bar, which makes those hits feel less dangerous to the healer (because they are).  it also gives them more time to react, because they’re thinking in terms of percentages of your health bar, not hit points.

More importantly, it lets them plan more effectively.  If they know that the next hit is going to be a relatively smaller portion of your health bar, they cay comfortably start casting their slow heal, or allow that slow heal to finish if they’re mid-cast.  Doing that actually saves them mana in the long run, because they need to cast fewer of their quick, mana-inefficient “panic” heals.  This isn’t even conjecture, by the way – it’s pretty well-established healer theory.

Aside: There are actually a lot of parallels between healer theory and network queuing theory.  It’s one topic I rather enjoy discussing with a colleague of mine who is both a computer engineering professor and a priest healer.  Crazy fun stuff if you’re into that sort of thing.

3. Aggro is something you should never need to worry about. Vengeance does that job for you. If you lose threat to a non tank then its not a gear issue.

On this, at least, we agree.

4. While tank DPS mattering vs not mattering is an argument for another thread, “DPS” stats are most certainly important for a prot paladin. Hit, expertise, haste and mastery help with point 2 in reducing incoming damage more than even dodge or parry. Stamina does not ever help reduce incoming damage. (Keep your bloody DK comments to yourselves)

False.  Flat-out false.  Hit, expertise, haste, and mastery are ALL inferior to avoidance in terms of reducing damage taken.  I have tested this extensively, as have others.  If you’re suggesting all of that work is in error, I encourage you to present your thoroughly-detailed, carefully-tested mathematical models to the community for peer review.  After all, I have, it’s only fair that you do the same.

Stop telling people they need “enough” stam to not get two shot. They already have it.

Stop telling people they already have “enough,” because frankly, they don’t.

Seriously, consider this “average” tank you keep referring to.  First of all, let’s clear up some misconceptions.

1) The average tank is relatively undergeared for normal raid content.  Hence, they are already in a position where stamina is probably (if not definitely) their best stat.  Running LFR doesn’t count, you could run LFR in greens gemmed with spirit and still perform decently well if you had half a clue.

2) Unfortunately, the average tank doesn’t have a clue.  They don’t follow a tight rotation.  They stumble through it, push back holy power generators, and have large amounts of “real-life” latency because they aren’t hitting a spell immediately upon the GCD ending.  They don’t time their SotR according to the boss’ swing timer.  They don’t pool holy power so that they can double-up on SotR during a dangerous spike.  In many cases, they macro SotR to Crusader Strike.  I’ve even seen tanks go a full 20+ seconds hitting NOTHING BUT CRUSADER STRIKE (and, of course, their SotR which was macro’d to Crusader Strike).

The average tank plays considerably below their theoretical potential based on gear.

In short, the average tank is actually pretty terrible.

Now consider that this is the tank AskMrRobot is trying to help.  You cannot rely on them running a proper rotation, so trying to tell them to stack haste and mastery is a waste – they’re not timing SotR to cover boss swings, and in some cases, they’re not getting maximum uptime on SotR.  Giving them more haste often just creates more empty space rather than more ability usage, because they’re used to a 1.5-second GCD from playing other characters and just stick with that inner metronome.

In other words, buffing active mitigation stats for a tank that uses Active Mitigation poorly is not efficient.

What is efficient? Passive mitigation.  Avoidance.  STAMINA.  And to a lesser extent Mastery, thanks to the block component.  These are all stats that are always on, helping the weak tank survive through content they are undergeared (and often under-skilled) for.  When you try and optimize for a player that is guaranteed to screw up a lot, you give them the stats they cannot screw up.

———————————————————-

This was a long post, but if nothing else, here’s what you should take away from it.  You may find that the baseline stats on AMR do not suit you very well.  In most cases, that means one of two things:

1) You’re not running 25-man content, which generally stresses EH more than 10-man content.  I’m not making a 10 vs 25 difficulty argument here, this is simple facts based on tuning.  10-man bosses don’t melee as hard as 25-man bosses because of healer throughput considerations, and smaller hits generally make EH less important.

OR

2) You’re already at a skill or gear level that is above-average.  This may come as a shock to you, because everyone tends to think they’re the “average” tank.  I even think so sometimes, until I look at logs or progression rates.  As such, the “average” settings may not work as well for you.  However, you should also be intelligent and experienced enough to realize this fact, and adjust the stat weights to suit your needs.

I actually heavily de-emphasized stamina in the current set of stat weights compared to what I gave AMR in 5.0/5.1 based on feedback from 10-man raiders.  While I still think that stamina is a GREAT stat in all formats (seriously, I think that even in 10N, more stamina is rarely a bad thing, it’s just often not as useful as more haste thanks to the DPS contribution – but STAM is still the better survivability stat), I recognize that a lot of 10-man players really don’t care for stam stacking that much.  So this time around, the stat weights were chosen such that it favored hybrid haste/stam or exp/stam gems in nearly every non-blue slot.

Lowering the stam weight from 1.5 to 1.3 should shift it into an all-out haste (or mastery) mode that would be appropriate for 10N tanks which are overgearing content or feel comfortable with their current stam level.  I don’t develop AMR, so I can’t modify it to have a stam “cap,” but doing so wouldn’t be a bad option either.  Another possibility is to offer a 10/25 toggle or a different set of weights for 10 vs. 25, but again, that’s up to the people who make the tool.  I just do the math.

Also note: I’m not affiliated with AMR, even if I find their tool incredibly useful in my own work.  I complain about it a lot too, because I think there are areas it could be better.  But I generally make suggestions to them about how to improve it rather than taking a giant dump on the tool on forums, because the latter isn’t very productive.  As Wrathblood said, it’s like hating on a slide rule.

Posted in Tanking, Theck's Pounding Headaches, Theorycrafting | Tagged , , , , , , , | 56 Comments

Theorycrafting 101: Markov Chains

A few weeks ago, I was asked on Twitter whether I could provide the proof of the “proc buff uptime formula.” For those that aren’t aware, there’s a popular formula for calculating the uptime $U$ of a proc-based buff effect given the buff duration $D$, proc chance $p$, and proc trigger interval $\Delta t$. That formula is:

$\large U = 1-(1-p)^N,$

where $N=D/\Delta t$ is the number of proc triggers that occur during the duration of the buff.

In situations where $N$ becomes very large (and $p$ small), it is common to approximate this with Poisson statistics, giving

$\large U \approx 1-e^{-pN}.$

I had assumed that the derivation for this was easily available. After all, the result is widely used in theorycrafting circles. But some googling didn’t turn up a formal proof. The closest I found was a rough summary of the procedure in, of all places, a wowhead comment from Wrath of the Lich King.

Since the derivation is not overly complicated, I wrote it up formally in the appendix of this pdf. However, it seems like it would be convenient to have this written up in an easily-linkable form, so I’m going to reprise the derivation here.

Assumptions

First, we need to be clear about what it is we’re modeling. We’re considering a proc-based buff, such as what’s granted by many trinkets or enchants. We’ll assume that we have proc triggers occurring at equal intervals of $\Delta t$, with a proc chance per trigger of $p$. Consequently, the probability of an event not generating a proc is $q=1-p$. A proc event grants a buff of duration $D$, and a proc that occurs during an existing buff simply refreshes the buff to its full duration. We’re assuming that the granted buff does not itself modify $p$ for now; at the end of the post I’ll demonstrate how the derivations is modified in that case.

Markov Chains

We start by assuming the system can be modeled by a time-homogenous Markov Chain. This means that the process is random and memoryless, or that the time-evolution of the system depends only on the current state (i.e. no hysteresis effects). It should be noted that these are all very good assumptions, as the proc chance usually has no dependence on prior or future states of the system.

Since we’ve divided time up into equal blocks of size $\Delta t$, and the effect has duration $D$, this uniquely defines the states of the system. We have $n=1+D/\Delta t$ possible states, each one having a specific duration remaining on the granted buff. For state $x_i$, the time remaining is $d=D-(i-1)\Delta t$. For example, if the buff duration is $D=15$ seconds, then we have states:

$\large x_1 = \text{15 sec remaining on buff}$
$\large x_2 = 15-\Delta t\text{ sec remaining on buff}$
$\large x_3 = 15-2\Delta t\text{ sec remaining on buff}$
$\large \vdots$
$\large x_{n-1} = \Delta t\text{ sec remaining on buff}$
$\large x_n = \text{0 sec remaining on buff}$

In a Markovian system, the probability of a transition between states $x_i$ and $x_j$ is independent of previous states of the system, thus it is constant. In other words, it only matters that you are in state $x_i$, not how you got there. Consequently, if you find yourself in state $x_i$ you have a unique and fixed probability of transitioning to any other state $x_j$. Let us define the probability of transitioning from state $j$ to state $i$ as $P_{ij}$. We can then write the $n \times n$ transition matrix describing this Markov process:

$\mathbf{P} = \left[ \begin{array}{cccc}
P_{11} & P_{12} & \cdots & P_{1n} \\
P_{21} & P_{22} & \cdots & P_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
P_{n1} & P_{n2} & \cdots & P_{nn}
\end{array} \right]\large$

To find the steady-state solutions, one simply has to solve the equation

$\large \mathbf{P}\mathbf{X}=\mathbf{X} \hskip5in \text{(1)}$

where $\mathbf{X}$ is the vector of possible states $(x_1, x_2,…,x_n)$.

Solving the system

There are a number of ways to solve this system. For example one could recognize that for an arbitrary starting vector $\mathbf{b}$, the steady state solution is $\mathbf{X=S= P}^\infty {\bf b}$. Since $\mathbf{b}$ is arbitrary, if a steady state solution exists for matrix $\mathbf{P}$ the matrix $\mathbf{P}^\infty$ must be a rank-one matrix whose columns are the steady-state distribution $\mathbf{S}$. Or in other words,

$\large \displaystyle \lim_{k \rightarrow \infty} {\bf P}^k = {\bf S1}$

where $\mathbf{1}$ is the $1\times n$ row vector $[1,1,1, ..., 1]$. So one could numerically compute the solution by simply calculating $\mathbf{P}^k$ for very large $k$. This technique is particularly useful for very large state spaces.

However, if the matrix is fairly sparse, it is often possible to find an analytic solution. This happens to be the case for the simple proc effect we’re considering. For any choice of initial state $x_i$, there is a probability $p$ that the system transitions to state $x_1$ – i.e., that the effect procs and the duration of the buff is set to $D$. The only other transition out of state $x_i$ is to state $x_{i+1}$, meaning that the effect did not proc and the duration of the buff has been reduced by $\Delta t$. From this, we can define a subset of the transition probabilities $P_{ij}$:

$\large P_{1j} = p$
$\large P_{j+1,j} = q$

(remember that $P_{ij}$ represents the probability from state $j$ to state $i$). There is only one other nonzero transition, which is the possibility that the system is in state $x_n$ and remains in state $x_n$ (meaning the buff was not active and a proc did not occur, leaving the state unchanged). This, of course, also happens with probability $q$, such that $P_{nn}=q$. All other elements of the transiton matrix are zero, giving it the following form:

$\large \mathbf{P} = \left[ \begin{array}{ccccccc}
p & p & p & \cdots & p & p & p\\
q & 0 & 0 & \cdots & 0 & 0 & 0\\
0 & q & 0 & \cdots & 0 & 0 & 0 \\
0 & 0 & q & \cdots & 0 & 0 & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots\\
0 & 0 & 0 & \cdots & q & 0 & 0 \\
0 & 0 & 0 & \cdots & 0 & q & q
\end{array} \right]$

For a more concrete example, let’s assume that $\Delta t=3$~seconds and $D=15$~seconds, which yields the following $6 \times 6$ matrix $\mathbf{P}_6$:

$\large \mathbf{P}_6 = \left[ \begin{array}{cccccc}
p & p & p & p & p & p\\
q & 0 & 0 & 0 & 0 & 0\\
0 & q & 0 & 0 & 0 & 0 \\
0 & 0 & q & 0 & 0 & 0 \\
0 & 0 & 0 & q & 0 & 0 \\
0 & 0 & 0 & 0 & q & q
\end{array} \right]$

To solve equation (1), which is a simple eigenvector equation with an eigenvalue $\lambda=1$, we subtract $\mathbf{X}$ from both sides:

$\large \left ( \mathbf{P}-\mathbf{I}_n \right ) \mathbf{X}=0$

where $\mathbf{I}_n$ is the identity matrix of dimension $n$. This gives us the following matrix:

$\large \mathbf{P}-\mathbf{I}_n =
\begin{bmatrix}
p-1 & p & p & \cdots & p & p & p \\
q & -1 & 0 & \cdots & 0 & 0 & 0\\
0 & q & -1 & \cdots & 0 & 0 & 0 \\
0 & 0 & q & \cdots & 0 & 0 & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
0 & 0 & 0 & \cdots & q & -1 & 0 \\
0 & 0 & 0 & \cdots & 0 & q & q-1
\end{bmatrix}$

or, for our special case of $\Delta t=3$~s, we have:

$\large \mathbf{P}_6-\mathbf{I}_6 =
\begin{bmatrix}
p-1 & p & p & p & p & p\\
q & -1 & 0 & 0 & 0 & 0\\
0 & q & -1 & 0 & 0 & 0 \\
0 & 0 & q & -1 & 0 & 0 \\
0 & 0 & 0 & q & -1 & 0 \\
0 & 0 & 0 & 0 & q & q-1
\end{bmatrix}$

For this equation to have solutions other than the trivial solution $\mathbf{X}=0$, the matrix $\mathbf{P}-\mathbf{I}_n$ must have a nullity greater than zero (i.e. at least one row must be linearly dependent upon the others). It is a trivial exercise to show that this is indeed the case for this matrix.

Since this matrix is very sparse, we can simply solve the system of equations given to us by $\left ( \bf{P}-\bf{I}_n \right ) \bf{X}=0$ to find the steady-state solutions:

$\large 0 = (p-1)x_1 + px_2 + px_3 + … + px_n$
$\large 0 = qx_1 – x_2$
$\large 0 = qx_2 – x_3$
$\large \vdots$
$\large 0 = qx_{n-2} – x_{n-1}$
$\large 0 = qx_{n-1} + (q-1)x_n$

The first equation can be re-written as:

$\displaystyle \large x_1 = p\sum_{i=1}^{n} x_i = p$

where we have invoked the normalization condition of the vector $\mathbf{X}$ (the probabilities of being in any given state must sum to one).

From here it is quite simple to find the rest of the steady-state probabilities. We plug $x_1=p$ into $qx_1=x_2$ to find $x_2=pq$, plug that into $x3=qx_2$ to find $x_3=pq^2$, and so on to get $x_{n-1}=pq^{n-2}$. The last equation deviates from the pattern slightly, and plugging in our expression for $x_{n-1}$ gives us

$\begin{align}
\large x_n &=\left ( \frac{q}{1-q}\right ) \\
x_{n-1} &= \left ( \frac{q}{p} \right ) \\
x_{n-1} &= \left ( \frac{q}{p} \right ) pq^{n-2} \\
x_n &= q^{n-1}
\end{align}$

Thus, our complete steady-state solution of the system is

$\large \mathbf{X} = (x_1, x_2, …, x_n) = (p, pq, pq^2, pq^3, …, pq^{n-2}, q^{n-1})$

Note that when the system is in any of the states $x_1$ to $x_{n-1}$, the buff is active. It is only while in state $x_n$ that the buff is not active. Thus, the downtime of the buff is equal to the probability that we are in state $x_n$, or $q^{n-1}$. We also note here that we have $N=n-1$ chances to refresh the buff during the duration $D$, so we could equivalently write this downtime as $q^N$. The uptime is formally the sum of the probabilities corresponding to the other states:

$\displaystyle \large U=\sum_{i-1}^{n-1}x_i$

But invoking the normalization condition $\displaystyle \sum_{i=1}^n x_i = 1$ once more, we can simplify this to

$\large U=1-x_n = 1-q^N$

Which is the often-quoted expression we were after.

We were conveniently vague in our definition of the parameter $\Delta t$. In general, it is chosen according to the proc trigger of interest, such that $N$ is clearly defined. In cases where proc triggers are unevenly spaced (such as is common with RPPM effects), we can still get good agreement by choosing a $\Delta t$ that is small compared to the mean interval between proc events, with $p$ adjusted accordingly.

Procs that modify $p$

We stated earlier that we were making the assumption that the buff being granted by the effect did not modify the proc chance $p$. However, there are a number of cases where that does happen, and it would be nice to have an expression to model those uptimes. To do that, we start with the same system as before, with base proc chance $p$, buff duration $D$, and trigger interval $\Delta t$. However, in this case we allow the buff to modify the proc chance, raising it to $p+dp$ while the buff is active.

The problem proceeds as before, with the same state space definition $\mathbf{X}$. However, the transition matrix must be adjusted slightly. It now has the form:

$\mathbf{P} = \left[ \begin{array}{ccccccc}
p+dp & p+dp & p+dp & \cdots & p+dp & p+dp & p\\
q-dp & 0 & 0 & \cdots & 0 & 0 & 0\\
0 & q-dp & 0 & \cdots & 0 & 0 & 0 \\
0 & 0 & q-dp & \cdots & 0 & 0 & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots\\
0 & 0 & 0 & \cdots & q-dp & 0 & 0 \\
0 & 0 & 0 & \cdots & 0 & q-dp & q
\end{array} \right]$

which accurately represents the increase in proc rate for all states with an active buff. We again solve

$\mathbf{PX}=\mathbf{X}$

which gives us the following system of equations:

$\large x_1 = (p+dp)x_1 + (p+dp)x_2 + (p+dp)x_3 + … + (p+dp)x_{n-1} + px_n$
$\large x_2 = (q-dp)x_1$
$\large x_3 = (q-dp)x_2$
$\large ~~ \vdots$
$\large x_{n-1} (q-dp)x_{n-2}$
$\large \displaystyle x_n = \frac{q-dp}{1-q}x_{n-1}$

The first and last equations are each unique, while the middle equations all have the form $x_j=(q-dp)x_{j-1}$ for $2\leq j\leq (n-1)$. Taking into account all $n-2$ of these equations, we can write

$\large x_{n-1}=(q-dp)^{n-2}x_1$

and substitution into the last equation reveals that

$\displaystyle \large x_n=\frac{(q-dp)^{n-1}}{1-q}x_1 = \frac{(q-p)^N}{p}x_1 $

The first equation can be written more simply in summation form, and then simplified with state normalization rules:

$\large \displaystyle x_1 = p\sum_{i=1}^{n}x_i + dp\sum_{i=1}^{n-1}x_i$
$\large x_1 = p + dp(1-x_n)$
$\large x_1 = p + dp – dp x_n$

We then substitute our expression for $x_n$ and perform some simple algebra to get $x_1$:

$\large \displaystyle x_1 = p+dp-\frac{dp(q-dp)^N}{p}x_1$

$\large \displaystyle x_1 \left [ 1+\frac{dp(q-dp)^N}{p} \right ] = p+dp$

$\large \displaystyle x_1 =\frac{p(p+dp)}{p+dp(q-dp)^N}$

and therefore the expression for $x_n$ is

$\large \displaystyle x_n = \frac{(q-p)^N}{p}x_1$

$\large \displaystyle x_n = \frac{(q-p)^N}{p}\frac{p(p+dp)}{p+dp(q-dp)^N}$

$\large \displaystyle x_n = \frac{(p+dp)(q-dp)^N}{p+dp(q-dp)^N}$

It can be shown that, when performing the calculation this way, the steady-state solution vector is automatically normalized. We leave this as an exercise for the reader, because we’re evil like that (or check the pdf version). However, once we’re satisfied that $\mathbf{X}$ is normalized, our value for $x_n$ is the appropriate steady-state probability we need.

The uptime is $U=1-x_n$ as before, which is simply

$\large \displaystyle U=1-\frac{(p+dp)(q-dp)^N}{p+dp(q-dp)^N}$

It should be noted that as $dp\to 0$, $U\to 1-q^N$ as before.

Posted in Theck's Pounding Headaches, Theorycrafting | Tagged , , , , , | 17 Comments

Patch 5.2 WeakAuras Configurations

It’s been a few months since I last posted about my WeakAuras strings for tanking.  Nothing seems to have broken in 5.2, so if you’re still using the old ones from 5.1 they should continue to function just fine.  However, I recently added a neat feature that tracks Sacred Shield, so I figured it was worth an update.

Sacred Shield‘s absorption value is set when the 30-second buff is cast, and it doesn’t update dynamically as your Vengeance fluctuates.  As a result, sometimes it pays to recast Sacred Shield if you’ve gained a large amount of Vengeance since the last cast, even if it still has plenty of time left.  And of course the opposite can happen: maybe you just refreshed Sacred Shield at a very high level of Vengeance, and you don’t want to accidentally overwrite it with a lower value (and thus, you might leave a GCD empty rather than using it to recast Sacred Shield again).

Unfortunately, the default UI doesn’t give you any hints as to which situation you’re in.   You could mouse over the buff, read the absorb value off of the tooltip, and then back-calculate in your head to figure out how much Vengeance that corresponds to… or you might be human (like me) and can’t possibly pull that off on-the-fly while tanking.

Solution: let WeakAuras do the work for you.  I already had an aura that shows you how much Vengeance you have, courtesy of Sunnier over at Sunnier’s Art of War.  What I’ve added is a set of three auras that shows you how much Vengeance you had when you cast the Sacred Shield that’s currently active on you, so you can decide whether or not it’s worth recasting it.  One aura is just a “helper” that stores the Vengeance value every time you cast Sacred Shield, the other two display that value in a color-coded fashion.  The number will show up in green if Sacred Shield has more “stored” Vengeance than you have (and thus you should not recast), or red if the Shield was cast at a lower Vengeance value (and thus you would get larger absorbs by recasting).

It looks something like this; the numbers are to the left of the cooldown row, right below the white “current Vengeance” number.  You can see them change from green to red as my Vengeance level changes.

Since WordPress has been finicky about text boxes for such large strings, I’ve decided to just host everything at pastebin.  Here are direct links to the two WeakAuras strings used in my tanking UI:

Theck – Prot – Priority Row

Theck – Prot – Cooldowns Row

People frequently ask me for my auras for other classes, so now I’m hosting them all on Pastebin as well.  To get them, just peruse my pastebin account and grab what you like:

http://pastebin.com/u/Theck

As of right now, it contains auras for the following class/spec combinations:

Death Knight – Any (used by both specs)
Death Knight – Blood
Death Knight – Unholy
Druid – Guardian
Hunter – Any (used by all hunter specs)
Hunter – Beast Mastery (L85)
Hunter – Marskman
Hunter – Survival
Mage – Any (L85)
Mage – Arcane (L85)
Mage – Fire (L85)
Monk – Brewmaster
Monk – Chi (used by both specs)
Monk – Stagger (used by Brewmaster)
Monk – Windwalker
Priest – Shadow (L60)
Rogue – Any (used by both specs)
Rogue – Combat (L85)
Rogue – Subtlety (L85)
Paladin – Retribution (just cooldowns, I use clcRet for rotation)
Paladin – Protection – Cooldowns
Paladin – Protection – Priority
Warlock – Any (used by all three specs)
Warlock – Affliction
Warlock – Demonology
Warrior – Any (used by all three specs)
Warrior – Arms (L85)
Warrior – Fury
Warrior – Protection
Amber-Shaper Unsok Vehicle HUD

Pastebin has a maximum of 20 uploads per 24 hours, so the ones that don’t have links will be uploaded as soon as my 24-hour embargo is up (likely later tonight).  Note that in many cases, these are “leftover” auras from patch 5.0 at level 85, and haven’t been updated to account for changes since then (and the Shadow Priest setup is for the priest I’m leveling now).  However, they’ll likely still be useful as a base for your own tinkering.

The Retribution setup is just a couple of cooldowns, because I use clcRet to handle the priority rather than doing it through WeakAuras.  Sorry to disappoint, but if you really want to build a full Ret UI out of this you can just copy the protection priority queue and replace the spell names with Templar’s Verdict, Exorcism, etc.

The Affliction Warlock HUD contains DoT bars that are color-coded based on Pandemic status – a red background means you’ll lose ticks if you recast.  That’s easier to show than explain, so here’s a video:

While the Affliction setup is pretty solid, the Demonology one is a little rough around the edges.  I should probably fix it up, but it just hasn’t been a high priority with how little time I’ve had for alt raiding this expansion (and when I do, it’s usually Affliction anyway).

I’ve uploaded videos of some of the other class/spec setups to my youtube account this in case you want a preview.

One final note: the Monk Chi and Stagger auras were both shamelessly stolen from Sunnier, who’s got an amazing set of auras for Monks.  I’ve adapted them slightly to fit with my standard HUD configuration, but she gets all the credit for making them awesome.

Posted in Tanking, Theck's Pounding Headaches, UI | Tagged , , , , , | 30 Comments

5.2 Protection Links and Q&A

Since there are a few hours yet before we can all set foot on the Isle of Thunder, it seems like a good time to offer a brief roundup of updated information for 5.2.  Here are a handful of useful links and commentary on how your life will change post-patch:

5.2 Smoothing Simulations – Last week’s post discussing how the different gearing strategies are affected by the change to Grand Crusader.  Short version: Control/Haste and Control/Mastery are both strong, either works.  Avoidance-based strategies aren’t that far behind, though, so don’t feel obligated to turn down pieces with avoidance if it’s a reasonable ilvl upgrade.

5.2 MATLAB DPS Simulations – Updated today with results that are current for T15 gear and mechanics.  Not a whole lot has changed, but if you’re into min/maxing your DPS choices, the data’s all there for you.  DPS stat weight simulations still coming, literally running as we speak (type?).

WoWInsider’s 5.2 tanking gear list – Rhidach has a nice, concise list of the tanking gear available in 5.2.  The only omission I noticed was the (arguably) best-in-slot chest, which is the Retribution tier chest.

5.2 Plate tank gear list – Kerriodos of <Odyssey> has put together a detailed gear list in spreadsheet form, if you prefer that format.

Elitist Jerks Protection Paladin Thread – Wrathblood has updated his all-in-one guide for 5.2, and contains his commentary on the changes and the results of current theorycrafting.

TankSpot’s Protection Paladin Guide – It looks like Fetzie has updated his guide as well.  It’s a fairly comprehensive (if less numerical) of the protection spec as a whole.

Smoothing Stat Weights – I posted some suggested stat weights for use in AskMrRobot that model the gearing strategies covered in my 5.2 Smoothing Simulations.  Their default values are still pretty good, but still based heavily on the “avoidance is bad” 5.1 paradigm.  These new ones should be a little more robust and less stam-focused.

Official 5.2 Patch Notes – In case you’re not up-to-date on the changes.

Q & A

In addition, I’ll try and check in every 15-20 minutes to answer any questions you have and add them to the bottom of this post.  Feel free to post any paladin-relevant questions you might have in the comments here, or tweet them at me @TheckPhD.

Posted in Tanking, Theck's Pounding Headaches | Tagged , , , | 27 Comments

Patch 5.2 Tankadin Smoothness Simulations

With 5.2 around the corner, we can feel  pretty certain that the version of Grand Crusader on the PTR is what we’ll be receiving in the patch:

Grand Crusader
Requires Paladin (Protection)
Requires level 50
When you dodge or parry a melee attack, or hit with Crusader Strike or Hammer of the Righteous, you have a 12% chance of refreshing the cooldown on your next Avenger’s Shield and causing it to generate a charge of Holy Power if used within 6 sec.

We’ve already seen that with the 5.0/5.1 version, which is 20% chance on CS/HotR with no avoidance component, our gearing priorities slanted strongly towards control stats: hit, expertise, haste, and mastery.  This ends up being reinforced by a subtle synergy between the control stats – a feedback loop of sorts.  Getting more haste makes mastery, hit, and expertise better, getting more mastery makes haste, hit, and expertise better, and so on.  Subsequently, avoidance just becomes weaker and weaker, to the point that many of us treated it as an afterthought.  Worse yet, in many cases we actively dodged picking up avoidance gear.

We also saw that an earlier PTR version which gave us 0% chance to proc on CS/HotR and 30% chance to proc on avoidance shifted the goalposts somewhat.  Triggering the proc purely from avoidance diminished the value of haste, mastery, hit, and expertise, though not equally.  Haste took the largest hit, and the Control/Mastery set started showing clear dominance over the Control/Haste gear set.  In addition, avoidance started performing pretty well in terms of raw statistics.  There was very little difference in the representation of damage spikes between a Mastery/Avoidance build and a Control/Mastery build.

It was a very interesting region of parameter space, because in most cases you could gear just about however you wanted and still be roughly as effective from a survival standpoint.  I think that for talented tanks, the extra control afforded by Control/Haste would probably still have been their optimal build, because a talented tank shifts their SotR casts forward or backward based on current health levels – something the sim isn’t sophisticated enough to model.  But for your average Joe Tankadin, avoidance gear would’ve been perfectly reasonable.

But it looks like we’ll be receiving this bipartite solution, triggering on both CS/HotR and avoidance at 12% each.  For short, we could call this the “12%/12%” version of Grand Crusader, as compared to the earlier “20%/0%” and “0%/30%” versions.  And we expect that this version will shift some of the mitigation value back out of avoidance (and back into haste).  The only question that remains is exactly how much of an effect it will have.

Luckily, these are the sorts of questions I’m good at.

However, before we fire up the Matlaberator, there’s one more complication we want to deal with.  With a new patch comes new gear, and that may have unforeseen effects on the results.  Whereas in ilvl 496 gear, we were pretty starved for rating after reaching hit and expertise caps, raising the bar to ilvl 522 gives us plenty of extra rating to play with.  It’s entirely possible that all that excess rating will push us into new regions of parameter space.  So to make sure we’re going to be getting results we believe in, we need to update the gear sets we’re using.

Gear sets

The table below contains the stats for the gear sets I’m using this time around.  Each set has 65k armor, 15k strength, and 24150 rating to distribute amongst the secondary stats.  This is roughly equivalent to an average equipped ilvl of 522.

|    Set: |  C/Ha |  C/Ma |  C/Av | C/Bal |    Ha | Avoid | Av/Mas | Mas/Av |
|     Str | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 |  15000 |  15000 |
|   Parry |  1500 |  1500 |  7500 |  4125 |  1500 | 10825 |   7717 |   4000 |
|   Dodge |  1500 |  1500 |  7500 |  4125 |  1500 | 10825 |   7717 |   4000 |
| Mastery |  1500 | 13500 |  1500 |  4125 |  1500 |  1500 |   7716 |  15150 |
|     Hit |  2550 |  2550 |  2550 |  2550 |   500 |   500 |    500 |    500 |
|     Exp |  5100 |  5100 |  5100 |  5100 |   500 |   500 |    500 |    500 |
|   Haste | 12000 |     0 |     0 |  4125 | 18650 |     0 |      0 |      0 |

In previous posts, I maintained a minimum amount of dodge and parry for each gear set to make them more “realistic,” because in practice you often have to make do with a few sub-optimal pieces.  I received a bit of feedback that these minimums were too constraining, partly because players were accumulating true “best-in-slot” sets with nearly zero avoidance, and partly because people were interested in seeing exactly what happened in those extreme cases.  So this time around, I’ve relaxed those constraints significantly.  We enforce a minimum of 1500 dodge, parry, and mastery rating, and only a minimum of 500 hit and expertise rating.  While these keep us from reaching the far extremes, we still have 18650 rating to allocate at will, which is quite a bit – more, in fact, than we had total in the 5.1 simulations.

Most of the gear sets are unchanged in concept.  We still have the standard Control/Haste, Control/Mastery, and Control/Avoidance sets.  I’ve kept Control/Balance, but dropped the Control/Balance variant that was just under hit and expertise cap.  We’ve been over those results before, and it was clear that it offered nothing we didn’t already get by comparing the other gear sets.  In its place, I’ve inserted a “Haste” set that sacrifices all but the minimum hit and expertise amounts in favor of moar haste!  The Avoidance, Avoidance/Mastery, and Mastery/Avoidance sets are more or less allocated the same way as before.

Simulation

This is still using the standard Monte-Carlo code, updated with the 5.2 mechanics.  Just as last time, here’s the copy/paste summary of how the simulation works:

To better understand the data below, here’s a rough overview of how it’s generated: I run a Monte-Carlo sim that simulates 10k minutes of combat (think Simcraft, but paladin-specific and more limited in scope), making all combat rolls and logging all damage events.  I take the resulting string of attacks (something like “1, 0, 0.7, 1, 0, 0, …” where 0 is an avoid (no damage), 1 is a full hit, 0.7 is a block, and so on) and do some calculations on it.  I calculate the average damage intake normalized to 100% possible throughput (i.e. “1, 1, 1, 1, 1, …”), and report that in the “mean” row, representing mean damage intake (lower is better, represents better TDR).  “std” is just the standard deviation of that mean as averaged over 5 attacks.  “S%” is SotR uptime.

The rest of the rows are smoothing data for strings of N attacks.  For now, let’s just consider the first gear column (C/Ha).  I take the damage event sequence and perform a moving average on it (i.e. an N-attack moving average).  I then calculate how many of those N-attack averages exceed a certain threshold of maximum throughput.  So for example, if we look at a 3-attack moving average, the “70%” row tells me how many of those 3-attack averages exceed 70% of the maximum throughput.  Max throughput for 3 attacks is “1, 1, 1″ or 3 normalized damage, so the 70% row tells me how many exceed 2.1 damage.  And so on for 80% and 90%.  Note that they’re cumulative, so if 5% of attacks exceed 90% max throughput those attacks are also being counted in the 80% and 70% rows (thus, if 17% of attacks exceed 80% max throughput, the percentage between 80% and 90% is 17%-5%=12%).  I should add that the repeatability on these simulations is quite good thanks to the long integration time – results usually fluctuate by less than +/- 0.1% (absolute, i.e. 5% +/- 0.1%).

I do this for a bunch of different gear sets, i.e. “C/Ha” for Control/Haste, etc.  The first table lists all of the gear configurations so you get a rough idea of what they look like.  They’re roughly equivalent to stats in ilvl 496 gear.

The code can be found in the matlabadin repository, as usual.  The two files in particular are pally_mc.m and pally_mc_smooth.m.

Data

There is one change here in terms of data presentation.  I’ve found that it was becoming more and more interesting to consider the 60% and 70% thresholds while comparing the different gear sets, so I modified the code to spit out those percentages as well.  Keep in mind, however, that these stats are not always the most relevant measure.  For example, you’re unlikely to care much about the number of attacks that exceed 60% throughput for a string of 2 attacks, because that will be a fairly significant portion of them (you basically need to avoid one of the two attacks or cover both with some combination of blocks and SotR to be below 60%).  On the other hand, if a 5-attack string exceeding 80% throughput is dangerous, a 6- or 7-attack string exceeding 70% or 60% might be dangerous too.

With that out of the way, let’s have at the data:

| Set: |    C/Ha |    C/Ma |    C/Av |   C/Bal |      Ha |   Avoid |  Av/Mas |  Mas/Av |
|   S% |  0.5224 |  0.4106 |  0.4191 |  0.4528 |  0.4990 |  0.3664 |  0.3632 |  0.3577 |
| mean |  0.6013 |  0.5410 |  0.5333 |  0.5559 |  0.6082 |  0.4946 |  0.5036 |  0.5158 |
|  std |  0.1478 |  0.1453 |  0.1759 |  0.1611 |  0.1523 |  0.1879 |  0.1771 |  0.1650 |
| ---- |  ------ |   --- 2 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 46.4365 | 42.2245 | 36.0532 | 42.0223 | 46.8495 | 30.6360 | 32.6615 | 38.9607 |
|  70% | 40.7703 | 21.9045 | 32.3510 | 32.0562 | 41.5132 | 27.8290 | 27.5790 | 22.6745 |
|  80% | 14.6537 | 21.9045 | 16.8478 | 17.5670 | 17.2325 | 16.7553 | 19.2880 | 22.6745 |
|  90% |  9.8918 | 10.2063 | 11.3503 | 10.7805 | 11.6783 | 11.2970 | 10.6098 | 10.0570 |
| ---- |  ------ |   --- 3 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 53.8772 | 32.5935 | 39.5635 | 45.3188 | 54.4480 | 34.0340 | 35.6205 | 31.5645 |
|  70% | 37.0875 | 18.1815 | 24.6943 | 28.7108 | 37.0938 | 18.9820 | 17.2312 | 17.7622 |
|  80% | 15.1958 |  7.4453 | 13.2320 | 12.3843 | 16.6545 | 11.3433 | 11.0848 |  8.8108 |
|  90% |  1.2962 |  2.7432 |  3.2145 |  2.6515 |  3.1935 |  3.6222 |  3.2912 |  3.0520 |
| ---- |  ------ |   --- 4 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 53.9435 | 33.9070 | 39.4125 | 42.8023 | 54.8250 | 32.6215 | 33.1535 | 30.3133 |
|  70% | 32.4230 | 12.4927 | 21.3595 | 25.8540 | 32.6262 | 17.0912 | 17.2385 | 13.6712 |
|  80% |  3.3830 |  5.2843 |  6.2967 |  6.5102 |  6.9973 |  5.6180 |  5.2748 |  6.7035 |
|  90% |  0.0000 |  1.2263 |  0.9175 |  0.6537 |  1.4930 |  1.9408 |  2.3090 |  2.7103 |
| ---- |  ------ |   --- 5 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 55.5823 | 39.0590 | 40.1595 | 42.7240 | 56.8680 | 33.0050 | 30.1425 | 34.5108 |
|  70% | 28.7618 | 10.5665 | 19.3762 | 22.4620 | 30.4220 | 15.4128 | 13.3293 | 11.5990 |
|  80% |  8.9097 |  1.4918 |  7.0112 |  5.3835 | 10.8432 |  4.9352 |  2.7422 |  3.4403 |
|  90% |  0.0000 |  0.0000 |  0.5200 |  0.3295 |  1.0175 |  1.0540 |  0.6695 |  0.7688 |
| ---- |  ------ |   --- 6 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 54.3558 | 35.7295 | 34.1108 | 41.2287 | 55.5080 | 25.9360 | 28.3017 | 31.3457 |
|  70% | 24.3050 | 11.0603 | 13.4900 | 16.6937 | 26.1385 | 10.4652 | 10.5652 | 11.1263 |
|  80% |  4.2673 |  0.0000 |  4.3717 |  4.8828 |  6.8168 |  3.4403 |  2.7655 |  1.4698 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.2012 |  0.3240 |  0.2855 |  0.2027 |
| ---- |  ------ |   --- 7 |  Attack |  Moving | Average |  ------ |  ------ |  ------ |
|  60% | 53.2705 | 32.1395 | 32.5230 | 38.7373 | 54.7385 | 24.7587 | 25.7575 | 28.3533 |
|  70% | 22.7233 |  9.7105 | 12.6490 | 15.3603 | 24.6157 |  9.4672 |  9.3260 |  9.6970 |
|  80% |  3.8538 |  0.7848 |  3.0023 |  2.9965 |  5.5295 |  2.0965 |  1.9265 |  1.4485 |
|  90% |  0.0000 |  0.0000 |  0.0000 |  0.0000 |  0.0445 |  0.1020 |  0.1087 |  0.1403 |

The first and easiest comparison to make is between the different Control strategies.  Control/Haste still claims the title for “fastest to null out 90% spikes,” which is achieves for a 4-attack string.  Funny that, haste winning an award for speed.  However, it’s worth noting that Control/Haste consistently underperforms compared to Control/Mastery in just about every other aspect.  It’s generally worse at reducing 80% spikes, in many cases by factors of 3x or more.  And the 60% and 70% data shows us that it falls behind in those categories as well.  Haste is still very good at eliminating that top tier of spikes, but it just can’t keep up with the broad-spectrum smoothing that mastery provides.

This is reflected in the stationary stats as well.  Control/Haste boasts a massive 52% uptime on Shield of the Righteous, but also a rather high mean damage intake level of 60.1%.  By comparison, Control/Mastery drops to about 41% SotR uptime, but also drops mean damage intake to 54.1%.

Control/Avoidance doesn’t do much better than C/Ma in either of the bulk categories – slightly higher SotR uptime, slightly lower mean damage intake, but nothing to write home about.  I don’t have Holy Power generation stats on this table, but you probably won’t be surprised to hear that the extra uptime is directly linked to the extra Holy Power income from having more avoidance.  For smoothing purposes C/Av doesn’t do too poorly, keeping up fairly well for short strings.  However, it starts to fall behind for strings of 5+ attacks.  While it’s not “bad,” per se, there’s also no obvious advantage over C/Ma.

Control/Balance is a weird mix – in some cases it outperforms C/Av, in others it falls behind.  It’s actually about as good as C/Ha in most of the smoothing categories, giving up some ground in certain categories but gaining it back in others.  I’d argue that C/Bal is a better model for the type of gear that we’re likely to be working with as we progress through the Throne of Thunder, as many of us end up using a mixture of “ideal” Control/Haste or Control/Mastery pieces and “less than ideal” dodge/parry tanking items that we end up with because nobody else wants them.  So it’s reassuring to know that even with this patchwork gearing strategy, we’re not suffering in the mitigation department.

The “Pure Haste” build is sort of interesting.  It manages to rack up about 50% SotR uptime, but also has the highest mean damage intake of any set at 60.8%.  While the stats are similar to those of C/Ha, it is uniformly worse in every category.  So while this isn’t actually a terrible gearing strategy, it’s also clear that there’s no significant advantage to doing it instead of going with C/Ha.  It’s worth noting that at all Vengeance levels, hit and expertise are better DPS stats than haste up until the spell hit cap (spoiler alert: this will remain true in 5.2, even though I won’t get around to updating my Maintankadin thread until this weekend at the earliest).  So you shouldn’t be dropping below 7.5% hit and 7.5% expertise to stack more haste if you’re trying to optimize DPS.

Finally, let’s consider the avoidance-heavy builds.  In a surprising turn of events, these really aren’t half bad.  The pure avoidance gear set is actually rather competitive in the 80% and 90% categories.  It’s strictly worse than C/Ma for most purposes, but you could argue that it’s actually stronger for stochastic mitigation than C/Ha.  It’s especially worth noting that for longer strings, it significantly reduces the representation of 60% and 70% spikes compared to C/Ha, which is one of the only areas where 60% and 70% spikes are of interest.  Again, I’d argue that C/Ma tends to do this job better overall, but it’s clear that a “stack avoidance to the sky” strategy isn’t as far behind as it was in 5.1.  It also gets to claim the title of “lowest mean damage intake,” shrinking that value down to 49.5%.

Shifting some of that avoidance to mastery seems to have one major effect: It makes the gear set slightly better at 80%/90% spike mitigation.  We also see a minimal loss of SotR uptime and a small increase in mean damage intake.  70% and 60% spikes fluctuate somewhat as well, but not consistently enough to draw a good rule of thumb – the best we can say is that for long strings, 60% and 70% spikes tend to go up, while for short strings there isn’t a reliable trend to the fluctuations.  All in all, this means that any mixture of mastery and avoidance is going to be about as effective as any other mixture.  Stacking mastery to the sky isn’t going to be that much more effective than stacking avoidance to the sky, at least in the absence of a significant amount of hit and expertise.

Conclusions

While it was nearly impossible to pull a clear winner out of the 0%/30% version of Grand Crusader, the 12%/12% version is a little more clear-cut.  Control/Mastery is the standout for raw mitigation power.  It just does the best job of squelching spikes across multiple categories.

The curious thing about the results is that while C/Ma is definitely the winner, several other gear sets manage to perform rather well.  Control/Haste and Control/Balance are both respectable, and even the gear sets centered around avoidance and mastery have their strong points.  C/Av and pure Haste are about the only two that don’t really seem to have a niche.

All of that said, there’s an important caveat to consider here.  These stat weights are stochastic, and calculated based on a model where the player blindly uses SotR as available.  It does not take into account certain nuances that separate a talented player from a novice.  For example, a talented player may delay SotR if they’re at full health even if they have 3 Holy Power.  If I’m not in imminent danger, I will often sit on that Holy Power until I reach 5 and have a generator coming up in the next GCD, to ensure that I can cast another SotR immediately if it’s needed.

That sort of nuanced play has a peculiar effect, in that it’s essentially weighting the dice in your favor.  You don’t need SotR coverage when you’re sitting at full health and have just avoided an attack, so you’re subtly shifting that coverage to periods of higher risk.  That has a small but noticeable effect on mitigation stat weights, giving a slight edge to haste-based control strategies.  This is a topic of frequent conversation at Sacred Duty Headquarters, with it normally playing out something like this:

Theck: “But the numbers say that C/Ma is simply stronger based on stochastic metrics”
Meloree: “Yes, but your numbers are shit, because nobody cares about stochastic metrics.”
Theck: “You’re mean.”

I’ve highly paraphrased and villain-ified Mel there, but I have trouble disagreeing with the core message he’s trying to get across.  Not that my numbers are shit, but that a stochastic model has its limits.  Given the option between high uptime on a moderate-mitigation buff (i.e. C/Ha) and lower uptime on a higher-mitigation buff (i.e. C/Ma), the higher uptime version is often safer.  Not because it does better in stochastic “how much damage did I take” metrics – in fact, quite the opposite, it usually loses those comparisons.  But because you’re not in as much danger during a high-mitigation phase, such as having SotR up.  Making that high-mitigation phase “safer” isn’t as valuable as having more of those phases in the first place.  If you wanted, you could include healer mentality in that argument as well.  A healer will respond differently to a sequence of “Big Hit, little hit” than to a sequence of “moderate hit, moderate hit.”

So, what does that mean when we apply it to our data?  Well, Control/Mastery wins by the numbers, but I think that Control/Haste probably still wins by Meloree fiat.  You give up some extra time-averaged mitigation and open yourself up to more spikes if you play poorly.  But if you play well and time-shift SotR casts according to current health and other dynamic encounter variables, it’s very likely that Control/Haste will meet or exceed the survivability level afforded by Control/Mastery.  Remember, you’re getting about 10% more SotR uptime (absolute, a 25% relative increase), and if you play well you’re applying that extra uptime to the sections of the fight you need it most.  And, lest we forget, there is a significant DPS gain to be had by going with Control/Haste, which is a big factor to consider for heroic progression, especially in 10-man content.

It’s almost a shame that the 0%/30% version of Grand Crusader didn’t stick.  In that version, there was a significant mitigation cost to going with Control/Haste instead of a more “tanky” gearing strategy, which seems like a reasonable trade-off for the DPS gains.  Even though it would have reversed our gearing paradigm, it would have made the gearing paradigm a bit more logical.

Instead, we get the 12%/12% version, which basically maintains the status quo.  Control/Haste is no longer the clear leader as it was in 5.1, but it’s probably still the best strategy for a progression-oriented tank.  Control/Mastery is an equally viable choice, and probably a better choice for intermediate tanks that aren’t as careful with their SotR timing.  Avoidance builds lag slightly less than they did previously, and are still a good choice for beginner tanks that are still getting comfortable with active mitigation.

TLDR:

Advanced tanks will gear for Control/Haste or Control/Mastery, probably depending on encounter specifics and gear availability. Your BiS gear will probably involve a lot of hit/haste and expertise/haste retribution gear.

Intermediate tanks will probably stick with Control/Mastery for better stochastic mitigation. For these tanks, there’s probably no need to chase haste gear.

Beginner tanks will likely stick with traditional tank gear that’s high on avoidance and mastery.

Posted in Tanking, Theck's Pounding Headaches, Theorycrafting | Tagged , , , , , , , , , , , | 55 Comments

Tier 14 Retrospective

You know that feeling sometimes, that those of us in our 20s or 30s get about our college days? We’ll look back and think, “Man, those were the best days of my life.” And that’s kind of a sad thought, that you’re already done with the best and most fun years you’ll ever have. WOW players get like that about certain tiers – I hear it about Kara, about Sunwell, about Ulduar. Myself, I’ve always felt that way about Tier 11. Tier 11 was wonderful, but it was wonderful to me in an increasingly bittersweet way. I felt that the game had slowly changed since then. I wasn’t sure whether to be sad, or angry… but I spent most of 2011 and 2012 fairly convinced that I would never again see a tier I liked quite as much.

I was wrong. Tier 14 was absolutely fantastic.

Now that I am 16/16H and Anafielle the Fearless, I’d like to look back on this tier’s content. What follows are some memories of each of our 16 encounters in the chronological order that Something Wicked progressed through them on 25 Heroic.

Stone Guard

I might have loved T11, but not everyone felt the same way. Someone once told me that the lack of a ‘starter boss’ was a serious flaw in T11 – the first bosses (Halfus, Omnotron, and Magmaw) were all too complicated. They frustrated poor raiders who’d just entered the instance. The first boss needed to be a total pushover so that raids would get some free loot before they moved along. In particular, a council fight as the first boss was completely inappropriate; there are simply too many different abilities involved.

Seriously? But it was true: T12 and T13 brought us Shannox and Morchok! Ugh. Pull the boss, and a couple minutes later they would politely gift your raid with epics. I figured this was simply how the first boss would always work moving forward. Sad to just write off the first boss each tier…

How wrong I was to doubt. When we pulled Stone Guard, and I realized it was half Omnotron and half Halfus, plus some totally new stuff like tiles and some kind of taunt trade for positioning… you can imagine that I was very surprised and pleased.

I wouldn’t call Stone Guard difficult, but they were certainly tricky. This fight had a lot of moving parts. So it’s a good thing that our tanks Omegal (@MysticalOS on twitter) and Shiramune, as well as half our healing team, tested absolutely everything on the MOP Beta extensively and thoroughly both to help Omegal build working DBM timers as well as to learn the fights. That experience was invaluable.

See, I don’t actually know how Stone Guard works. I am fairly certain that no one in Something Wicked knew how that taunt trade worked except Shiramune, but he had it figured out, and called out everything so clearly that screwing anything up would have been much more impressive than actually doing it right. Thus Something Wicked was carried to our first heroic kill by our DK tank (as usual).

Stone Guard also cemented my love affair with Hand of Purity and with our entire, re-designed talent tree. Paladins really came out ahead in MOP; it’s blindingly obvious the designers like us best. They really should try to be more fair.

Feng

We actually took out SG so quickly that we also managed Feng in that first week of heroics, slipping into the US top 30. Getting two heroic kills in the first week of heroics in 463 gear remains a favorite raiding memory of mine. I know a lot of people complained about the click bug. I don’t know what kind of magic Omegal and Shira managed, but with a combination of addons, UI reloads and beta practice, we made it happen.

I liked Feng. I admired his design. I thought it was rather cool to pull each of the 4 phases and learn them one by one before putting them all together in order to push the kill – Moshne called him the “Choose your own adventure” boss. It made the encounter a lot easier, but that was perfectly acceptable for the 2nd heroic of 16. If this was how the designers were going to build a starter heroic boss, I felt that said promising things about the 14 fights we had left to go.

Garajal

I don’t know if I should have, but I rather liked this fight. When we did this (kill dated October 26th), you still had to maintain 6 minutes of straight cooldown coverage on the tanks; sadly gear has made this now unnecessary. Our paladins took care of the whole thing with Clemency and careful organization. I find that kind of thing really fun – I love using my paladin utility. Being a DPS check that ret looked decent on also helped.

Elegon

I wanted to like Elegon. This fight was almost cool. I’ll give it a C, but an A for effort and for looks. Elegon just wasn’t that impressive as a DPS check; honestly, Garajal was tighter. The problem was the sparks: any tighter and he would have required Spine type stacking. As it was, the DPS check was just too loose to really present a serious challenge. It was a very pretty fight, though; I’ll give it that.

Spirit Kings

Before I talk about this fight, let’s pause and discuss the reset problem first. I don’t care what order you wanted – everyone reset for their chosen order. It made pulling this massively unpleasant, which is a shame since actually doing it was fantastic. SK was arguably the best fight of the tier, and it’s really too bad that first couple dozen guilds that saw this had to put up with the resetting. The fact that Blizzard cemented the order for the BL / Vodka race and yet refused to do it for the rest of us, leaving the peons to reset over and over for a couple more weeks, was just insulting. At least the order was eventually fixed, long after we had it killed. In the meantime, we got an amusing video out of it.

Setting that aside, this fight was just fantastic. My first thought when I pulled this: “Oh my god… they get it. The designers really get it.” Raiders in general loved Spirit Kings. I don’t think I really need to explain why. If you liked Omnotron, you liked this fight.

Blade Lord Tayak

I thought this fight was a little boring, despite how amusing it was to fail on tornadoes (even with a bubble cheat) and to watch other people fail. It was the first fight of the tier that I hadn’t really been all that excited to pull. As a ret, his out-of-melee-range specials were pretty annoying to deal with. But he wasn’t a bad fight, I just didn’t love it. Bonus points for being a fight with a mechanic paladins could break.

Wind Lord Meljarak

Let’s get this out of the way: this fight was easy. It was laughably, hilariously easy. I think we killed it in 10 pulls, and 9 of them were Stampede breaking the CC. But that’s ok; there seems to always be one fight in a long tier that – oops! – is actually simpler on heroic than on normal. It happens. And I rather liked pulling Wind Lord in general, because I get to cleave on this fight and cleave is fun! Also the burn phase! Since doing this fight is actually a little enjoyable while farming through HOF, I forgive this one its ease.

Will of the Emperor

I really don’t mean to get into the 10m argument here, but it’s impossible to avoid while discussing this fight. 10 mans, you did some hard shit this tier, I have respect for the tuning on both difficulties. There were a lot of really difficult fights for you.

Will was not one of them. Pull counts were (briefly) public before Blizzard paniced and subsequently hid them once more, and so we knew: Will 10 was taking less than half the time Will 25 was, across the board. As a result, that MSV realm first Feat of Strength was well within reach of anyone who could put a relatively organized 10 man together. Meanwhile, we were facing one of the hardest organizational and logistical challenges we’d ever seen before. In retrospect, adjusting for gear at each time we pulled, I think this was the second hardest fight in T14.

As a 12 hour, 3 night place, Something Wicked has not been a realm first guild before; either a 5 night guild or a 10 man guild had always beaten us before. But this one, this was the first one reasonably within reach for us, and we knew there were several 10 mans that were going to give us a fight for it.

I can’t tell you how much we wanted it. How frustrating it was to watch 10s pull it on the evenings we don’t raid. How awful it was to wipe within 5% and then stop, one Sunday, because it was already 12 CST and we just can’t pull past our end time. And then that nerve wracking, desperate Monday and Tuesday watching streams and stalking logs. Fortunately, when we all decide to play right, we kick ass at minor challenges like organization and precise play. On December 5th, for the first time in my history as a hardcore raider, I knew what it was like to see server first spam with my name in it. We had managed Realm First MSV, we’d done it on 25 (of course), and we’d done it on our normal 12 hour raiding schedule.

The excitement… it was incredible. Probably my favorite raiding memory ever.

As for the fight itself, I respected that fight. It required very clean, very organized play from start to finish. It was a puzzle piece type of encounter where every part had to fit neatly together. The only part I didn’t like about that fight was my stupid job – I hate Strength tanking. I want to dance!

Garalon

This fight was more than a bit frustrating as melee. Am I the only one who was completely driven nuts by the hitbox on the legs? I got into the habit of turning my back to the leg and DPSing into thin air, because I knew the game actually thought my target was in front of me even though the pixels on my screen would disagree.

Amber Shaper Unsok (I tanked)

Our warrior tank Omega really enjoys figuring out how boss fights work mechanically – a couple million of you benefit from this, if you use DBM. While the rest of the raid actually worked on this encounter, he and I spent our time on Unsok amusing ourselves trying to figure out how to control which tank was targeted by Unsok’s Reshape Life. The goal of this was to maneuver it such that our DK tank Shiramune was stuck in the 4th and permanent construct, since he is by far our raid’s best player. He makes a mistake roughly on the average of once every century; when he does make any kind of error, we all start nervously looking for other signs of the apocalypse. And so Omega and I sat down to try and get Shira into the construct as much as possible, with or without his permission. We tried threat games, positioning games, and even stood in fire because for a couple of pulls Omega was quite convinced it was health based. This plan backfired, of course, and somehow I personally ended up in the fucking thing on just about every pull.

I really liked this fight. I thought the vehicle worked pretty well, as crazy as it is to say that I enjoyed a vehicle fight. I liked the strategy we eventually came up with, in particular that it was a little bit different from the usual manner of doing this encounter. The construct is a little frustrating and tricky, and there is a hint of T11 AC – like “hope that X people don’t get the construct” when you pull it, but overall it never really harmed my enjoyment of the fight which was rather challenging and satisfying from start to finish. I actually didn’t mind being in the construct as much as I claimed, either.

Side note: This fight and SK are the two most frustrating fights to wipe on farm. Not that we ever wipe on farm.

Lei Shi

A fairly nondescript execution check. We 24 manned 23 manned (Moshne corrected me upon reading this; we only had 23) our second kill of this fight, which really drove home how little DPS check there really is here. Pretty boring. This fight gets bonus points in my book though for requiring Paladin raid utility. I like that stuff.

Imperial Vizier Zorlok

I LOVED this fight. Am I the only one? I really, really enjoyed it. I think that Attenuation on this fight and the Will H Dance are my two absolute favorite mechanics of the whole tier. We had to strat around a convert in the third phase as well, which was perhaps frustrating, but also interesting. Although I have to say, the double Attenuations at the end suck.

Protectors

The strategy for this fight was quite intricate, and there were several different ways in which guilds chose to meet the positioning requirements. This remains one of my favorite fights of the tier. Rather like Will, I respected this fight. This was also the sketchiest and yet most hilarious first-kill of the tier for us.

I’m really pretty bad, and I was challenged by the interrupt rotation that we had to maintain on Asani. I can’t be the only one. My raid leader wanted to reach through the computer and personally throttle each and every melee, particularly on those 2nd and 3rd kills when we sometimes failed miserably at hitting our interrupt keybinds despite two separate WeakAuras we all had telling us how to play. Sorry, Moshne. :( But this was still a good fight. Melee need a kick in the ass sometimes.

Empress Shekzeer (I tanked this too)

Phase 3 really should have been harder. It was actually a bit disappointing to kill this as soon as we had the adds down; I think our very first Phase 3 pull was a kill. However, the rest was pretty fun – from getting the Fields down in the first phase to pulling the adds together in the second phase. Even as the bitch tank (the reaver tank) I still chain cooldowns to keep myself alive on this. This fight was pretty good, but it could have been so much better.

Tsulong

You know, as a hybrid, I actually liked this fight on normal. The RNG on heroic, though, really drove me up a wall. I got so fucking tired of watching adds spawn on top of beams. We wiped so much in phase 1 with such short wipe recovery that the entire raid ended up with 2 minute rez timers, prompting Moshne to comment on our collective badness as a raid: “We’re dying so much, the game has us confused with a Sha pug.” We finally managed to blow up the right beams, but my enjoyment of this fight was permanently soured. Doing millions of healing as a ret paladin with ES and FOL is really cool, though.

Sha of Fear (I tanked this)

I am completely unapologetic about stalking the armories of players in competing guilds, particularly tanks to make sure I’m not playing my offspec like a bad. And so I remember seeing Kihra, main tank of Temerity, gemmed mastery long ago and scratched my head at the time trying to figure out why, since I was sure he was usually geared control. Once we hit Sha, I figured it out myself, and also realized I was going to thoroughly enjoy all 17 minutes of this crazy long fight we had to cap off the tier. I’ve Absalom and Kihra both to thank for releasing epic boss-crotch paladin POV videos for me, and for giving me excellent advice- occasionally different advice – which helped me a lot on a fight that make me possibly the most nervous in my offspec.

I’m not sure if there’s any moment in this whole tier quite as epic as watching Sha put up Dread Thrash, then submerge, then come back up across the room, then pause to cast yet another special, and then meander slowly across the expanse back at me… with the Dread Thrash buff still up … while I spam SOTR to try and get it up before the melee & also figure out if I’m putting his fat ass in the right place in the room…. Other memorable moments would include hitting AD and taunting off another tank with Dread Thrash still up, or tanking while Naked and Afraid, both of which happened more often than I’d expected. This was not a boring tank fight.

DPS is fun, but there’s really nothing quite as epic as being the tank sometimes.

Although it wasn’t perfect, I liked this fight a lot. Sure, I thought the Lei Shi haste buff was stupid design. And maybe it should have a couple minutes shorter. Also, Blizzard, really? Did you just forget to design the Dread Expanse, or what? But overall, I thought it was pretty compelling with a couple challenging pieces that were also enjoyable to actually do. It definitely felt like a good challenge to cap off a long and varied 16 boss raid tier.

Conclusion

The last time I wrote a tier retrospective, my opinion was not entirely positive. T13 hurt. It wasn’t a short hurt, like a knife wound. It was a long, slow acid burn which from December 2011 through August 2012 ate away at the joy and excitement of raiding. It’s really very difficult to describe how the entire second half of Cataclysm affected my feelings on the game, but the effect was not positive.

I felt guilty. I believed that other people in the game were having fun, and I felt bad begrudging them that. But I was convinced that WOW was moving in a direction which was better, maybe, for the majority of its subscribers … but which was simply less enjoyable for me. This is a really sad thought. I want everyone to have fun, but does it have to come at the expense of my own fun?

Thank you, T14, for convincing me that this doesn’t have to be true. I really feel like this was a strong tier for raiders. I have loved every bit of this tier from our first week in normals, through Sha Heroic progression. So many fights were like little nods to fights we had seen and loved before. It was far from perfect – I’m not in love with every single fight we saw, as you can tell! – but it was really, really fun, and a wild five month ride to 16/16H.

Watcher and the rest: loved it overall. Now, make sure T15 has more of the same, but even better!

Recruitment: Something Wicked is a 12 hour, 3 night guild raiding Wednesdays, Thursdays and Sundays from 8 to 12 CST. We ended Tier 14 at 16/16H ranked US 47 for 25 mans. We are recruiting mages, warlocks, and paladin healers!

Posted in Blogging, From Ana's Inbox, Raid Recap, Raiding | Tagged , , , , , , , | 33 Comments

Valor Morghulis

This is a post I wrote almost three months ago.  But I wasn’t very happy with it, and ended up letting it sit around as a draft.  Every few weeks I would come back to it hoping to edit it into something I was happy with, and every week I gave up and moved on to other projects.  Since there’s been little hard information about the final changes we’ll be seeing in 5.2, I forced myself to sit down and turn this blog post into something useful.

Mists has dramatically changed the way many of us approach our play time in World of Warcraft.  Between dailies, reputation grinds, charms, multiple LFRs, challenge modes, item upgrades, and everything else, the game at level 90 feels vastly different from the way it did upon reaching level 85 in Cataclysm.  In many ways, that’s a good thing. More content means you’ll rarely log on and realize you have nothing to do.

However, I want to look at something you won’t often see discussed on a theorycrafting blog: alternate characters, or “alts.”  Mists has the distinction of being the most alt-unfriendly expansion to date, which is unfortunate for those of us that like to level and raid on multiple characters.  And while Blizzard has done a number of things to help mitigate the problem, the central issue really hasn’t been addressed well enough.  And that issue is the rate of accrual of valor points.

First, let’s make it clear that I’m coming at this from the perspective of a player that prioritizes their main.  Each week, I’m going to do everything I feel that I need to in order to keep Theck “topped off” for raiding.  That primarily means that I’m capping valor on Theck every week.  Since I’m exalted with all of the relevant Mists factions, we can ignore them, but keep in mind that when I first wrote this article I was still doing Operation: Shieldwall dailies, and before that I was doing faction dailies to reach exalted reputation.  If I didn’t already have a bankroll of over 1400 Lesser Charms of Good Fortune, I might still be doing dailies to keep up with those.

Furthermore, I’m the sort of player that really enjoys playing alts.  Not just the process of leveling them through the content (in fact, that part has become increasingly tedious as quest progression has become more linear in Cataclysm and Mists), but gearing them and raiding on them.  In Cataclysm it was common for me to be participating in a weekly alt raid in addition to our normal weekly raids, and the occasional “ghetto alt” raid on other off-nights.  I really enjoy learning and mastering new classes, especially when it comes to raiding.

Both of those those factors color the way I experience and feel about the game.  And I’ll be the first to admit that what would make the game better for me isn’t necessarily what makes the game better for everyone else.  Nonetheless, I think it’s worth exploring the ramifications of the new valor point system on a player of my persuasion.

The “Valor Plateau”

In previous expansions, there was a distinct cycle to a player’s involvement throughout an expansion.  When a new raid tier or patch arrived, it generally added new stuff to do, and most importantly new reasons to care about valor points.  Generally, those reasons were valor point gear rewards, and for a long stretch of time that included tier items.  A patch might also introduce new reputations to grind, or new dailies to do (or both), or other new “stuff” like quest lines, pets, or what have you.

And the response of a raider was predictable: you’d log in and do a bunch of that stuff on your main character for a few weeks.  Valor accrual was the most important part of those activities – if you considered yourself a serious raider, you were making sure to cap your valor point income each week during that period to make sure you got your hands on that new gear as soon as possible.  If you weren’t already clearing enough raid bosses to cap each week, you were out there running heroics to make up the difference.

However, a month or two into the tier, the situation became totally different.  By that point, you had all of the valor gear you wanted, and it wasn’t as critical to reach the cap.  If you got there just from raiding, great; if not, all you missed out on was a little extra gold from selling bind-on-equip valor gear on the auction house.

I’m not sure that anyone’s coined a term to describe this effect.  Certainly, the game designers working on the game must have a technical term to describe this ebb-and-flow effect.  But I don’t know what it is, and for lack of a better term, I’ve taken to calling it the “valor plateau.”  The reasoning is pretty simple: there’s a certain valor threshold you need to reach to obtain all of the items you want, and after that point the importance of valor swiftly drops off.  If you plotted “valor spent on character power” against time, you’d see a line that increases steadily in the first month of a patch and then suddenly flattened off – hence a “plateau.”

Valor Plateau

The “valor plateau.” After a patch, there is an initial flurry of valor expenditure on character power, eventually tapering off to nothing.

This phenomenon is mirrored in the game in other ways.  Guilds push very hard to clear raid tiers early on, and strong guilds eventually get all of the bosses to a “farm” state, often reducing their raiding hours in response.  Players grind reputation with a faction to get to exalted, and then put them aside until the next rep grind presents itself.  There’s a distinct flurry of activity followed by a period of rest and respite.

But the new item upgrade system eliminates that cycle and replaces it with a constant player power treadmill.  There’s no longer a point at which valor becomes irrelevant until the next tier, because you can continue upgrading your gear to prepare for the next raid tier.  The system turns a temporary period of grinding into an eternal one.

And I don’t know if that’s a good thing, especially for players like me.  There’s a lot of value in that period of rest and respite, and perhaps that’s been overlooked by the developers.  Those periods let you recharge your batteries, take a break, and do something different.  For someone like me, that could mean leveling or gearing an alt.  Or it might just be extra time you can use to do other things – spending time with family, knocking out another game that you’ve been meaning to get to, doing some theorycrafting that you’ve been putting off, or any number of other things.  No matter what, it’s a break from the focused power grind that occurs following a patch – a reward of downtime for your early efforts.  And its an important part of preventing raider burnout.

Players will put up with a temporary grind because they know it’s temporary, especially when it coincides with things like new content which would be encouraging them to play more anyway.  But once it becomes an obligation, something they need to do every week in perpetuity, it stops being as tolerable.  It becomes something all of us have dreaded since we were kids: chores.  Want to keep your character at peak performance? Gotta keep doing your chores, kiddo.

Now, it’s not exactly hard to cap valor.  You get 640 points from a full clear of tier 14.  The remaining 360 points can be made up with 4 LFRs, or 4 daily heroics and a daily scenario, 72 dailies, or any permutation of the above that adds up to 360.  But that’s still on the order of 4 hours worth of effort in addition to whatever it takes you to clear T14.  For my guild, that’s about 8 hours (less, really, since a large chunk of that would be heroic progression).  So the expected time on Theck per week just based on valor alone is about 12 hours.

As you can imagine, that sort of cuts into the time for alts.  Four hours isn’t a huge time commitment, but it’s still 4 fewer hours I can be spending leveling, gearing, or raiding on an alt.  Four hours is an entire evening of alt raid, for example.  And that’s for me, a player who easily spends 20 hours a week or more on this game.  It only gets worse if you’re in a guild that raids more nights per week and/or clears fewer bosses.

But no matter what, it means that I play the game a little differently.  In prior expansions, I may have logged in on Theck for 10 minutes a day to handle auctions, and then gone off and done something else on an alt.  Now, I plan on spending an hour or more on Theck to knock out some valor points early in the week, which often precludes me from getting around to much else on an alt.

And woe unto you if you like to raid on two characters and want to cap valor on both.  For the first few months I was trying to cap valor on my warlock as well, to prepare her for alt raids together.  The Valor of the Ancients buff certainly helps with that, but even 50% increased valor gain isn’t enough to make it an easy process.  I was actually doing something rather tricky lately to try and optimize my time expenditure.

Rather than capping Valor on Theck first, I would cap valor on my warlock first by running five LFRs and a number of heroics, scenarios, and daily quests.  I make a mad dash to cap valor on the warlock between Tuesday and Friday.  Then, when I raided on Friday and Saturday nights with Theck, I got to take advantage of the 50% valor bonus and turn that 640 valor points into 960 valor points, which is easily enough to cap on top of the few dailies I end up doing in the course of a week.  But that only worked because our raid nights are so late in the week – if your raid nights are earlier or more scattered, you’re pretty much out of luck (though you might be able to reverse the process if all of your raid nights are early in the week).

You might think that I feel similarly about the reputation grinds in Mists, but in fact, I don’t.  While the initial grind was pretty rough, it was mostly because of the sheer number of Golden Lotus and Klaxxi dailies.  The Shado-Pan and August Celestial dailies were fine, and I think that if the Golden Lotus and Klaxxi dailies had been done similarly there wouldn’t have been much complaint at all.  Four quests a day per faction isn’t unreasonable, even if you’re doing all four of those factions.  But most importantly, all of those reputation grinds were temporary.  Now that I’m done with them, I get to sit back and relax – the plateau effect is still there.

And once you’re doing the grinds on an alt, they’re incredibly tolerable – you can now be  friendly with Shado-Pan and revered with Klaxxi just by questing an alt to 90.  I decided to do the Cloud Serpent grind on my warlock, and was surprised to find that I could go from Neutral to halfway through Revered in the very first day of questing.  It was surprisingly painless, and felt really good – I’d spent so much time doing those same quests on Theck, so it only felt right that I should be able to fast-forward through it on my alt.  All in all, apart from the Golden Lotus fiasco, I think they’ve got reputation in a pretty good place for alts.

Putting The “Or” Back In “Valor”

It’s clear from the discussion above that the extra time invested in your main comes at the cost of time to spend on alts.  If I have time to run 3 or 4 LFRs a week, and I need the valor, I’m going to be running them on Theck rather than an alt.  And there’s a limit to how many times you can stand running LFR a week too – I’m going to be far less likely to hop into LFR again on an alt even if I do have the time.  The same could be said of heroics, to some degree.  There’s a level of attrition with many of the types of content you can participate in for valor points – they’re fun the first few times, but get tiring once you’ve done them too many times a week.  The same might even be true of raiding, believe it or not!

But then, what, you may ask, is the solution?  How do you provide enough content to satisfy the players who want lots of content for their mains and give raiders the restful period of the valor plateau at the same time?  I don’t think there’s a simple answer to that question, but I do think there’s one thing that would help immensely: buff valor gains across the board.  Instead of 40 points for a raid boss, double it to 80.  Instead of 80 for the daily heroic, it could be 120-150.  80 instead of 40 for a daily scenario, and 10 instead of 5 for a daily quest.  Make valor capping easier and you give players the versatility to do the content they want without reducing the amount of content available.

I don’t think that valor capping needs to be hard.  Valor is a reward for doing stuff in-game, but it doesn’t need to take 12 hours a week just to cap it.  Nor does it need to be the vehicle that gets players out into the world.  Players who want to do the quest lines and dailies will do them anyway for the reputation and story rewards. Nothing shows that more clearly than the Operation: Shieldwall and Dominance Offensive quest lines in 5.1.  For the first time in… well… ever in WoW, I was looking forward to heading off to do dailies, because I knew that in addition to a few monotonous dailies I’d get another chunk of story.

In fact, I’d argue that the entire system could have been streamlined a bit, and each set of dailies could have been built around part of the story.  Instead of 5 meaningless dailies and one neat piece of story, I’d rather see the 5 dailies integrated into the story.  They did this somewhat with the first step of the Alliance quest line – we have a mine, and we need to clear it out so that the Alliance can harvest ore.  But I’d love to have seen it done with the other parts too.  On a day where you get a new story chunk, you automatically get the dailies associated with that story.  On other days, you might get quests you’ve already seen (“Hey, you were so helpful when we needed that cave cleared out the first time, would you mind going down there and cracking some more skulls so we can do some more digging?”).

But in any event, I’m getting sidetracked here.  The main point is that valor can flow a little more freely without having a huge effect on participation.  It’s certainly good that daily quests and other world activities give valor points, but that doesn’t mean valor income needs to be stingy to encourage people to do them.  It still boggles my mind that you cannot cap via a full clear of the current tier’s content, especially with 16 bosses.  Because even if I could cap valor just through raiding I would still be doing some dailies on Theck, either for achievements, reputation, or things like Ironpaw tokens and lesser charms.  And perhaps more importantly, faster valor income from dailies would be a huge benefit to players who don’t raid regularly.  I can’t imagine how painful it must be to cap valor primarily through dailies and scenarios.

I think you could make a good argument for lesser charms being more widely available too, for similar reasons.  Right now, these charms funnel you into doing dailies because it’s the only source (at least until 5.2 rewards them through pet battles, but as someone who hasn’t even bothered to try pet battles yet, that’s not really helpful to me).  Again, it seems counter to the goal of encouraging players to participate in the content they enjoy, though that design intent seems to have fallen by the wayside in a number of other ways in Mists as well.  But what would break if you could get some of your lesser charms through raiding, heroics, or scenarios?  In fact, it might even be a good way to add an incentive for 25-man raiding: give each boss a chance to drop 5-10 lesser charms, and make the drop rate or amount higher in the 25-man format.  The benefit of spending more time on organization and logistics is that you need to spend less time grinding out your 90 lesser charms per week.  (Note: remember, this was written before we knew about Thunderforged items).

Staving off Altageddon

In short: Mists has gone a long way to give us more content than ever, and while it’s great to have that much content, it has in almost all cases meant that players end up spending more time than in previous expansions to achieve the same goals.  It’s increased the amount of time you’re expected to spend preparing for raids, and subsequently reduced the flexibility in playing alts.

We know that the item upgrades system will be taking a break for 5.2.  But I sort of hope it doesn’t come back.  Or rather, not in its current form.  The constant valor-and-dailies treadmill hangs the constant threat of burnout over your raid team, and the item upgrade system is the taskmaster at the controls.  I think it’s a decent system if valor is easy to acquire, such that it only takes a reasonable time investment.  When it takes 12+ hours a week to cap on a single character, it’s just more trouble than it’s worth.

Note that I’m not even going to invoke the deadly “required” argument here, because that’s completely missing the point.  Nothing in this game is strictly required, and the definition of “required” ends up being different for different players.  You could spend days arguing over semantics without getting anywhere, and you’d have completely wasted your time doing so.  Because none of it changes the facts, and it’s irrefutable that it takes more time to prepare for raiding in Mists than it has in any previous expansion save vanilla WoW.

And that extra time spent isn’t, in general, a good thing in my mind.  It reduces the flexibility I have in how I choose to play the game, and gives me less time to do other things in-game that I do find fun.  And I think in terms of aggregate statistics, it will end up leading to higher burnout rates for raiders.  We may not see it yet, and I attribute part of that to the sheer quality of this raiding tier – it is an excellent tier of raiding all around, and my hat is off to the encounter design team for giving us the best tier of raiding since Ulduar.  But I’m not sure that great encounters are enough to counter-balance the lack of a rest/relax period between tiers of content.

Posted in Design, Encounters, Raiding, Tanking, Theck's Pounding Headaches | Tagged , , , , | 39 Comments