I'll add two points here :
- the combat table mechanism is pretty weird sometimes. It's clearly consistent in times, but there are for example no general answers wether players attacks are done one a 1-roll or a 2-roll system. During TBC, hunter community research (I guess that's the same for rogues, but I'm not sure) that the auto-attacks were done with 1 system and special (yellow) attacks were done with another system. There is no way to guess it before checking.
- When theorycrafters refers to 1-roll or 2-roll systems, they do not speak about implementation details. In fact, it is possible to implement the 2-roll system with a single roll : it is sufficient to split the "regular hit" case of the first roll in two different cases, one for effective regular hit, and one for critical hits. What these terms refer to is the question whether critical hits (or blocks) are a subcase of or independent of regular hits. In a two roll system, your effective critical chance is equal to regular_hit_chance X crit_chance, whereas in the 1 roll system, your effective critical hit chance is simply your crit_chance.
... What these terms refer to is the question whether critical hits (or blocks) are a subcase of or independent of regular hits. In a two roll system, your effective critical chance is equal to regular_hit_chance X crit_chance, whereas in the 1 roll system, your effective critical hit chance is simply your crit_chance.
Yeah so I was basically saying (and following your terminology) that unlike critical hits, critical blocks are a subcase of blocks, whereas critical hits are separate from regular hits.
So you may have 28% hit on the combat table, and 14% crit. This gives you a total effective %, that 42% of your attacks will land, and half(edit incoming), sorry no actually it's 1/3 of those landed attacks were crits. The remaining 58% of your attacks are dodged, parried, blocked, or miss.
But if you can block 30% of attacks, and critical block 30% of the time, that doesn't give you an effective block rate of 60% where half of those blocks are crit blocks (and I'm assuming 0% dodge and parry to avoid pushing block off the table)... It actually gives you a block rate of 30%, where 30% of those blocks are crit block. So... 30% of 30% of attacks against you are crit blocked, while the other 70% of 30% of attacks are blocked.
Do we have a definitive point where you would want to stop reforging Dodge to Parry due to diminishing returns? I know data shows that it is wise to keep the two fairly close, but at what point do the DR of Parry out weigh the benefits of additional Hold the Line procs?
I was also curious about the optimal Parry:Dodge ratio, so I wrote some MatLab code to try and figure out what's best. It's based off a very basic fight with 4 incoming attacks during a 10 second interval. Here are my findings:
Here's how I went about things:
1) I wrote a bit of code to calculate the expected percent of damage taken from a boss level mob given armor, parry, dodge and mastery ratings. It assumes shield block usage on cooldown.
2) Fix armor rating at 36K
3) Let mastery rating vary from 2000 to 4000 in increments of 400.
4) For each mastery value, let the sum of dodge and parry rating vary from 2000 to 4000 in increments of 100.
5) For each value of dodge + parry rating sum, begin with equal ratings. In small increments, increase parry rating and simultaneously decrease dodge rating to simulate reforging. Keep track of expected percent of damage taken for each difference.
6) For the parry and dodge ratings that minimize expected percent of damage taken, find their ratio and record it. Plot the optimal ratio for each dodge + parry rating sum value.
7) Repeat this for each mastery rating value.
The graph should be fairly self-explanatory. Let me know if something is unclear.
Last edited by swcarden : 02/10/11 at 5:12 PM.
Reason: Image didn't show
Nice graph. I compared it to my spreadsheet and the two are pretty much saying the same thing (as far as I can tell from the picture).
More precisely according to my spreadsheet at 2437 mastery, 1943 parry rating, 1623 dodge rating (3566 total, 1.19 ratio) parry and dodge rating are close to equal in terms of damage reduction.
@swcarden
When you list optimal parry/dodge ratios, are they:
a) Ratios of post DR percentages (with the inclusion of non-DR avoidance)?
b) Ratios of their respective combat ratings?
c) something different?
The answer is b), combat ratings. The functions accepts combat ratings and a sub-function determines post DR avoidance percentages that are used in mitigation calculations. So, for example, if your particular stats corresponded to 1.25 on the Y axis, then your parry tooltip should be 125% of your dodge tooltip.
@Shan
I'm glad to hear that. Even if we made different assumptions about the tanking situation, it makes intuitive sense that the difference in the best ratio should be relatively small.
swcarden -- thanks for the graph. I am one of the authors of askmrrobot.com, and I am working on updating our protection warrior stat weights to incorporate all the latest and greatest theory. Hold the Line has been kind of a headache for me... difficult to decide how much higher to put the stat weight for parry over dodge.
I am updating our code to dynamically adjust parry/dodge stat weights for DR, and also to dynamically adjust the stat weight for mastery (because it gets better and better due to critical block).
Probably the most useful number for me to tweak how parry relates to dodge would be: as I add more parry, how much does the average up-time on hold the line increase? e.g. if I have 10% total parry and I increase my total parry to 11%, how much does the percent up-time on hold the line increase?
Would it be possible to tweak the output of your matlab program (or Shan -- your spreadsheet) to report this statistic? It would be quite helpful -- we're hoping to make askmrrobot.com a definitive source for choosing and optimizing protection warrior gear.
Also, I am assuming that when you guys say that parry/dodge rating become equal to each other is the point at which hold the line has a 100% up-time, and adding more parry no longer increases it?
Would it be possible to tweak the output of your matlab program (or Shan -- your spreadsheet) to report this statistic? It would be quite helpful -- we're hoping to make askmrrobot.com a definitive source for choosing and optimizing protection warrior gear.
The way I'm calculating HtL uptime in Excel is
1-(1-ParryChance)^(10/TimeBetweenAttacks)
with parry chance being 0.1587% for example. TimeBetweenAttacks should be self-explanatory and is in seconds.
This yields values that are very close to that of a simulation a guild member wrote for me, so I went with it.
Personally I'm completely unable to come up with an elegant and comprehensive formula. I'm pretty sure someone better at math than me could come up with a (relatively) simple formula that is pretty close to what the graph shows though.
The way I compare the ratings is to just calculate damage taken four different times (once with current stats, once with an extra 40 parry rating, once with an extra 40 mastery rating, once with an extra 40 dodge rating). That allows me to see the effect of each of the three ratings. It's a fairly elaborate process as many different things need to be taken into account.
Also, I am assuming that when you guys say that parry/dodge rating become equal to each other is the point at which hold the line has a 100% up-time, and adding more parry no longer increases it?
It's not possible to get anywhere near 100% uptime in practice. At lower parry chances HtL uptime increases pretty quickly but it slows down later. That's why the curve on the graph starts becoming more and more flat as the ratings increase.
The reason that it's possible for dodge rating to became as useful as parry rating is due to diminishing returns.
Thanks Shan -- I found a little time this afternoon and yeah, after looking at it for a bit it becomes pretty apparent that you can't get 100% up-time on hold the line!
I wrote a very quick program to spit out average up-time on hold the line at different parry values, assuming you are getting hit every 2.5 seconds:
This is a pretty basic proc calculation, but ultimately this is what you want to know in order to weight parry in relation to dodge: if I add X parry rating, how many more critical blocks will I get? Of course you also have to factor in your current block rate -- I'll be doing that in the code as well.
Using this data, I'm going to generate some new default stat weights for askmrrobot.com. Since our code automatically adjusts parry/dodge for diminishing returns, and automatically adjusts the value of mastery as you get more of it (note that the latter is not live yet, but will be in the next day or two), I'm hoping that our website will start generating some very good sets of protection warrior gear.
I will cross-reference it with the information in this thread when I'm done -- I expect the optimizer to start balancing dodge/parry at similar ratios to the graph above.
I have updated Mr. Robot to account for critical block and hold the line in our BiS gear lists and gem/enchant/reforge optimizations.
Note that even though the default weights say that parry/dodge are better than mastery, that's just at a "base" level: no DR on parry/dodge, and only the base 8 mastery (32% block and ~14% crit block, get an extra 2% from ~20% hold the line up-time at the base 5% parry).
Once you start putting on gear, mastery comes out ahead of dodge/parry pretty quickly, and you'll see that it suggests gemming/reforging to increase mastery, for the most part -- this dynamic adjustment of the stat weights is done automatically behind the scenes. I plan to put up an article explaining exactly how we do it sometime in the next couple of days.
Note also that the code automatically handles balancing dodge/parry to reduce the effects of DR. The ratio of parry to dodge should be pretty close to those in the graph a few posts up.
Anyway, check it out -- Mr. Robot should be coming up with some pretty good protection warrior gear sets now.
Anyway, check it out -- Mr. Robot should be coming up with some pretty good protection warrior gear sets now.
It looks pretty good. Congratulations on putting this together.
However the stat weighting for bonus armor can't be right. They suggest that dodge rating is 10 times better than bonus armor. Yes, I realize they are essentially for a naked character, but still.
According to my own calculations, the cost of +1 bonus armor is 0.25 now (with the cost of any rating still being 1). So we should compare, say, 400 bonus armor to 100 dodge rating.
In my spreadsheet, with my current gear, the 400 bonus armor gives ~59% of the damage reduction over time that the 100 dodge rating gives (with +2% armor meta and full raid buffs).
I did some calculations similar to Shan's above. Using my code with my character's gear, I compared 1 dodge rating to 1 armor rating, and found 1 dodge rating to be worth 5.0528 as much as much as 1 armor rating.
So that we are comparing apples to apples, let's change the units on Shan's result.
400 armor worth .59 as much as 100 dodge =>
1 armor worth .1475 as much as 1 dodge =>
1 dodge worth 6.7797 as much as 1 armor
Now, Shan's character has much better gear than mine, so it makes sense that he values armor less than me. Armor is only useful for non-avoided attacks. Because he has higher avoidance, he takes less of those while I take more.
I've looked at the armor weight calculation on your forums. I may have a suggestion to improve it, in which case I'll post there.
I have done quite extensive work recently in getting the relative calculations of Dodge vs. Parry vs. Mastery working accurately in Rawr.ProtWarr, and if you haven't checked it out yet I would encourage you to do so. Using the Optimizer to optimize for Mitigation generally results in very well-balanced results.
The main reason to use the Optimizer rather than looking at relative stat values or a spreadsheet is that after looking at this for some time, the relative value of each element fluctuates pretty massively back and forth. While the DR curves and Mastery vs. Avoidance curves are simple enough on their own, the interaction is somewhat complex especially considering how both Hold the Line the Mastery work.
Shield Block uptime also influences things a fair bit, which is also supported now.
(In regard to the conversations of the two-roll nature of Critical Block: much testing on PTR was done on this, and it was pretty clear that it was two-roll. I have a number of logs which support this.)
Only when you begin to have threat issues post vengeance stacks would I begin to worry about threat. You are going to have a few people who have high threat (warriors hunters and mages mostly) but everything should smooth out after that. If its that much of a worry you could always use a weapon swap macro for high threat weapon/shield until vengance stacks up.
I have done quite extensive work recently in getting the relative calculations of Dodge vs. Parry vs. Mastery working accurately in Rawr.ProtWarr, and if you haven't checked it out yet I would encourage you to do so. Using the Optimizer to optimize for Mitigation generally results in very well-balanced results.
The main reason to use the Optimizer rather than looking at relative stat values or a spreadsheet is that after looking at this for some time, the relative value of each element fluctuates pretty massively back and forth. While the DR curves and Mastery vs. Avoidance curves are simple enough on their own, the interaction is somewhat complex especially considering how both Hold the Line the Mastery work.
Shield Block uptime also influences things a fair bit, which is also supported now.
(In regard to the conversations of the two-roll nature of Critical Block: much testing on PTR was done on this, and it was pretty clear that it was two-roll. I have a number of logs which support this.)
In regards to the Mastery vs. dodge/parry discussion, I noticed that most people comment that the benefits of dodge and parry diminish with higher rating whereas mastery stays the same. I threw together a little spreadsheet and if my math is right it looks like mastery actually scales up the more you have (apparently due to the increased block chance simultaneously increasing the amount critically blocked.)
I started with a base mastery of 8, which on a naked 85 warrior gives 32% block and 12% crit block.
I took a base damage amount of 1000 and factored that 320 of that damage would be "blocked". Of that 320 damage:
88% would be blocked normally for 84.48 (320 * .88 * .3 = 84.48)
12% would be critically blocked for 24.04 (320 * .12 * .6 = 23.04)
For a grand total of 107.52 damage, giving 8 mastery a damage mitigation of 10.75%.
I applied the same formula up to 30 mastery. I tracked the difference between each point of mastery and by how much additional points increased mitigation. Assuming the logic behind the math is correct, your first point of mastery (9 points total) increases your mitigation by .65%, whereas your 22nd point (30 points total) would increase your mitigation by .94%.
To double check this upwards scaling, I applied the same math to a paladin's mastery which only gives 2.5% block chance and no crit block and they had a constant .675% mitigation increase per point of mastery.
So in essence, stacking mastery only gets better the more you have. For those who care, it appears that the incremental mitigation increase per point of mastery is equal to 1.0135%. Meaning, adding another point of mastery will give you the same mitigation increase as the previous point plus PLUS 0.0135%. Below is the table that tracks each point of mastery 8-30.
I like the graph Submatrix, and it makes sense that mastery would behave that way thanks to critical block also being increased. However, I'm wondering how mastery stacking is affected when approaching (and surpassing) the soft unhittable cap with shield block up since every point of normal block is wasted above that threshold. Does the increasing returns in mitigation for 66% of the time (shield block down) make up for the waste of mastery when pushing over the unhittable soft cap 33% of the time (shield block up)?
I like the graph Submatrix, and it makes sense that mastery would behave that way thanks to critical block also being increased. However, I'm wondering how mastery stacking is affected when approaching (and surpassing) the soft unhittable cap with shield block up since every point of normal block is wasted above that threshold. Does the increasing returns in mitigation for 66% of the time (shield block down) make up for the waste of mastery when pushing over the unhittable soft cap 33% of the time (shield block up)?
Every point of normal block above that threshold is converted to critical block, not wasted (Shield Block - Spell - World of Warcraft). It shouldn't make a difference.
Broseph is correct. Using the same code from which I made the graph in post #254, I found that even when past the unhittable during shield block threshold, mastery still gives more benefit per point than dodge or parry.
Soon I hope to more fully explore what happens as we push further past the soft cap and post some results.
I calculated the values for:
mastery = 3500(0.36% unblocked, already 100% critblock with shield block and HTL)
3600 (all blocked, ~2% critblock wasted with shieldblock and HTL)
3800 (all blocked, during shieldblock no gain out of HTL)
dodge = 2500, parry = 3000, armor 35693, eternal meta and blockenchant
Mastery was worth dodge: 1,28 (3500), 1.21 (3600) and 1.1 (3800) and parry was always slightly ahead of dodge (around 1.03 dodge = 1 parry).
So there will definitly be no real cap to Mastery, with the values above it seems that at the moment you put your crit-block over 100% with hold the line, Mastery is only worth 0.66 dodge witch happens around 5200 mastery)
The main reason Mastery has increasing returns is the two-roll nature of Critical Block. The increased chance to Block directly increases the value of the Critical Block portion of your Mastery.
This indrectly increases the value of Parry via Hold the Line due to the talent granting Critical Block. Due to increased Critical Block roll opportunities, the value of Hold the Line increases at a similar rate to Mastery.
Soft-capping with Shield Block doesn't really stop this ramping-up effect.
As Tharamis is no longer playing, I took his code and made some (hopefully) interesting changes:
*Raidbuffs are included
*Statsweights
*rating needed for 1% relative/absolute less damage taken (mastery/dodge/parry)
I simd most Tanktrinkets out there (keep in mind with my gear ~359 bis, only bracers 372) and got the following avoid-incoming-damag ranking (lower = better) (I neglected Stamina, as everyone has to rat it for himself)