Schroom wrote:so my question is, is there a proof (in a mathy way) that this is not just "a feeling" but that with more swing timers running and hitting you avoid becomes better in the way of damage smoothing? (I know that avoid gives you less TDR, I mean less spikes with more damage sources)
You have it backwards. Avoidance is generally better for TDR, at least in the steady state. The advantage of control/haste is that it smooths out damage spikes over several hits. With avoidance, there's always a chance you'll take 3-4 unavoided attacks in a row, because avoidance is random. With control, you can guarantee that some of those attacks are covered by SotR.
That's assuming a 1.5-second swing timer though (and longer generally makes control even better). What if the swing timer is shorter? Well, the shorter the swing timer, the closer you are to a true stochastic situation, by which I mean that you can start to rely on the averaging of avoidance a little more. The chance of avoiding nothing still exists, but it gets smaller and smaller the more hits you consider. The chance of avoiding 0 hits out of 3 is much larger than 0 out of 6, for example. The first is (1-avoid)^3, the second is (1-avoid)^6.
To see what practical effect that has on smoothing, we can use the same simulation code I used
here to look at damage smoothing for a boss with a 1.5-second swing timer, but reduce the swing timer to ~0.25 seconds to simulate having 6 different attackers (each with a 1.5-second swing timer). Since we're being attacked 6x faster, we'll want to consider longer strings of attacks. 15 attacks is about 3.75 seconds of combat, and 30 is 7.5 seconds, so those seem like reasonable bounds.
Here's what the data looks like:
- Code: Select all
15 attacks:
| Set: | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 |
| S% | 0.3768 | 0.4156 | 0.4246 | 0.3470 | 0.3964 | 0.4526 | 0.4516 | 0.4143 | 0.4147 |
| mean | 0.5816 | 0.5988 | 0.6042 | 0.5603 | 0.5900 | 0.6206 | 0.6212 | 0.6016 | 0.6038 |
| std | 0.1364 | 0.1326 | 0.1294 | 0.1359 | 0.1396 | 0.1195 | 0.1189 | 0.1315 | 0.1206 |
| 80% | 6.5699 | 8.0943 | 8.1326 | 4.4090 | 8.0906 | 8.0134 | 7.8593 | 8.0838 | 6.0530 |
| 90% | 0.6082 | 0.9031 | 0.9252 | 0.3469 | 0.8179 | 1.0351 | 1.0105 | 0.8930 | 0.6979 |
- Code: Select all
20 attacks:
| Set: | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 |
| S% | 0.3768 | 0.4156 | 0.4246 | 0.3470 | 0.3964 | 0.4526 | 0.4516 | 0.4143 | 0.4147 |
| mean | 0.5816 | 0.5988 | 0.6042 | 0.5603 | 0.5900 | 0.6206 | 0.6212 | 0.6016 | 0.6038 |
| std | 0.1096 | 0.1028 | 0.1003 | 0.1123 | 0.1087 | 0.0929 | 0.0911 | 0.1011 | 0.0969 |
| 80% | 3.2809 | 3.7318 | 3.7822 | 2.1616 | 3.8650 | 3.6538 | 3.2228 | 3.5541 | 2.7566 |
| 90% | 0.1943 | 0.2737 | 0.2566 | 0.1086 | 0.2303 | 0.2644 | 0.1750 | 0.1948 | 0.1510 |
- Code: Select all
25 attacks:
| Set: | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 |
| S% | 0.3768 | 0.4156 | 0.4246 | 0.3470 | 0.3964 | 0.4526 | 0.4516 | 0.4143 | 0.4147 |
| mean | 0.5816 | 0.5988 | 0.6042 | 0.5603 | 0.5900 | 0.6206 | 0.6212 | 0.6016 | 0.6038 |
| std | 0.0900 | 0.0823 | 0.0806 | 0.0950 | 0.0862 | 0.0764 | 0.0734 | 0.0791 | 0.0805 |
| 80% | 1.5348 | 1.5153 | 1.4915 | 1.0050 | 1.6082 | 1.4785 | 0.8559 | 1.0007 | 0.8964 |
| 90% | 0.0498 | 0.0668 | 0.0551 | 0.0282 | 0.0498 | 0.0641 | 0.0053 | 0.0160 | 0.0151 |
- Code: Select all
30 attacks:
| Set: | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 |
| S% | 0.3768 | 0.4156 | 0.4246 | 0.3470 | 0.3964 | 0.4526 | 0.4516 | 0.4143 | 0.4147 |
| mean | 0.5816 | 0.5988 | 0.6042 | 0.5603 | 0.5900 | 0.6206 | 0.6212 | 0.6016 | 0.6038 |
| std | 0.0778 | 0.0714 | 0.0707 | 0.0833 | 0.0732 | 0.0688 | 0.0654 | 0.0672 | 0.0708 |
| 80% | 0.6793 | 0.5848 | 0.5565 | 0.4563 | 0.5801 | 0.5529 | 0.1090 | 0.1368 | 0.1929 |
| 90% | 0.0096 | 0.0157 | 0.0099 | 0.0060 | 0.0078 | 0.0125 | 0.0009 | 0.0003 | 0.0003 |
The gear sets are described in the blog post, but in short:
#1: ~4.5% hit/exp, moderate avoidance, high mastery, no haste
#2: ~7.5% hit/exp, low avoidance, high mastery, ~4.5% haste
#3: ~7.5% hit/exp, low avoidance, high mastery, ~7% haste
#4: low hit/exp, high avoidance, high mastery, no haste ("avoidance build")
#5: ~7.5% hit/exp, low avoidance, very high mastery, no haste
#6: ~7.5% hit/exp, low avoidance, low mastery, ~14% haste
#7: ~7.5% hit, ~15% exp, low avoidance, low mastery, ~8.7% haste ("control/haste")
#8: ~7.5% hit, ~15% exp, low avoidance, high mastery, no haste ("control/mastery")
#9: ~7.5% hit, ~15% exp, high avoidance, very low mastery, no haste ("control/avoidance")
The data suggests that over short periods (~4 seconds, or 15 hits), the hit/exp/mastery sets aren't as good as the high-avoidance sets at reducing spikes. #4 stands out here, and it uses a combination of high avoidance and high mastery. #9 isn't that far behind though, which is a hit/exp-capped set that focuses on avoidance.
This makes a lot of sense, too: you simply can't make sure that SotR is up to cover a part of every 4-second period with normal HP generation, so the "control" setups are going to have spike periods when SotR is down. The stochastic nature of avoidance is making it better over these time scales, because you're taking lots of small attacks and avoiding some of them. That makes the avoidance build ~2x as good at removing spikes above 80% of max possible damage intake, and ~3x as good at removing spikes above 90%.
As we move to longer time scales, the control sets (#7 and #8) start to pull ahead. Over a 5-second period (20 attacks), the gap narrows considerably, and by 25 attacks control/haste has pulled solidly ahead in all categories, and beats avoidance by a factor of 10 in spikes above 90%.
So it depends on what you're trying to optimize. Avoidance will give smoother overall intake for periods of <4 seconds, control/haste will generally win at 5+ seconds. Note that this also ignores cooldowns, which would tend to favor control strategies as you can optimize your SotR coverage by banking HP during cooldown effects and burning it between cooldowns (i.e., you could alternate cooldown-SotR-SotR-cooldown-SotR-SotR-, so that you have 6 seconds of SotR uptime in-between other DR cooldowns to stretch out your coverage window).