(Madness of Block)
In the latest developer blog, it was revealed that blocking will move to a two-roll system – one roll for avoidance, and a second roll for blocking if we fail to avoid. In addition, we learned that block will be receiving diminishing returns. These aren’t necessarily surprising developments. After all, they were some of the more obvious solutions I mentioned in an earlier blog post. It’s a little disappointing that they chose the boring solutions rather than trying for something more interesting, though (my favorite idea is still a Reckoning/Redoubt-like effect: fixed block chance of ~30%, and taking an unblocked hit gives you 2-3 charges of +50% block chance and +10% block value, blocking uses a charge).
However, I’m a little critical of the two-roll system. The emperor has no clothes, if you will, because the two-roll system doesn’t fix any of the problems with blocking. It’s completely equivalent to keeping a one-roll system and simply nerfing the mastery-to-block conversion ratio. And the downside is that it introduces counter-intuitive behavior that’s both confusing and completely unnecessary.
To start, let’s demonstrate the equivalence of the two systems. With the two-roll system, assume we have 5% chance to be missed, 15% dodge, and 5% parry. Let’s also assume that we have 25 mastery, and each point of mastery gives us 2% block, giving us a total chance to block of 50%. We have the following two combat tables:
|Table 1||Table 2|
|31-100||Roll on table 2|
So we roll on table 1, and if we don’t avoid the attack we roll again on table 2. What’s our net chance to block? Well, it’s the probability that we don’t avoid the attack (70%) times the probability that the second roll results in a block (50%). So our net chance to block is 0.7*0.5=0.35, or 35%. So compared to having 50% block on the first table, 50% block on the second table is worth 30% less because of our avoidance. A similar thing happens for DPS specs with critical strike – not being hit-capped devalues your critical strike rating.
Now let’s consider a one-roll system, with a combat table that looks like this:
This one-roll table gives us exactly the same results as the two-roll system. We still have 5% miss, 15% dodge, 10% parry, 35% chance to block, and 35% chance to be hit. You can get this table by using a 1 mastery = 1.4% block conversion rate instead of 1 mastery = 2% block. In other words, there’s a “one-to-one” mapping of the two-roll system on to the one-roll system. Anything you can do in one system, you can do in the other. Which makes the two-roll system extraneous – we don’t need it to fix block, because it isn’t actually doing anything useful. In short, for a fixed amount of avoidance, the two roll system is equivalent to just nerfing the mastery->block conversion rate.
That in itself isn’t a problem, because mastery did need to be nerfed somehow. And if the two systems are so equivalent, you might ask why I’m critical of it. The answer is twofold: it’s adding unnecessary complication to a simple and elegant system, and more importantly, that extra complication introduces some weirdness that doesn’t happen in the one-roll system. Much like the current Vengeance implementation, this extra complication causes collateral damage.
Note also that the presence of diminishing returns doesn’t change anything. In the same way that you can map the two-roll probabilities on to one table, you can find an equivalent diminishing returns equation that matches whatever is used in the two-roll system. So diminishing returns doesn’t affect this relationship at all.
To see the real problem, first let’s take a look at a statement Ghostcrawler made in the blog:
- The chance to block will be handled by a separate combat roll for each attack that is not avoided. In other words, we first determine if an attack misses, or is dodged or parried. If it is not, then the attack has a chance to be blocked.
- This gives block a consistent value, regardless of avoidance. Currently block becomes more valuable the more you have.
This is a little vague, in that “value” isn’t well defined. I’m not yet sure exactly what he meant, but by most of the relevant measures, the second statement is flat-out false. Let’s consider what happens in the earlier scenario if we add another 10% parry. The combat table becomes:
|Table 1||Table 2|
|41-100||Roll on table 2|
Which gives the single-roll equivalent table:
Notice here that while we’ve gained 10% avoidance, we’ve lost 5% block! In the (true) one-roll system, block and avoidance are completely independent – gaining 10% avoidance doesn’t change how much block you have (provided you aren’t capped). But the two-roll system inherently couples avoidance and block (or more accurately, couples block to avoidance – it’s a one-way street, in that avoidance affects block but block doesn’t affect avoidance). The two-roll system introduces an interdependence that leads to some really unintuitive behavior. When you increase your avoidance, you are effectively reducing your mastery-to-block conversion factor. If it’s 1 mastery = 1.4% block at 30% avoidance, it drops to 1 mastery = 1.2% block at 40% avoidance.
So the statement that that “block gives a consistent value, independent of avoidance” is clearly false using this metric, because increasing your avoidance reduces the effectiveness of every point of mastery you have.
What if he meant that the damage prevention value of block is unchanged? Bear with me here, I’m going to break out a little calculus. Damage taken can be characterized by this equation:
D ∝ (1-A-Bv*Bc)
Where D is damage taken, A is avoidance, Bv is block value (fixed at 30%), and Bc is your block chance. We already know that Bc is reduced because of the two-roll system; if we have block chance Bc0 on the second table, it’s only Bc=(1-A)*Bco “effective” block in the equivalent one-roll system. If we differentiate that, we get dBc=-dA*Bco, which means that increasing avoidance decreases our effective block chance (again, we already knew that). If we differentiate the damage taken equation and plug our expression for dBc into it, we get:
dD ∝ -dA-Bv*dBc = -dA + Bv*Bco*dA = -(1-Bv*Bco)*dA
What does that mean though? Well, increasing avoidance reduces our damage taken by dA. But the resulting reduction of block value also increases our damage taken by Bv*Bco*dA. Now, Bv and Bco are both necessarily less than one, which means the increase is always less than the decrease. For representative values (30% block value and 50% block chance, or Bv=0.3 and Bco=0.5), we find that about 15% of the damage prevention gained through avoidance is offset (or wasted) by an increase in damage taken due to less efficient blocking. So it’s still a net gain to add avoidance, but it does mean that the block chance we have is getting less effective at preventing damage than it was before. Again, the statement that block will “have a consistent value, regardless of avoidance” is demonstrably false.
Maybe he meant that the damage “smoothing” value of mastery would stay the same? I have doubts about that, not least of which because nobody has a very good model or metric for what damage “smoothing” even means. In the past, developer and CM comments have indicated that they don’t put much stock in the damage smoothing argument anyway, so it seems unlikely to me that they’ve put any time into generating a sophisticated model of damage intake profiles. And worse yet, it would be a horrible metric to use in a blog post, as the majority of the readers wouldn’t understand what such a smoothing metric would mean in the first place. But even if all of those assumptions were correct, the smoothing will be a function of the “effective” block chance in the one-roll equivalent, which depends on avoidance in the two-roll system. So it’s virtually impossible for any smoothing metric to give a consistent value for block independently of avoidance.
He might have meant that we won’t have to worry about “wasting” over-capped mastery. If you take the view that excess block chance beyond what’s needed to cap reduces the value of your existing mastery, he has a point. Though any paladin worth his salt will reforge to waste as little of that as possible, and the variation isn’t great because we generally “waste” a very tiny percentage of our overall mastery. So even if it does make the statement true, it doesn’t make much sense, because it’s essentially meaningless. They eliminated a fluctuation of ~0.1% that nobody was overly concerned about in the first place.
And worse yet, the fact that they’re introducing diminishing returns means that it can’t possibly be a consistent value, because the whole point of diminishing returns is to decrease the value as you get more of something.
So in short, I don’t have any clue what Ghostcrawler means by that statement. I can’t find a definition of “value” in which block isn’t somehow affected by avoidance in the two-roll system. Every metric I can come up with shows some sort of dependence on avoidance, and all of them have a negative dependence, meaning that avoidance makes block demonstrably worse.
I don’t think that’s at all intuitive, and it’s the primary reason I think the two-roll system is unnecessarily complicated. It doesn’t do anything to help prevent block-capping, because you can get the same results with a one-roll system. I suppose it makes the block-cap more obvious, because it’s now always 100% instead of being level-dependent, but due to diminishing returns we’re not supposed to be hitting block cap anyway. So there’s no apparent gain to be had by moving to a two-roll system.
My other fear is that it will relegate mastery to a dump stat, because all of the proposed changes suggest a significant nerf to its value. Keep in mind that since we can’t cap block anymore, mastery becomes first and foremost a “healer mana conservation” stat, like dodge and parry. It won’t be an anti-burst stat, like Stamina or cap-able mastery. Combine that with a nerfed conversion rate and the ability to guarantee blocks with SotR, and mastery could very easily become much less attractive than avoidance.
Which might have been the point, I guess – it certainly needs to be toned down compared to where it is on live. But it may mean that we don’t care much about secondary stats at all, because they’re all fairly uninteresting. I feel sad that we didn’t get a more interesting or exciting revamp of mastery, especially when there are lots of viable options. Block is sort of boring, but at least it’s strong in 4.x. Make it boring and weak, like dodge and parry, and it’s really bland.
So the two-roll system introduces unintuitive behavior for no apparent gain. It doesn’t solve any problems with blocking, and it doesn’t give the developers any new degrees of freedom. It’s 100% extraneous from a mathematical point of view. So it just comes off as sort of pointless. Why put developer time into building a system that doesn’t improve anything, and introduces new problems?
I mean, it’s not the end of the world or anything. A two-roll system will work, and I’ll spend the next two years explaining the intricacies of avoidance-block coupling to new tanks who struggle to understand why avoidance makes their mastery worse. But I can’t help but keep thinking, “Why?” Because the change just seems so utterly pointless to me.