Simulationcraft v540-5, Warcraft Logs, and BlizzCon

Sorry that I’ve been silent for a while, the last few weeks have been very busy.  Between family obligations and a number of other projects, I just haven’t had a lot of time to blog.  Also, I was pretty happy with that last blog post, and figured it could stand to have some more front page time.  But things are slowing down for me in real life, so it’s about time I got us caught up.

Simcraft

First of all, Simulationcraft version 540-5 has been released this week.  As always, you can get it at the download page.  It contains several notable improvements/changes for us

Changelog

  • Updated TMI bosses
    • Damages fine-tuned to be closer to Garrosh damage
    • DoT damage fixed at 5% of raw melee damage
    • T17Q boss added for fun / playing with full heroic profiles
  • HTML reports re-written to show healing (HPS) and absorption (APS) independently for clarity.
    • Charts still show HPS+APS like they did before

Paladin

  • Divine Protection bugfix (this was actually in 540-4, I just didn’t blog about it)
  • Retribution APL tweaked for higher DPS, T16 profiles updated

To illustrate the reporting issue, here’s how it looks for a T16N profile that’s been tweaked to use Sacred Shield instead of Eternal Flame:

Simcraft 540-5 report showing absorbs

Simcraft 540-5 report showing absorbs.

The “Results, Spec, and Gear” section now breaks down HPS and APS independently in a more readable fashion.  So in this case, we generated 85892.2 healing per second, ignoring overhealing, and our Sacred Shield gave us 37299.5 absorption per second.  The title line reports this as total HPS+APS, which is 123192 HPS, followed by the absorption in parentheses to tell you how much of that total was due to absorbs.

Scaling Problems

I’ll also note that the results you see with these bosses are a little weird.  For example, if you sim the T16H profile against the T16H25 TMI boss, you get a health timeline that looks something like this:

T16H profile is self-sufficient against the T16H25 boss.

In other words, we’re generating more self-healing than the boss is dishing out in DPS.  This surprised me at first, but as far as I can tell the simulation is fairly accurate.  It turns out that Eternal Flame and Seal of Insight scale very well with attack power, and thus with Vengeance.  At a certain Vengeance level (reached around 10N T16 levels in appropriate gear) we simply become self-sufficient against this boss thanks to the sheer AP scaling of those two skills.

This means that at the top end, the TMI results will be fairly insensitive to small stat changes, and thus if you generate stat weights you might get garbage.  And unfortunately, cranking up the boss doesn’t always fix the problem – in many cases the sheer Vengeance increase is large enough that it doesn’t matter.

I haven’t found a good solution to this yet, unfortunately.  Part of the issue is that the simulation is very rigid – the boss always attacks you every 1.5 seconds, so your Vengeance timeline looks something like this:

Vengeance timeline for T16H profile against T16H25 boss.

And note that this isn’t the averaged version – this is for a one-iteration sim.  Vengeance flatlines after the ~20-30 second ramp-up period, which makes you a self-sufficient healing dynamo.  In reality, bosses look like this:

vengeance_for_realz

AP for a real encounter, in this case mine for 25H Malkorok

This is total AP, but obviously most of that is Vengeance.  I don’t start tanking on this boss (25H Malkorok), so my AP is pretty flat until I taunt.  then we have the slow ramp-up from ~200k to ~500k as I take damage.  Then the other tank taunts and my Vengeance begins to decay away.  And this cycle repeats itself over the course of the fight.

Simulationcraft has no concept of aggro, so we can’t do tank swaps (yet).  But in any event, it’s clear that at no point do we have a steady 500k Vengeance at our disposal.  Our average while tanking is probably closer to 300k-350k, so our survival tweaks should be aimed at optimizing around that value.  Which means we somehow have to artificially decrease the Vengeance we have in Simcraft.

My tentative plan at the moment is to introduce a damage source that doesn’t grant Vengeance, like a ground effect that your tank automatically stands in.  Then the TMI bosses would always include some amount of damage from this source to artificially reduce the Vengeance that boss grants.  I don’t think I’m going to bother doing this until the next expansion, which gives me some time to think about whether this is really the best implementation or not.  I’m open to alternatives if people want to suggest them.

Warcraft Logs

WCL logo

In case you were wondering where that sexy AP vs. time graph came from in the last section, it’s from Warcraft Logs.  This is a new competitor to World of Logs designed and run by ex-Tankadin (now Feral Druid) Kihra of Temerity.  I’ve been helping him bugtest it over the past month or two, though I really don’t deserve much credit since all I do is upload some logs and complain to him about things that are broken.  It’s just recently gone into its Friends & Family alpha phase, so the client is invite-only at this point.  But if you want to play around and see what sorts of things it can do, you can dig through my guild’s logs here: http://www.warcraftlogs.com/guilds/6/

There are a lot of features that are planned for this site that I’m not comfortable talking about without Kihra’s permission, but if they all pan out this will be the go-to site for combat log analysis.  I really can’t wait until it becomes publicly available. And of course, one of features I will incessantly nag Kihra to implement until he does so is automatic calculation of TMI for an encounter based on your health resource log.

Anyway, I encourage you to peruse the site and see what it can do.  Note that I’m not directly involved with the site at all, just a friend of Kihra’s who offered to help test the site.  So if you’re interested in participating in the beta, you’re probably better off watching @Kihra and @WarcraftLogs on twitter.

Hopefully I’ll have some time in the next month or two to do a full blog post on the site with a basic How-To guide and maybe highlight some of the more novel features.  We’ll see though, we’re only a week away from Blizzcon!

BlizzCon

Speaking of BlizzCon, I’ll be attending this year.  I haven’t figured out my complete schedule, but I do know I’ll be at the WoWInsider/wowhead party on Thursday night at the Anabella.  Beyond that nothings certain, but I’ll probably be at the Hilton parties Friday and Saturday night.  I probably won’t have a custom badge or anything, but if you look for a short guy in jeans and a polo shirt wearing a “Hi, My Name Is Theck” sticker, you might spot me.  If you want to meet up or say hi, watch my twitter – I’ll probably be tweeting where I’ll be during the con so that people can find me.

Posted in Simcraft, Simulation, Tanking, Theck's Pounding Headaches, Theorycrafting | Tagged , , , , , , , , , , , , , | 15 Comments

Timewaste Isle?

Patch 5.4 brought us the Timeless Isle, which is a new approach to providing content.  Rather than a bunch of daily quests to lead you around the island by the nose, it went for a very open-world, sandbox-y approach.  While there are a few quests to get you started, and a handful of daily or weekly quests you can do, the majority of the achievements and other things to do on the island are uncharted.  You wander around and explore until you stumble across something cool.  It’s a really interesting way to approach new content, and quite the reversal from the daily-heavy introduction we had to the Mists expansion.  And frankly, on paper it looks like a lot of fun, and I was looking forward to it.

But, as it turns out, stuff that looks good on paper doesn’t always work.

Because in reality, I’ve had a miserable time on the Timeless Isle so far.  There have been spotty moments of fun and the occasional neat experience.  But the vast majority has been a frustrating experience that encourages me to avoid the new content rather than experience it.

And I’m not even talking about the ludicrous reputation grind that Emperor Shaohao represents.  While I feel that reputation grind was a bit silly and poorly planned, it’s a minor footnote, not a major irritation.  Sure, it’s annoying, but it’s also completely optional and not designed to be a 3- or 4-week grind; it’s an “insane”-style long-term goal, which is fine since it’s only awarding vanity stuff.

Nor am I complaining about the inconsistency of gear acquisition for alts.  It is annoying that Burdens of Eternity, which are scarce enough as-is, aren’t account-bound.  The four I’ve found on Theck are rotting in the bank because I have nothing to use them on, which is a shame.  But I see the intent, even if I disagree with the execution: they want you to play your alt in order to gear it.  Unfortunately, the reputation grind and achievements on the Isle encourage you to focus on your main if you’re working with limited play time, so the achievements and reputation work at cross purposes to the alt-gearing mechanisms.  And all of that misses the larger issue that’s preventing many people from raiding on alts, which is the legendary cloak quest line.  But while all of that is annoying, it’s not my major gripe about the Isle.

Because this post isn’t actually complaining about the Isle’s content.  As I said earlier, I think the content itself is pretty solid.  The problem is that the Timeless Isle exposes one of the core weaknesses of World of Warcraft: World PvP.

Rotten Core

Now, before we go too far down this rabbit hole, let’s be completely clear about that pronouncement.  First, I’m a total carebear in WoW.  And despite that, I’ve been on PvP servers during my entire WoW career. I would probably choose to play on a PvE server if it were up to me, but it’s always turned out that the people I want to play with wanted to be on a PvP server, so I’ve quietly shrugged and accepted the consequences of those decisions. Living on a PvP server does means getting ganked once in a while, but the upside is that once in a while you get to do the ganking.

And to be fair, it’s not like I’m a pacifist. I played a fair amount of more competitive games in college (CounterStrike, Enemy Territory, Starctaft, WC2: BNE, and Diablo II PvP, just to name a few). I “get” the mindset of wanting to have spontaneous conflict.  And I have fond memories of PvP in the early days of Vanilla WoW.  But as I’ve gotten older, I’ve found that I value my time more and more because I always seem to have less and less of it.  If I log on and want to make some PvE progress, and get held up for 30 minutes because “PvP happened,” it just starts to feel frustrating and no longer fun.

But even given all of that, world PvP can be interesting, and traditionally WoW has been one of the better games about keeping it interesting.  I still remember the epic battles between Southshore and Tarren Mill back before Battlegrounds existed.  Those could be incredibly fun, as could chance one-on-one encounters while leveling or questing.  So this isn’t me complaining that open-world PvP can’t co-exist with PvE in the same game, because it demonstrably can, and first few expansions of WoW are one of the best examples of that.

No, the core weakness I speak of isn’t that World PvP exists.  It’s that WoW’s PvP servers have a critical and fundamental failure mode that manifests itself over a sufficiently long period of time.  To illustrate that failure mode, let’s take a walk down memory lane.

Story Time

In the beginning, there was Vanilla WoW.  And a rag-tag group of veteran Diablo II players decided to create a WoW guild.  I was one of those players, and my group of friends decided to choose a PvP server under the assumption that there wouldn’t be a lot to do at max level other than world PvP (boy were we wrong!).  We landed on Blackrock Alliance (chosen somewhat randomly from amongst the PvP server list) and started our WoW careers.

Blackrock was fairly well balanced during the first few years of WoW.  It was a high-population server (often with nightly queues that made raiding difficult), but the population was fairly well distributed amongst Alliance and Horde.  Keep in mind that at this point in time, there were no server transfers.  If you wanted to move to another server, you had to roll a brand new character there.  You also weren’t allowed to have a character on both factions of a PvP server at that time.  Both of those made the concept of “Character Mobility” essentially moot, because there literally was none.

The faction balance persisted pretty well throughout the Burning Crusade and the majority of the Wrath of the Lich King.  Or at least, I don’t remember a time when Alliance felt massively outnumbered in world PvP or PvE content.  If there was some slight balance drift, it was small enough to not be noticeable, likely in large part due to the lack of character mobility.  Character server transfers became a “thing” in 2006, but for some reason it didn’t cause any sort of severe imbalance.  It could be that the 6-month lockout period and $25 fee had a chilling effect that kept things stable, or it could just be pure luck given that other servers had already succumbed to severe faction imbalance.

Either way, near the end of Wrath of the Lich King, things changed.  A guild named Adept, who was ranked world #2 at the time according to WoWprogress, transferred to horde side on Blackrock.  This was the metaphorical straw that broke the camel’s back, tipping the first domino as it were.  Horde already had several strong, competitive raiding guilds at that point, and the addition of Adept just made that faction even more appealing.  Ambitious raiders (or would-be raiders) flocked from Alliance to Horde, figuring that their chance of getting into a strong raid team (even if it wasn’t Adept) was much higher just due to the higher concentration of serious players.

By the end of Wrath, Blackrock was already starting the downward spiral into a single-faction server.  Leveling in Cataclysm was frustrating because for every Alliance at a quest-giver, there were 3-5 Horde.  It was very difficult to level outside of dungeons unless you got ahead of the pack by starting at midnight or stayed behind the pack by starting significantly later.  It was a really good thing (for me) that Cataclysm didn’t encourage open-world play very much, because Stormwind was one of the few places in which you wouldn’t get ganked every 10-15 minutes (in this case, I use “ganking” to mean “overwhelmed by horde”).

Leveling in MoP was similarly frustrating, because by this point the ratio had tipped to 10:1 or higher in favor of Horde.  My guild was literally one of the only raiding guilds left on Alliance.  Between recruitment issues, the difficulty of leveling from 85-90, and the increased focus on open-world content in Mists, we agreed that we’d quit in frustration if we had to continue to play on Blackrock.

So after the first week of Mists, we transferred.  A large portion of the guild still wanted the flavor and atmosphere of a PvP server.  So we chose Tichondrius based on a few criteria, the foremost of which was that it had a roughly equal (though slightly Alliance-leaning) faction balance.  And for the first month or two, things were pretty good.  I can’t imagine doing those Golden Lotus dailies on Blackrock, but on Tichondrius it was pretty painless.  There were enough of both Horde and Alliance in the zone that it felt like a proper PvP server – that feeling of uneasy truce that spontaneously erupts into world PvP once in a while.

Sadly, it wasn’t to last.  Unbeknownst to us, a large chunk of the active PvP players on Alliance had decided to switch to Horde in early Mists.  And that tipped the scales just enough to start the same sort of population shift that occurred on Blackrock.  Throughout patches 5.1 and 5.2, the Alliance population steadily dwindled while the Horde population grew.  Doing dailies on the Isle of Thunder became more and more difficult as we became more and more outnumbered.  The focus shifted from worrying about stomping 75 roaches to worrying about dodging the roving bands of 5-10 Horde indiscriminately killing any Alliance players.

By the time 5.3 rolled around, we were thoroughly outnumbered once again, just as we had been on Blackrock.  Even though it’s not as numerically imbalanced as Blackrock was (if WoWprogress is to be believed – more on that in a second), it’s arguably worse because there’s also a distinct play-style difference involved.  The remaining Alliance are biased towards PvE content, while Horde is biased towards PvP content.  So we’re not just outnumbered, but those Horde also tend to be wearing PvP gear.

Population Dynamics

As entertaining as that story was (or wasn’t), the point was that there’s a distinct failure mode for a PvP server.  When the factions are fairly balanced, a PvP server can be very enjoyable, and both factions can thrive, often to the benefit of both.  In vanilla WoW or Burning Crusade, it wasn’t hard to round up four or five Alliance players to help clear a group of Horde out of the entrance to Serpentshrine Cavern.  As Blizzard would put it, there was a “PvP solution” to that situation, and by taking advantage of it we’d often meet new people or build up relationships with people from guilds we already interacted with.  These “team up to survive” type experiences built up a sense of respect and pride in your faction and the people on it.  And I think that the solidarity it built up was unquestionably a good thing.

However, there’s a limited range of faction imbalance where this condition holds.  If you exceed that range – if the balance tips so far that you can’t feasibly grab a few people that happen to be in the zone and build a respectable counter-attack – bad things happen.  The players on the numerically inferior side tend to get frustrated when trying to take part in open-world content, because it’s hard to feel like you’re making any progress when you’re getting ganked every 20-30 minutes (or less).  And that feeling of solidarity, of being able to team up and overcome adversity, just breaks down into trolling.

That gives players a strong incentive to avoid content (both PvE and world PvP) rather than experience it.  Many players will just give up on that content and sit in town, only doing content they can queue for.  And that’s bad, because it means they feel like that open world they were promised by MoP has been taken away from them.  One method I abused heavily for Isle of Thunder was to use cross-realm groups to “borrow” someone else’s server while I did dailies.  That gives you the best of both worlds, but it’s a hassle, and I hate feeling like I’m inconveniencing a friend by shackling them to a party.

Eventually, all of this leads to an exodus of players from the weaker faction that can rarely be recovered from.  After all, nobody will want to transfer to that faction without a good reason, like a strong raiding or PvP guild.  But as those guilds and teams get frustrated and leave, that happens less and less.

As a physicist, this phenomenon isn’t unfamiliar to me, because there’s a perfect physical analogy to what’s happening on a WoW PvP server.  What we’re seeing is a case of unstable equilibrium in action.  To illustrate, this is what we mean by an “unstable equilibrium” in physics:

unstable equilibrium

An unstable equilibrium in physics. Image from http://nre509.wikidot.com/ball-well-diagrams-feedback-and-equilibria

Here, we have a ball sitting on a hill, perfectly balanced such that it doesn’t move.  We say that the ball is “in equilibrium.”  Which means that the ball will stay in that position – it’s at rest. But it’s an unstable situation – the slightest breeze could push the ball enough that it starts rolling down the hill, and is therefore no longer in equilibrium.

And this is exactly what happens on a WoW PvP server.  Even if the server starts out balanced, all it takes is a small event that breaks that balance to start a cascade in one direction or the other.  And once you head down that slope, it’s nearly impossible to recover – it’s far more likely that the server just bottoms out until it essentially becomes a one-faction server.  To put it in physics terms, there’s no “restoring force” here that encourages the ball (population) to come back into a balanced state.

The ideal case would be the opposite situation: a stable equilibrium:

stable equilibrium

A stable equilibrium in physics. Image from http://nre509.wdfiles.com/local–files/start/StableEquil.GIF

In this case, the ball starts at the bottom of the valley, in perfect balance.  If you push the ball slightly in one direction, it will climb up a little, but eventually roll back down and settle in the middle.  There’s always a restoring force that encourages the system to return to a stable (balanced) state.

And this is the fundamental problem with WoW and world PvP – there’s just no incentive to keep the factions balanced.  Once one faction gains an upper hand, it just gets easier for them to do everything, while becoming harder for the underdog faction.  There’s nothing to make being the underdog attractive, so there’s no restoring force.  Instead, PvP servers simply degenerate into being essentially single-faction PvE servers rather than being “true” PvP servers with constant (but balanced) inter-faction conflict.

For proof of that, let’s take a look at some data.  This is what we get if we look to WoWprogress for realm balance information for US servers:

wowprogress list

Faction balance according to WoWprogress.

It’s not hard to see the problem here.  Out of the first 6 servers, all of which are PvP servers, none have less than a 2:1 faction imbalance.  Some of them are very extreme (Mal’Ganis, Illidan, Sargeras, Stormreaver) while others aren’t as bad (Frostmourne, Kil’Jaeden).  But I doubt the Horde on Frostmourne or Alliance on Kil’Jaeden feel like the server is close to a balance point, either.

Extending this to the top 10 or 20 servers shows that this isn’t just a problem affecting PvP realms. In fact, out of the 30 realms shown, only a handful (Kilrogg, Caelestrasz, Turalyon, Ner’zhul maybe? all PvE realms I should add….) come close to having true faction balance.  Prominent PvE realms, like Stormrage and Area 52, also suffer from a very lopsided faction balance.  I suspect it’s less apparent in day-to-day play on those servers because you don’t end up eating dirt every 5 minutes thanks to the other faction.  And the imbalance is less likely to be caused by frustration than simply due to concentration of player talent.  But it’s still not an ideal situation, even on a PvE server.

I should note, however, that I’m not completely trusting of this data.  For example, WoWprogress suggests that while Blackrock really is in the 30:1 ballpark (it’s only gotten worse since we left), Tichondrius is only about 2.4:1.  But I don’t think that’s an entirely accurate reflection of world PvE content.  A large chunk of the remaining Alliance players never leave town, simply queuing for battlegrounds or arenas.  Whereas I think a lot of that Horde population goes out to see new content.  In any event, this sure as hell doesn’t look like being outnumbered by only a factor of two to one:

lotta horde

Two to one faction imbalance my ass.

I can’t go for more than about 5 minutes without getting attacked at peak hours, and easily see 4 or 5 horde (or more) for every one alliance on the Timeless Isle, suggesting WoWprogress’ data isn’t the entire story.  Even if that data is accurate for raw player numbers, it says nothing about how many of those Alliance take part in world PvE content, or for that matter how many are simply alts of Horde players that are never taken out of town.

And the Timeless Isle is really the worst-case scenario for a server like mine.  At least during the majority of Mists of Pandaria, the factions were spread out over a fairly large continent.  The Isle of Thunder concentrated those players in a smaller area, exacerbating the problem, but the Isle of Thunder was still pretty huge, so there was room to spread out.  The Timeless Isle is  nowhere near as large from a functional standpoint, because it funnels all of those players into a few more densely-populated areas (especially the Celestial Court) and has a number of choke points (the bridges on the path to Ordos).  And the Shaohao reputation grind, which further concentrates players into two or three small areas to farm Yaungol, makes things even worse.  Add the Emissary of Ordos mechanic, and you’ve got a giant mess on an unbalanced PvP server.

Restoring Balance

At this point, it may be tricky to reverse the process and force faction balance.  Blizzard certainly has the tools to do it with connected realms, but that’s also of limited effectiveness.  It won’t help high-population realms, for example, where it’s just not feasible to cram together two full servers worth of Horde and Alliance for the sake of faction balance.

But I’m optimistic that it can be done, and not just by a large, arbitrary, and game-breaking shake-up.  Just as in physics, sometimes all it takes is a little nudge in the right direction.  In this case, there just has to be some incentive or combination of incentives to play the underdog.  There has to be some sort of restoring force at play.

You could imagine all sorts of mechanisms that may work.  A reliable method, if harsh, would be to disable transfers to the higher-population faction on heavily imbalanced servers.  For example, if the imbalance was larger than 2:1 in favor of Horde, then players would simply not be allowed to transfer to Horde on that server.  And maybe even unable to start new characters there, unless they already have an existing character (thus, alts of existing players aren’t inhibited).

That gets into some sticky territory, though – if a new player wants to play with a real-life friend who happens to be on that server, they’re out of luck.  Cross-realm groups may alleviate most of that problem, but it still introduces an artificial barrier to entry for new players, which isn’t necessarily in the game’s best interests.  The whole point of this exercise is to construct an artificial barrier to prevent attrition, but if we lose more new players than we gain in keeping existing subscribers, that’s not an effective way to do it.

As an alternative, they could just make server/faction-specific transfers much less costly.  Blizzard is frequently offering free transfers from high-population realms to low-population realms (ironically enough, there was a free Tichondrius->Blackrock transfer available a little while ago…which was amusing given Blackrock’s traditional motto: “Blackrock’s full, GTFO”).  For example, since Tichondrius Alliance is heavily outnumbered, transfers from Horde to Alliance would be automatically free, as would transfers from other servers (either faction) to Tichondrius Alliance.  Transferring to Tichondrius Horde would still cost the full $25.  That puts an artificial monetary barrier in place, but doesn’t inhibit new players from rolling a character and leveling it.

I think this sort of system would probably work.  Consider, if you’re a guild and you’re thinking of transferring to another server.  You think Tichondrius might be a good fit, but are hesitant to ask your entire guild to pay for a transfer given the size of the imbalance.  But if the transfer is free for everyone, what do you have to lose?  The whole guild could transfer there, set up shop,and try it for a few months.  If it’s not a good fit, maybe you pay the $25 to transfer elsewhere, but you’re no worse-off than if you had done that in the first place.  It introduces a natural bleed valve in the population flow, such that it’s easier (and cheaper) for population to flow in the direction of balance than in the direction of imbalance.  It may not be enough to fix the realms that are really far gone, but it might stem and reverse the tide on realms that still have a chance of recovering.

For the really bad servers, something more drastic would be required in addition to the monetary solution.  For example, incentives for prominent guilds on one faction to move to the other.  Maybe by doing that, they get some nice free perks for a year (or until balance is restored, whichever is longer); free or cheap consumables for raiding, increased experience and reputation gain (XP bonus disabled during the first week of a new expansion, naturally), discounts on heirlooms, or special bind-to-account items that provide significant perks for alts.  Ideally nothing that gives a strong advantage during the progression race, but something like nearly-free flasks and potions would be great for a guild that’s not fighting for top-100 status and is willing to help balance a server.

You could also imagine a Wintergrasp-like system that makes each player stronger when their faction is outnumbered in a zone.  While I don’t think Tenacity itself is the right call here, it would certainly make open-world content more accessible to the underdog faction.  If I did +200% damage, took 200% less damage, had +200% health, and perhaps most importantly had 50% reduction on crowd-control duration, I wouldn’t worry much about taking on 3 or 4 horde at a time.  Ten might still be a tall order, but at the very least I’d stand a fighting chance if I played my class well.  But we’ve sen in the past that this sort of buff is hard to balance properly even within the confines of one zone, so I’m skeptical that the devs would want to try and employ it server-wide.  It would also make PvE content sort of strange; the bonus damage and damage reduction could easily only apply to players, but the health increase would be weird.  Perhaps without the health increase, it would work though.

And that’s just a few of the ideas that one could suggest.  There are many others, but those three are enough to show that there are viable solutions to the faction imbalance issue.  It’s just a matter of choosing which ones to deploy and in what magnitude.

Parting Thoughts

It’s really a shame that this failure mode exists, because it’s the sort of thing that must have come up in other games before.  And if not, any scientist who’s studied population dynamics (animal or physical) could have predicted this behavior.  In fact, I suspect Ghostcrawler is probably familiar with predation and population dynamics if the results of a quick Google Scholar search are any indication.  That’s not to say this is his fault, or his decision, just that there are smart people on the team who are definitely capable of identifying this problem, as well as its potential solutions.

But it’s sad because it’s very clear from all of this that I’d love the Timeless Isle content, if I was only able to play it.  But instead, every time I go to the Isle I get frustrated by my inability to make much progress.  Nowadays, when I log on WoW I want to get things done efficiently, because there’s a pile of work, blogging, coding, theorycrafting, and so on that’s lying around vying for my attention.  And I simply can’t do anything efficiently on the Timeless Isle, not because I’m on a PvP server, but because I can’t fend for myself against the sheer number of Horde I have to contend with.  WoW is pretty questionably-balanced even for 1v1 play; it’s definitely not balanced around one hero defeating ten (or even two) players from the other faction.

Which means that almost every time I go to the Timeless Isle, I end up thinking to myself, “Why am I wasting my time on this?”  I don’t need Shaohao rep or any of the gear or achievements to raid.  I was only doing them because I generally find those things fun.  But they just aren’t here, because I spend more time watching my back than enjoying the content.

Maybe I’m just old now, or something.  Or maybe I’m just the wrong type of person for a PvP server.  I don’t (and really never have) gotten any satisfaction from making other people feel bad or ruining their experience.  I almost never pro-actively attack another player anymore, because in the back of my mind I can always see myself on the receiving end and think about how irritated I would be at the inconvenience.  And I don’t want to inflict that on someone, so I don’t.  I’m not the sort of kid who enjoys ganking and then /spitting and tea-bagging the corpse.  That’s just not me, and never has been.

But my guild, my friends, are on a PvP server.  And while I play this game for a lot of reasons, one of them is to play with that group of people.  Switching to a PvE server and leaving them behind is likely to just lead to disillusionment with the game, and eventually to me quitting and finding something else to do with my time.

But it’s a bit of a catch-22, because heading to the Timeless Isle is having the same effect.  After the first few times I have to make a graveyard run, I start thinking about all of the other things I could be doing.  I’d rather be finishing up one of the many games I have for the PS3 (and even a few ancient PS2 titles) that I haven’t gotten around to yet, or spending some more time playing X-COM, or finally getting around to playing BioShock (any of them – I haven’t played a single one in that series, even though I own them all).

So the Timeless Isle is, more than anything else in this game, actually driving me away from the game.  Turning me into one of those players that logs on only for raid nights, and does the bare minimum to keep their character up-to-date the rest of the week.  And that’s sad, because to me that feels like I’m entering the twilight (not the movie) of my WoW experience.  Rather than looking forward to logging on as soon as I get home so I can raid, explore a new continent, or try out a new feature, that enthusiasm is turning to apathy.

And I wonder how many other players feel the same way for the same reason.  WoW is an old game, it’s bound to have a slow decline in subscriber numbers.  But I wonder if that decline is being hastened, at least for players that enjoy PvP servers, by the fact that almost none of them can have a properly-functioning world PvP experience anymore.

Just to be clear: I don’t think this problem is killing WoW.  The long-term eventuality is just that every PvP server will end up being a one-faction PvE server, and world PvP will die out.  Guilds like mine will eat the player attrition, and probably eventually transfer to the dominant side of another server if there are no balanced PvP servers left to choose from.  That’s a far different thing than WoW collapsing.  But I do think it will hurt WoW’s numbers, and it definitely hurts the world PvP experience that WoW has traditionally offered.

Posted in Theck's Pounding Headaches | Tagged , , , , , | 80 Comments

Dousing the Flame?

Late last night, it was announced that we’d be seeing some hotfixes during server maintenance this week.  There were two announcements concerning protection paladins.  The first was a nerf to the RPPM proc rates of the intellect legendary cloaks (caster and healing), which was probably warranted.  My own testing suggested that using the caster legendary cloak was about a ~7k DPS increase over using the melee DPS legendary cloak.  While I wouldn’t equip it on a fight that seriously challenged my survivability (for example, Garrosh Hellscream, where both of our kills involved at least one cloak 1up proc), it was certainly fun for padding meters on more trivial survivability tests, especially encounters with adds:

Yeah, this is fair and balanced.

Yeah, this is fair and balanced.

Disclaimer: I didn’t blog about this for a few reasons.  First, I was so busy last week that I really didn’t have time.  More importantly, I was also pretty sure it would get fixed pretty quickly, and didn’t want to encourage players to drop 7k gold on an extra cloak that was likely to be useless in a week or two.  Most players doing serious heroic progression were already aware of the trick, even though they may have been playing coy about it in the hopes that it didn’t get fixed.  But with that many top-tier players using the intellect cloak, Blizzard was bound to see it sooner rather than later.

However, the more important change is a significant nerf to EF:

Eternal Flame’s heal-over-time effect is increased by 50% when used on the Paladin (down from 100%).

That’s a pretty substantial nerf, reducing the effectiveness of the HoT by 25%.  So it’s worth re-visiting the Eternal Flame vs. Sacred Shield debate to see which is the more intelligent choice.

You may remember we went through this prior to patch 5.4.  And while the conclusion there was that EF was solidly better across the board, we were also looking at a very limited sample of gear sets.  Since then, I’ve noticed that the results vary a lot from character to character.  So in the wake of this nerf, I felt it was worth doing a more complete assessment of the two talents to see how they scale across gear sets.

Simulation Setup

Each of these simulations is 50k iterations and pits the player against the T16Q boss, with all other options left at the defaults.  For the “pre-hotfix” data I’m using the latest release version of SimC (540-2).  For the “post-hotfix” data I’m using the trunk of SimC, so it’s an early preview of 540-3, but should be essentially identical to version 540-2 for our purposes.  Except, of course, that I’m tweaking the Eternal Flame coefficient in the post-hotfix version to simulate the new behavior.

I’m using the T15H, T16N, and T16H profiles that are already set up in SimC, with minor modifications. I set them all to use the same glyphs and talents:

Talents: Unbreakable Spirit, Light’s Hammer
Glyphs: Focused Shield / Alabaster Shield / Divine Protection

Since it’s not clear which of our level 75 talents is preferable, I decided to sim both Divine Purpose and Holy Avenger so we could compare them.  After I finished the second round of simulations (post-hotfix), I realized that I should probably have included Sanctified Wrath, so I went back and ran those sims as well.  I didn’t have time to revert the EF nerf and run them again to get pre-hotfix results for SW, but it probably doesn’t matter much since those results aren’t relevant going forward anyway.

Since the T15H profile uses an older action priority list, I’ve retrofitted it so that it’s using the same one that T16N and T16H use, with the addition of the Lao-Chin’s Liquid Courage /use command from the existing T16H profile.  The actions for each profile are therefore:

actions=/auto_attack
actions+=/blood_fury
actions+=/berserking
actions+=/arcane_torrent
actions+=/avenging_wrath
actions+=/holy_avenger,if=talent.holy_avenger.enabled
actions+=/divine_protection
actions+=/eternal_flame,if=talent.eternal_flame.enabled&(buff.eternal_flame.remains<2&buff.bastion_of_glory.react>2&(holy_power>=3|buff.divine_purpose.react))
actions+=/shield_of_the_righteous,if=holy_power>=5|buff.divine_purpose.react|incoming_damage_1500ms>=health.max*0.3
actions+=/crusader_strike
actions+=/judgment,if=cooldown.crusader_strike.remains>=0.5
actions+=/avengers_shield,if=cooldown.crusader_strike.remains>=0.5
actions+=/sacred_shield,if=talent.sacred_shield.enabled&((target.dot.sacred_shield.remains<5)&(cooldown.crusader_strike.remains>=0.5))
actions+=/hammer_of_wrath,if=cooldown.crusader_strike.remains>=0.5
actions+=/execution_sentence,if=talent.execution_sentence.enabled&cooldown.crusader_strike.remains>=0.5
actions+=/lights_hammer,if=talent.lights_hammer.enabled&cooldown.crusader_strike.remains>=0.5
actions+=/holy_prism,if=talent.holy_prism.enabled&cooldown.crusader_strike.remains>=0.5
actions+=/holy_wrath,if=cooldown.crusader_strike.remains>=0.5
actions+=/consecration,if=(target.debuff.flying.down&!ticking)&(cooldown.crusader_strike.remains>=0.5)
actions+=/sacred_shield,if=talent.sacred_shield.enabled&cooldown.crusader_strike.remains>=0.5

I’ve also added another gear set, which I’m calling “T16F” because F is a fun letter and this is my blog so I can do what I want.  The T16F gear set is identical to the T16N gear set, but with the 4-piece set bonus artificially turned off using the option:

tier16_4pc_tank=0

This gives us a benchmark to see what gear upgrades alone do, i.e. if you used off-set pieces instead of the tier pieces.  It also lets us get a clear comparison of exactly how important that tier bonus is.

All of the html results from these sims can be found here, in case you want to analyze them yourself:

https://sites.google.com/site/sacreddutyfiles/files/ef_vs_ss

Side note: I need to find a better way to host these, since clicking on one from google sites ends up downloading it rather than simply displaying it in a new tab.  If anyone knows how to get that functionality from google sites in a bulk fashion (i.e. not having to set up a “New Page” for each report), please let me know.  Alternatively, if anyone has a good suggestion for a different host, I’m open to other options.  I may eventually just host them on sacredduty.net if that ends up being the easiest option.

Results

In any event, here are the results in table format for easy comparison.  First, the relevant stats for each of the gear sets:

Raid buffed stats of each gear set
Set STR STA Health Melee Haste Spell Haste
T15H 18210 54069 903k 31.99% 38.59%
T16N/F 20517 55605 925k 39.47% 46.44%
T16H 25720 68677 1108k 48.86% 56.31%
Set Mastery Dodge Parry Block Spell Crit
T15H 19.71% 7.77% 24.79% 32.38% 10.13%
T16N/F 26.91% 5.24% 26.68% 38.27% 10.24%
T16H 33.19% 5.35% 31.76% 42.99% 10.78%

Next, let’s look at the pre-hotfix results that tell us how things stood before Tuesday:

Results pre-hotfix
Gear L75 L45 DPS TMI
T15H DP SS 248k 8200
T15H DP EF 245k 650
T15H SW SS 245k 16000
T15H SW EF 243k 1200
T15H HA SS 250k 15000
T15H HA EF 248k 890
T16F DP SS 272k 640
T16F DP EF 269k 65
T16F SW SS 270k 1300
T16F SW EF 267k 85
T16F HA SS 277k 1100
T16F HA EF 274k 79
T16N DP SS 272k 640
T16N DP EF 279k 34
T16N SW SS 270k 1400
T16N SW EF 275k 32
T16N HA SS 277k 1100
T16N HA EF 281k 26
T16H DP SS 305k 37
T16H DP EF 311k 18
T16H SW SS 302k 51
T16H SW EF 306k 12
T16H HA SS 312k 39
T16H HA EF 315k 10

This data is pretty straightforward.  The T15H gear set, which has both 2T15 and 4T15 set bonuses, clearly favored Eternal Flame by a huge margin in all configurations.  It’s just grossly overpowered compared to Sacred Shield.  This is consistent with what we saw in the previous post with Slootbag’s gear set, though even more pronounced.  At that gear level, it seems that Divine Purpose + Eternal Flame is the best overall combination of talents for pure TMI minimization.

And that ordering continues as we increase the gear level.  Note that by upgrading from T15H to T16F, we get an overall reduction in TMI, so the raw stamina gain has more than offset the loss of the set bonuses.  It’s possible that a hybrid set that used only 4 pieces of double-upgraded heroic T15 would match or exceed the T16F performance, but probably not by much, if any.  Either way, EF still dominates in T16F gear.

Turning on the set bonus has no significant effect on SS, but makes a fairly big difference with EF.  It’s hard to tell that from these results because the TMI is so low already that the difference looks small, but remember that TMI is an exponential scale.  So reducing it from 65 to 34 is similar to reducing it from ~2k to 1k; in both cases you’re getting around a factor of 2 improvement, which is around a 5% reduction in maximum spike size.  I’m hoping to update SimC with a more complete T16 boss set so that we have harder-hitting bosses to pit ourselves against, but I haven’t had time yet.

The T16H data is not very illuminating, again because the TMI values are pretty small.  The T16Q boss has become trivial at this point, but EF still holds a strong lead over SS, even though the absolute difference doesn’t look that large.

So all in all, this is pretty good evidence that EF was overpowered across the board.  Which is basically what I said in the last post on this topic:

It feels like the 30% Sacred Shield nerf or the 40% Eternal Flame buff would have been sufficient to make the two equally valid choices in that talent tier.  But the combination of both effects seems to just swap the two; rather than Sacred Shield being the hands-down, no-brainer choice that all paladins take, 5.4 just puts Eternal Flame in that spot.

So the next question you’d want to ask is whether a 25% nerf is enough to bring it back into line.  So let’s look at that data:

Results post-hotfix
Gear L75 L45 DPS TMI
T15H DP SS 248k 8200
T15H DP EF 245k 2200
T15H SW SS 245k 16000
T15H SW EF 243k 4000
T15H HA SS 250k 15000
T15H HA EF 247k 3100
T16F DP SS 272k 650
T16F DP EF 269k 120
T16F SW SS 270k 1300
T16F SW EF 267k 220
T16F HA SS 277k 1100
T16F HA EF 273k 210
T16N DP SS 272k 630
T16N DP EF 278k 40
T16N SW SS 270k 1400
T16N SW EF 275k 44
T16N HA SS 277k 1100
T16N HA EF 281k 37
T16H DP SS 306k 37
T16H DP EF 311k 18
T16H SW SS 302k 51
T16H SW EF 306k 12
T16H HA SS 312k 39
T16H HA EF 315k 10

The answer here seems to be, “not quite.” But the results are a lot closer.  For the T15H and T16F gear sets the two talents on the same order of magnitude, but EF is still ahead by a factor of 4, which is about a 13% reduction in spike size.  It could probably stand to be nerfed some more to bring the two into line with one another.

That said, the results are close enough that you could feasibly choose either one, especially if the encounter gives you reason to prefer absorbs more than usual.  I still think EF is a solid default pick here, but you won’t be gimping yourself too badly by using SS.  While this is assuming perfect play, but very simple EF usage (refresh whenever BoG > 3 stacks and remaining duration is less than 2 seconds), so the EF results aren’t that strongly dependent on player skill in this case.  A skilled player may be able to make even more effective use of EF in practice by timing it to react to damage rather than blindly refreshing.

Regardless, once 4T16 enters the mix, EF pulls solidly ahead again.  The T16N/H gear sets show the same clear preference for EF that we saw in the pre-hotfix data.

Yesterday I tweeted that SS might have a slight advantage in the absence of 4T16.  After looking at the results more closely, though, I realized I had left a stray “emergency EF” conditional in the action priority list, which was artificially making the EF results worse.  If you recall from the post where we looked at Sloot’s character, these sorts of emergency WoG conditions were always a net loss in TMI (as in, they made you more susceptible to spikes, not less!).  They also hit EF harder than SS because you’re not just voiding 3 seconds of Shield of the Righteous coverage, you’re also over-writing a strong EF with a weaker one.  With that stray conditional, EF was slightly behind SS; removing it put us back in the situation we see in this data.

Conclusions

So, in short, EF is still very, very good, even after a 25% nerf.  Arguably still your go-to talent in that tier, and definitely your go-to talent once you get 4 pieces of T16 gear. While SS still lags, the gap has narrowed enough that it’s at least a reasonable alternative, if not on equal footing.  At the risk of giving anyone at Blizzard any ideas, they’re going to have to nerf EF harder if they want the two to be almost equal in performance for tanks.

Narrowing the gap has certainly made it more likely that SS would excel on a boss-by-boss basis, though.  As we mentioned last time, a boss that tests instantaneous effective health (ala Talon Rake) might still favor SS, and that’s even more true now that it’s not so far behind.  Though honestly I can’t think of many (any?) in normal-mode T16 encounters.  In fact, I ran with EF for every fight this week, with one exception: Paragons of the Klaxxi.  And that was a special case due to the particular boss I was tanking (Rik’kal – I found that juggling holy power for EF was more of a pain than usual when SotR had to be up on every Injection, so I went with the passive, no-HP-cost talent option).

I could imagine using it for heroic Immerseus…. but I didn’t.  And as we saw at the beginning of this post, heroic Fallen Protectors wasn’t threatening enough to make me want to wear the tanking cloak, let alone worry about which talent was best.  I have heard that some of the later heroic bosses are hitting tanks for 700k under certain circumstances, which may end up being a situation where Sacred Shield thrives.

The other conclusion I came to from this is that I really need to finish the automation scripts I’ve been working on.  Hand-editing and running each of those sim configurations one at a time is a giant pain in the ass.

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

5.4 WeakAuras Strings

Patch 5.4 is here, and that means it’s time for a WeakAuras update.  The first and perhaps most important piece of news is that WeakAuras has moved.  The original author quit updating it two years ago, and Stanzilla has been generously maintaining it for the community. He’s decided to move the project to WeakAuras 2 from this point forward.  The good news is that you won’t need to change anything; WeakAuras 2 uses the same folder structure and files as WeakAuras, so updating to WeakAuras 2 is as simple as downloading and extracting, just like you would for any other new version of WeakAuras.

Special note if you’re using Curse Client: You’ll want to add WeakAuras 2 to your addon list and uninstall the old WeakAuras, which will no longer be updated.  Make sure you uncheck the “Also delete the in-game settings for this addon” box when removing WeakAuras.  If you leave that box checked when uninstalling, Curse Client will remove your existing WeakAuras setup and you’ll have to start from scratch!

Paladin

The basic layout of my Paladin setup hasn’t changed much at all since 5.3.  However, there is one new element I’m toying with.  A Youtube user messaged me to ask if there was any way I could construct a WeakAura element they saw elsewhere:

The weakaura in question is something I saw on Riggnaros’s stream over at http://www.twitch.tv/riggnarosbl/b/434932264 – you’ll find it at the bottom of his UI to the right of his action bars. It appears to be a WeakAura group consisting of 3 progress bars. The top bar displays his current vengeance, the 2nd bar displays the current vengeance of his other tank, and the final bar shows how much vengeance would be gained by the other tank if he was to taunt.

For reference, this is the UI element he’s talking about.

Riggnaros' Vengeance Montior Aura

Riggnaros’ Vengeance Montior Aura

And when there’s a Vengeance gain to be had by taunting, it looks like this:

Riggnaros' Vengeance Monitor. Again.

Riggnaros’ Vengeance Monitor. Again.

It also seems as if he’s got it color-coded.  In the above screenshot, Rigg would gain Vengeance by taunting off of Absalom.  But in this one, Absalom would gain Vengeance by taunting off of Rigg:

Riggnaros' Vengeance Monitor, bugged.

Riggnaros’ Vengeance Monitor, bugged.

The third bar that the Youtube user described is actually just another bar for Absallom, Absalom’s alt tank:

rigg3

Would the real Absalom please stand up…

In other words, the bars for the off-tanks are probably hard-coded to the player’s name, hence why he has one for each tank he frequently plays with.  It also seems sort of glitchy, in that it shows up midway through their Council of Elders kill, so the triggering may be a little funky.

Trying to replicate this in WeakAuras is not too difficult, but does require a lot of custom lua code.  We need to create a progress bar of “Custom” type and write custom lua functions to handle the triggering and untriggering (i.e. display/hide) as well as to set the length of the bar and the text showing the player’s name and the AP gain.  The difficulty is compounded slightly by a bug in WeakAuras that I stumbled across and subsequently fixed.

If doing all that yourself sounds like a tall order, you’re in luck.  Here’s my version: WeakAuras Vengeance Bars.  I’ve taken a slightly different approach than Rigg has.

The bar for your own Vengeance is more or less identical to what he has.  It shows your name on the left and the numerical value of Vengeance on the right.  I’ve taken the liberty of converting the text to pretty-print format (i.e. converting 10000 to 10k) to make it easier to read at a glance.

However, rather than capping it at a fixed 300k as Rigg has, I’ve set it up to dynamically adjust in discrete steps based on your current Vengeance.  In other words, if your Vengeance is less than 80k, it will set the bar’s maximum at 100k.  If you exceed 80k, it will reset the maximum to 200k, and so on in 100k increments.  Every time you exceed 80% of the maximum, it will reconfigure the maximum.  It’s also got a 15-second decay timer on that functionality, so that it won’t twitch spasmodically when you’re near a threshold.

The bar for your co-tank’s Vengeance is a little more versatile than Rigg’s.  First, it’s coded to use target-of-target, so that it will automatically adjust to whoever currently has aggro.  That way, you don’t need to hard-code a name in there.  And it will automatically hide if the boss has no target or is targeting you.

The downside, of course, is that you can’t see the other tank’s Vengeance level when they don’t have aggro.  But since you can’t get any Vengeance by taunting when the boss isn’t targeting that tank, that’s mostly irrelevant for the majority of players.

Since some players might like to monitor their co-tank’s Vengeance, there’s also a third bar for that.  However, it’s hardcoded to the name of my co-tank (Agwyne).  To change it, go to the “Off-Tank Vengeance” aura, choose the Display tab, and click on the “Expand Text Editor” button next to “Custom function.” In the editor that pops up, you’ll need to change the following line:

    THECK_VBAR_OTNAME = “Agwyne”

Change “Agwyne” to “YourOffTanksName” and it should automatically display your off-tank’s name and Vengeance values for this bar.

The text editor button used to change the name of the tank used for the "Off-tank Vengeance" bar.

The text editor button used to change the name of the tank used for the “Off-tank Vengeance” bar.

I should note that all three of the bars automatically adjust size together, so that you can always make at-a-glance comparisons between them.

On the target-of-target bar, text showing the potential gain you stand to receive by taunting shows up when there is a gain to be had.  In other words, if you won’t gain any Vengeance by taunting, it will just show the target-of-target’s name.  If you can gain Vengeance, it’ll show “(+X AP from Taunt)” after the name.  It won’t ever show you when another tank will gain Vengeance by taunting off of you, since that’s not something you can control anyway.

Finally, there’s another set of green underlay/overlay bars on top of your bar to tell you the Vengeance level at which your current Sacred Shield or Eternal Flame was cast.  If you’re at higher AP than you were when you last cast SS/EF, the green bar will be shorter than your (red) Vengeance bar, and the text will also tell you the potential AP gain in a similar fashion to the Vengeance gain (“+X AP for SS”).  If you’re at lower AP than when you last cast SS, the green bar will be in the background so you can see that fact visually.  Since all of these bars are fairly complicated, and not everyone will want the SS/EF overlays (most other tanks wouldn’t use them), I’ve split them off into a separate group: SS/EF Vengeance Bar Overlays

Here’s a video of it in action with Sacred Shield:

I’ve also updated the older text auras that display Vengeance and SS information to include Eternal Flame, since there’s a good chance we’ll be using it in 5.4.  There’s now indicators that tells you how many HP you spent on your last Eternal Flame and how many Bastion of Glory stacks were consumed in addition to the usual Vengeance and Haste indicators.  That group can be found here: Vengeance / SS / EF text indicators.

Here’s another video showing the Eternal Flame indicators:

Note that I have them set up to load only for Protection Paladins at the moment (easier for testing), so if you play another class you’ll need to change the Load conditions.  If you play multiple tanking classes, I suggest using the bottom condition for dungeon role, though this means they won’t load when you’re soloing.

While you won’t see them in either of those videos, I’ve also added greyed-out SS and EF indicators for when you’ve cast the buff on other players (for example, if you put SS on your co-tank while you’re off-tanking).  You’ll have to go in and change the name of the player it’s checking to your off-tank’s name for them to work, but they use standard WeakAuras triggers so there’s no coding required.  Just find the appropriate aura (“Sacred Shield On Off-Tank” or “Eternal Flame Duration On Off-Tank“), go to the Trigger tab, and change the “Specific Unit” name from “Agwyne” to your off-tank’s name.

Mage

The other notable change is that I’ve been playing my Frost mage a lot since 5.3, so I’ve got a fully-functional Frost Mage aura set now.  It shows icons for Frozen Orb, Frostfire Bolt, Ice Lance (along with Fingers of Frost charges and your Water Elemental’s Freeze availability), and of course Frostbolt as a GCD monitor.  It’s also got cooldown icons for Evocation, Invocation, Alter Time, and Time Warp, and icons to warn you of the absence of Arcane Intellect, Water Elemental, and Mana Gems.  I’ve also updated the “Mage – Any” profile to level 90, though the Fire and Arcane setups are still the old level-85 versions.

All Classes

Rather than continually re-posting links to all of my auras in every update, which then requires that I update forwarding links on various sites, I’ve decided to work smarter and not harder.  The links to all of my WeakAuras strings for all of the classes that I play can now be found at this address:

http://www.sacredduty.net/weakauras-strings/

Since the links to pastebin are static, the links on that page will automatically reflect any changes I make to the auras on pastebin.  I’ll generally update them incrementally as I level or play new classes.

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

Tankadin Patch 5.4 Survival Guide

Protection paladins are receiving a number of peripheral changes in 5.4, but nothing that changes our core mechanics.  We’re still going to be stacking haste thanks to Sanctity of Battle – in fact it’s even on two of our tier pieces – and we’re still not very interested in avoidance.  We’re still going to be focusing on high Shield of the Righteous uptime, and we’re still going to be one of the best (if not the best) tank classes.

There are, however, a few high-profile changes that affect our talent and glyph choices.  The Icy Veins Guide should be up to date with all of the latest information.  In this post, I’m going to go over what’s changed and discuss many of those changes in greater detail than would be appropriate in a class guide.

Big Changes

Grand Crusader: The first change most players notice is Grand Crusader.  It no longer procs from Crusader Strike and Hammer of the Righteous, but instead procs only from avoidance (30% chance per avoided attack).  This is probably the change I’m asked about most often, primarily from players wondering if this “kills” haste-tanking.

But while this seems like a significant change, it’s actually not.  Grand Crusader certainly helped make haste stronger, but only by a tiny amount.  The majority of our affinity for haste comes from Sanctity of Battle, which isn’t changing.  Unless that gets nerfed, we’re going to continue to stack haste.

The only noticeable effect that the Grand Crusader change should produce is a slight adjustment in our multiple-mob tanking priorities.  As we tank more mobs, we have a higher and higher chance of getting early Grand Crusader procs.  So when tanking more than 5 or 6 mobs, we may start prioritizing Grand Crusader procs over Crusader Strike and Judgment.

Eternal Flame and Sacred Shield: This patch, Sacred Shield received a 30% nerf and Eternal Flame‘s heal-over-time (HoT) component received a 40% buff.  Together, this has finally shifted the balance of power in our Level 45 talent tier.  When cast with 5 stacks of Bastion of Glory, Eternal Flame’s HoT will heal for 3x-4x as much as Sacred Shield absorbs.  As such, it becomes the better smoothness option at high haste, essentially through brute-force.

That doesn’t make Sacred Shield a bad choice, just a little less effective at smoothing melee damage.  It may still be the stronger choice when up against large, one-shot boss attacks.  And the ability to put it on your co-tank is another hard-to-quantify benefit; I suspect that two paladin tanks that are alternating Sacred Shields such that each tank has two active at any given time is still superior to a similar strategy with Eternal Flame.

The general strategy when using Eternal Flame should be to refresh it when it’s about to expire or shortly after it’s expired, ideally at high BoG stacks and always with 3+ Holy Power or a “freebie” proc like Divine Purpose or the Tier 16 4-piece bonus.  Note that in many cases it’s actually better to let it expire and re-apply than to refresh it early thanks to the instant healing component.  For example, if you refresh it a second early while at full health and then take a large hit from the boss, the Word of Glory portion is wasted as overhealing and the first few HoT ticks will go towards healing that damage.  If instead you let the HoT expire and held that Eternal Flame until after the melee attack landed, the instant heal would completely offset the melee attack, leaving you at full health with a fresh HoT ticking for the next melee attack.

If you’re looking for a good way to track Eternal Flame, I’ll be posting about the latest version of my WeakAuras configuration later this week once I’ve had a chance to test them on the live version of 5.4.  They’re all uploaded to pastebin, so you can try them out, I just don’t guarantee that they’re bug-free for 5.4 yet.  Also note that the author that’s been maintaining WeakAuras the last two years has moved the project to WeakAuras 2, so update your links accordingly.

Selfless Healer: The third choice in this talent tier also saw a notable change this patch.  Selfless Healer now consumes Bastion of Glory stacks to apply a healing bonus to Flash of Light when you use it on yourself.  Before, it gained no healing bonus when self-cast.  Unfortunately, this is still not enough to make the talent attractive.

Since the mechanics of Selfless Healer are less than obvious, here’s a detailed explanation of how it works. Each stack of the Selfless Healer buff reduces the cast time by 35%, so at 3 stacks Flash of Light is instant-cast. If you heal an ally, it’s just a simple 20%/40%/60% increase to the healing done at 1/2/3 stacks. Simple enough.

However, that healing buff doesn’t apply if you heal yourself.  Instead, Selfless Healer modifies Bastion of Glory, giving it the following tooltip:

Bastion of Glory
Instant
Requires level 40
Increases the strength of your Word of Glory when used to heal yourself by 10%. Selfless Healer also increases healing from Flash of Light on yourself by 20% per stack. Stacks up to 5 times.

So when you use Flash of Light on yourself, you only get the +20% to +100% bonus from having one to five stacks of Bastion of Glory.  That 20% per stack bonus doesn’t increase with mastery, either, unlike the Word of Glory healing bonus.  There’s an additional caveat here, in that you only get the bonus when you have at least one stack of the Selfless Healer buff as well.  A hard-cast Flash of Light with no stacks of the Selfless Healer buff doesn’t consume or benefit from Bastion of Glory.  So with 5 stacks of Bastion of Glory you get +100% healing done regardless of whether you had 1 or 3 stacks of Selfless healer.

And just in case that wasn’t confusing enough, the buff tooltip is also misleading.  If you mouse over the Bastion of Glory buff while Selfless Healer is talented, you’ll see:

Bastion of Glory
Your next Word of Glory used to heal yourself heals for an additional 10%.
Your next Flash of Light will heal you for 20% more per stack of Selfless Healer you have accumulated.
20 seconds remaining

which obviously contradicts the spell tooltip.  The spell tooltip is correct, however; with 3 stacks of Selfless Healer and 5 stacks of Bastion of Glory, you’ll get +100% healing when you cast Flash of Light on yourself and consume the stacks of Bastion.

That was a lot of words to describe a mechanic that’s irrelevant to us, but unfortunately that’s how the numbers fall out.  Unbuffed on the PTR, a Flash of Light healed me for 35k with no Bastion stacks and 70k with five Bastion stacks.  A 3-holy-power Eternal Flame that consumed five Bastion stacks healed for 115k immediately and ticked for 35k.  Those two aren’t even in the same ballpark – Eternal Flame is essentially spamming you with Flash of Light casts automatically via the HoT mechanism, and does a better job of health recovery with the immediate heal.  And Eternal Flame is off-GCD.  And scales better with spellpower than Flash of Light does.

So while the Selfless Healer buff was a nice thought, it’s too little to really make the talent worth taking.  Even if it gave the 60% bonus from all three Selfless Healer stacks, it wouldn’t be strong enough to rival Eternal Flame’s primary heal.  It would also have to get full benefit from each BoG stack, including mastery scaling, to have any hope of competing.  And probably even then some thanks to the long-tail healing from Eternal Flame’s HoT.

Glyph of the Battle Healer: Gutted.  Utterly and completely destroyed.  Battle Healer’s old version was incredibly strong, and basically mandatory because it was a significant amount of free raid healing for the cost of a glyph slot.  The new version completely changes how Battle Healer works.  Now, it causes Seal of Insight to heal the lowest-health raid member instead of healing you.  Unless, of course, you happen to be the lowest-health raid member.

That in and of itself might not completely neuter the glyph, as in many cases you will be the lowest-health raid member anyway.  So it would be a trade of some personal survivability for some raid healing, but would generally divert that healing back to you when you were in severe danger.

Unfortunately, the glyph also reduces the size of the heal to 30% of the unglyphed value.  That’s the part that stings.  We might take a small personal survivability loss for some extra raid healing, but not a significant personal survivability loss for very little raid healing.  Battle Healer is probably out of the rotation permanently, or at least until it gets changed again in a future patch.

Sanctified Wrath: I’m not sure whether this qualifies as a big change or a little change.  Sanctified Wrath was tweaked to generate an extra holy power from Judgment during Avenging Wrath.  This makes it a little more attractive to us than before, as it finally gives us a substantial holy power generation increase.  We still have to change up our rotation to make most effective use out of it, however; with this talent selected, we switch to a J-CS-J-filler- rotation during Avenging Wrath.

I’m still not 100% sure about where this change leaves Sanctified Wrath.  The 3-minute cooldown on Avenging Wrath still limits the total usefulness of the talent.  We’re probably equally invincible whether we have Avenging/Sanctified Wrath or Holy Avenger active, but Holy Avenger is on a shorter 2-minute cooldown and should generate more average DPS.  Divine Purpose should be higher DPS still and provide higher average Shield of the Righteous uptime, though without the same level of control.

My gut feeling is that you’re probably a little more survivable during Avenging/Sanctified Wrath than you are during Holy Avenger, but that the longer cooldown and more lmited availability probably makes Sanctified Wrath the slightly weaker choice in most circumstances.  But they’re all close enough that you can probably take whichever talent you like in this tier.

Little Changes

There are loads of little changes, none of which stand out as particularly worrisome.  In no particular order….

Mana Regeneration: Seal of Insight lost its mana return component during PTR, which led to some discussion of whether high-haste builds would be able to continue operating.  To compensate us for that loss, Guarded by the Light was buffed from returning 6% of our mana every 2 seconds to returning 15%.  This should be enough to keep us rotation-stable even at 50% haste, and has some fringe benefits as well.  For example, less waiting time between successive Redemption casts after a wipe.

Weakened Blows: Crusader Strike now also applies Weakened Blows, which is a nice quality-of-life buff.  Also makes Glyph of Hammer of the Righteous completely irrelevant.  As opposed to pre-5.4, when it was “almost completely irrelevant.”

Burdened by a Guilty Point of View: The old Burden of Guilt talent has been turned into a glyph (replacing Glyph of Turn Evil) and replaced with Evil is a Point of View.  This new talent allows us to use Turn Evil on Humanoids and Beasts.  This probably doesn’t have a lot of applicability to PvE, but who knows.  On a fight like Faction Champions, having the option to fear something might have been useful.

Unbreakable Spirit: Drastically simplified in 5.4, the new version of Unbreakable Spirit just reduces the cooldowns of Divine Protection, Divine Shield, and Lay on Hands by a flat 50%.  This is essentially no change for the latter two spells, but should reduce the cooldown of Divine Protection from ~40-45 seconds to 30 seconds.  All in all a fairly clear buff that makes the talent much easier to understand.

There is one caveat: while undocumented, taking this talent will also reduce the healing generated by our tier 16 2-piece bonus.  Though the bonus is pretty weak anyway, so that’s probably not a big concern.

Lights Hammer: The healing component of this spell has changed slightly thanks to a last-minute change.  Instead of healing all players in the area of effect, Light’s Hammer now only heals the six players with lowest health.  A nerf to be sure, but the smart target selection still makes it pretty powerful.

Alabaster Shield: This glyph was nerfed from 20% per stack to 10% per stack.  Still a nice DPS boost, but not as nice as before.  Was already less effective than Focused Shield on single targets, so this shouldn’t change much.

Glyph of Holy Wrath: Aberrations have been added to the list of creature types on Glyph of Holy Wrath. It’s a buff, but I’m not sure if there’s any relevant aberrations in Siege of Orgrimmar.

Glyph of Devotion Aura: Formerly the Glyph of Rebuke, this glyph turns Devotion Aura into a personal cooldown rather than a raid-wide cooldown and reduces the cooldown duration from 3 minutes to 2 minutes.  Devo is such a strong raid cooldown that I don’t expect most people will use this much, especially since 2 minutes is still a fairly long cooldown for a weak, 6-second copy of Divine Protection.

Glyph of Divine Shield: One of two new glyphs this patch, this glyph heals you for 10% of your health for each harmful effect you remove when you bubble.  The heal is capped at 50% of your health.  Neat idea, but I’m not sure it’s that useful in practice.

Glyph of Hand of Sacrifice: This is the other new glyph, which eliminates the damage redirection of Hand of Sacrifice, turning it into a simple 30% damage mitigation cooldown.  Neat, but less useful to us tanks since we shrug off that redirected damage in the first place.

Vengance: This probably qualifies as a big change, except that it doesn’t really change how we play very much.  Apart from being less reckless, I guess.  Vengeance was nerfed in two ways this patch.  First, the amount of attack power gained from melee attacks was reduced from 1.8% to 1.5% and the amount gained from spell damage was reduced by teh same proportion (from 4.5% to 3.75%).  Second, it now has diminishing returns when tanking multiple mobs.  The hardest-hitting mob always gives the full amount, but each successively weaker mob gives 1/N-th as much.  So the second mob grants 1/2 as much as it would alone, the third grants 1/3 as much, and so on.

This is a fairly big hit to our survivability in AoE tanking situations, so we’ll have to be a little more careful with big pulls.  Rather than simply grabbing everything in sight and “tanking the world,” we’ll want to try and split those mobs with other tanks.  Thankfully, this diminishing returns mechanism makes that easier as well.

Taunting and Threat: All taunts now cause a 3-second grace period, during which you generate 3x as much threat as usual against the taunted mob.  This should eliminate most of the wonky threat-related issues players were experiencing after taunting early in an encounter.  In addition, the base threat multiplier of Righteous Fury (and all other tanking presences) was buffed from +400% to +600%.  I assume this latter change was to compensate for the significant reduction of Vengeance in 5-man heroics.

Legendary Buffs and Nerfs: The Indomitable Primal Diamond proc was buffed significantly.  Now it reduces all damage instead of just physical damage, and the proc rate was doubled as well.  On the other hand, the Capacitive Primal Diamond proc rate was nerfed by 40% for tank specs to discourage its use.  The new legendary cloaks for DPS classes (Gong-Lu being the relevant one for us) have this 40% proc-rate nerf built in, again, to discourage us from ignoring the tanking cloak (Qian-Ying).

Simulationcraft v540-1

Simulationcraft should be updated to version 540-1 today, though I haven’t implemented new T16 TMI bosses yet.  Partly because I don’t yet have data on how hard these bosses will hit, so for now the T16Q boss will have to suffice.  However, I have implemented just about everything else.  It should have all of the new 5.4 mechanics, along with several bugfixes.  As usual, please let me know if something looks funny.

Changelog:

  • APL tweaks – removed HotR, added EF, added Ret’s 4T16 bonus
  • Bugfixes:
  • T16 Normal and Heroic profiles optimized
  • Bugfixes:
    • SotR no longer ignores the 1% racial expertise bonuses.
    • Eternal Flame’s base heal was receiving the +100% bonus for self-healing
    • Holy Avenger doesn’t buff Hammer of Wrath damage for Protection anymore
    • Sanctified Wrath’s bonus healing taken is now restricted to Protection

Open Q&A

I think that covers the bulk of the relevant changes in 5.4.  Of course there’s lots of new content as well – the Timeless Isle, Siege of Orgrimmar, Flex Raids, Proving Grounds, and so on – but none of that is super-specific to us.

But if you have any questions that I haven’t answered here or think of something I’ve omitted, please post them in the comments.  I’m fairly busy on Tuesdays, so I may not get a chance to respond until this evening.

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

EF & You?

If you’ve been paying attention to the PTR patch notes, you’ve probably noticed that there’s a big change coming in 5.4.  I’m not talking about the change to Grand Crusader, which is mostly irrelevant to how we gear and spec.  I’m talking about the 30% nerf to Sacred Shield and the 40% buff to Eternal Flame.

The nerf to Sacred Shield is understandable – it’s been head and shoulders above our other level 45 talents, and it scales very well with the extreme amounts of haste we’ve been stacking.  Blizzard probably didn’t anticipate the level of haste-stacking we’d be doing (though to be fair, neither did most of the community), which explains why they have to dial it back a bit to keep it in line.  The buff to Eternal Flame was less expected, but makes the tier much more interesting again.  We’ve mostly ignored Eternal Flame in previous patches because it couldn’t keep up with the raw mitigation of Sacred Shield.

What many people don’t realize that Eternal Flame has interacted with Bastion of Glory (BoG) since around patch 5.1 via an undocumented change.  The 100% buff when self-cast in 5.2 was another fairly large buff in addition to the BoG interaction.  In patch 5.2 and 5.3, Eternal Flame’s HoT produced a little more healing than Sacred Shield provided in absorption.  But as I said at the time, the healing would have to be significantly larger than the absorb effect to offset the opportunity cost of having to spend holy power, and thus, sacrifice Shield of the Righteous uptime.

The 5.4 changes move the goalposts, though.  First, let’s note that the sheer size of these buffs and nerfs are pretty huge.  This isn’t a minor rebalancing; Sacred Shield is getting slashed by nearly a third, while Eternal Flame is growing substantially.  When casting EF with 5 stacks of BoG, each EF tick will be almost twice as large as a Sacred Shield absorption bubble.  And remember, you’ll get two EF ticks in the same time period it takes to generate one Sacred Shield bubble.  So the EF HoT has about 3-4 times the throughput of the Sacred Shield absorb.  We’re no longer comparing equal amounts of healing and absorption.

The second change that comes into play is the Tier 16 4-piece set bonus, which removes the opportunity cost of Word of Glory and Eternal Flame if we have 3+ stacks of Bastion of Glory.  That’s a big deal.  Sacrificing a SotR for a WoG is a tough trade when it comes to smoothness, and that’s traditionally kept Eternal Flame from contending.  But being able to use EF without sacrificing SotR uptime – and even increasing SotR uptime if Divine Purpose is talented – is a game-changer.

Either one of these effects may have been enough to make EF a contender in 5.4.  Together, it’s hard to imagine even speccing into Sacred Shield.  But we can do better than speculation; we can fire up SimC and see exactly how much of an effect these changes will have.

A Note on Overhealing

If you ask a random paladin why Sacred Shield was stronger than Eternal Flame during most of Mists of Pandaria, one of the most likely answers you’ll get is some variation on “because absorption is better than healing” or “preventing damage is better than taking it and healing it up.”  Traditionally, this mindset has been ingrained in tanks and tank theorycrafting for the better part of the game’s life cycle.

Meloree summarizes most of these points rather well in this forum post, but in short, absorption effects tend to be more efficiently utilized than healing. Absorbs aren’t used up on avoided attacks and partial absorbs can apply to subsequent attacks, while partial overheals are “wasted.”  And of course, since absorbs apply before the damage is dealt, they act as a first line of defense that often makes subsequent healing unnecessary.

But Mel will be the first person to tell you that there’s a hidden assumption in there – all of those conditions apply when the absorption and healing is roughly the same magnitude.  Absorbs are better than healing point for point, because they tend to do a better job of being there when you need them, but a really large heal can still do more for your survivability than a weak absorb.

Also, if we’re rigorously analyzing the situation there are a lot of external effects that we need to consider.  For example, do those absorbs affect how your healer plays, or would they be tossing a heal on you with that global cooldown anyway?  If the latter, then it’s tough to say whether your absorb was really “efficiently utilized.”  As far as World of Logs is concerned, your absorb applied first, so it was very efficient.  But if it just creates larger overhealing for your healer, was it really a significant survivability gain?  If you have several HoT ticks that overheal because of a full Sacred Shield absorb, is it really fair to say that the absorb was 100% efficient and the HoT ticks were 100% overheal?

In practice, Sacred Shield’s efficiency is a bit overstated due to the way logging works, which is related to how absorption effects are consumed.  It’s often reported as highly efficient because the overheal it creates is shifted into other heals.  But it’s probably fairer to recognize that a good chunk of Sacred Shield ticks are irrelevant, and share some overheal burden with the healing effects that they preempt.

Further, there’s a general attitude that overhealing is a bad thing and should be avoided – that those heals were “wasted.”  While mana and/or GCD efficiency ties into that argument, I think it’s not fair to toss them aside so casually.  To illustrate that idea, if you had a Lay-on-Hands-esque HoT that healed you for half of your health every 3 seconds, it would probably generate an awful lot of overhealing – possibly 70% to 80%. Would that make it a bad ability? Of course not, it would still be massively overpowered.  While the majority might be overhealing, the fact that you effectively received a Lay on Hands during every 6-second period would also make you damn near invincible.  Any sudden spike would automatically be countered with a Lay on Hands, without any effort on your part!

The lesson here is that steady-state overheal measurements are about as useful as steady-state damage intake measurements – that is to say, not very useful at all.  Overhealing is only part of the assessment; we also need to consider throughput, and more importantly when that throughput occurs.  I’d easily take the Lay on Hands HoT over a weaker absorption effect because even though it’s high overheal, it’s also high throughput during a spike event.  It doesn’t matter if the absorption effect is 100% efficient, because it does less for me during those dangerous spikes than the overpowered HoT.

And that’s essentially the choice we’re making between Sacred Shield and Eternal Flame.  Sacred Shield is the steady, efficient absorption effect.  Eternal Flame is the overpowered HoT.  The only question is whether the magnitude of difference is great enough to make us prefer Eternal Flame over Sacred Shield.

TMI to the Rescue

Luckily, theorycrafting has come a long way this expansion.  In previous expansions, we might have to estimate an amount of overhealing for EF and do some hand-waving math to figure out whether that’s more effective.  In fact, we’ve had to do similar things earlier this expansion with the MATLAB code.  But those times are behind us, because we have TMI.

While it may not be immediately apparent, TMI essentially ignores gratuitous overhealing.  Why?  Well, consider what happens if you avoid a bunch of attacks in a row.  Your damage taken during that period is essentially zero, but you have lots of HoTs or healing effects happening.  When you perform the TMI calculation, you take the moving average and get a negative number.  Then you subtract one to get an even more negative number.  Then you raise 3 to that negative number and get a really small value, which you add to your TMI collector.  So events where you have a lot of overhealing contribute very little to your overall TMI.

On the other hand, if you take a lot of damage, such that even after those HoTs and healing effects the moving average is near 100% of your health or larger, that exponentiation generates a very large number.  In fact, the bulk of your TMI score is likely due to exactly these sorts of events: a handful of 6- to 10-second segments of each iteration where you experienced a spike.  Throwing extra healing at these spike periods makes a big difference in your TMI.  But the rest of the iteration produces a nearly-negligible background that doesn’t change much no matter what amount of overhealing you throw at it.

So in some ways, TMI is the ideal metric through which to filter overhealing.  It basically ignores the overhealing that occurs during safe times, but properly counts the healing that occurs during a spike event.  An ability that generates 90% overhealing will still perform well in a TMI measurement if it’s really good at saving you from or preventing spikes.

“Dumb” EF Usage

First, let’s consider some results I generated a few weeks ago.  I call this section “Dumb” EF usage because in these sims I’ve made no attempt to tailor EF’s usage to incoming damage.  We want to compare a player keeping Sacred Shield active to a player that uses Eternal Flame as a similar maintenance HoT, and blindly refreshes that HoT when it’s near expiration.

For these sims I used the trunk build of Simcraft, which should now be equivalent to v530-7.  The build I used had all of the 5.4 changes implemented through PTR build 17116.

I used the following action priority list:

actions=/auto_attack
actions+=/avenging_wrath
actions+=/holy_avenger,if=talent.holy_avenger.enabled
actions+=/divine_protection
actions+=/eternal_flame,if=talent.eternal_flame.enabled&dot.eternal_flame.remains<2&buff.bastion_of_glory.react>3
actions+=/shield_of_the_righteous,if=(holy_power>=5)|(buff.divine_purpose.react)|(incoming_damage_1500ms>=health.max*0.3)
actions+=/hammer_of_the_righteous,if=target.debuff.weakened_blows.down
actions+=/crusader_strike
actions+=/judgment,if=cooldown.crusader_strike.remains>=0.5
actions+=/avengers_shield,if=cooldown.crusader_strike.remains>=0.5
actions+=/sacred_shield,if=talent.sacred_shield.enabled&((target.dot.sacred_shield.remains<5)&(cooldown.crusader_strike.remains>=0.5))
actions+=/hammer_of_wrath,if=cooldown.crusader_strike.remains>=0.5
actions+=/execution_sentence,if=talent.execution_sentence.enabled&cooldown.crusader_strike.remains>=0.5
actions+=/lights_hammer,if=talent.lights_hammer.enabled&cooldown.crusader_strike.remains>=0.5
actions+=/holy_prism,if=talent.holy_prism.enabled&cooldown.crusader_strike.remains>=0.5
actions+=/holy_wrath,if=cooldown.crusader_strike.remains>=0.5
actions+=/consecration,if=(target.debuff.flying.down&!ticking)&(cooldown.crusader_strike.remains>=0.5)
actions+=/sacred_shield,if=talent.sacred_shield.enabled&cooldown.crusader_strike.remains>=0.5

which is just the SimC default with a line appended to maintain Eternal Flame, but only recasts if we have 4+ stacks of BoG. I used Slootbag’s character as our test subject and pitted him against the T15H25 boss. The only thing I changed is which L45 talent he had selected (EF or SS).

Here are the links to the html output in case anyone wants to pick through them with a fine-toothed comb:
Sloot – EF – 5.3
Sloot – SS – 5.3
Sloot – EF – 5.4
Sloot – SS – 5.4
Sloot – EF – 5.4 w/ 2T16
Sloot – SS – 5.4 w/ 2T16
Sloot – EF – 5.4 w/ 4T16
Sloot – SS – 5.4 w/ 4T16

For those who want the TLDR summary, here it is.

5.3 Results, 4T15:

Talent DPS DTPS HPS TMI
EF 313.6k 106.1k 105.7k 340
SS 315.4k 55.4k 99.8k 150

5.4 Results, 4T15:

Talent DPS DTPS HPS TMI
EF 257.6k 107.7k 106.4k 3980
SS 258.8k 74.5k 46.1k 10950

Note that this is with his current gear, i.e. without 4T16 (but with both T15 set bonuses), so it’s a simulation of what will more accurately reflect the first week or two of progression. Also note that due to how SimC does its HPS accounting, the Sacred Shield absorption is being included in the HPS value while also reducing DTPS.

The buff to EF and nerf to SS clearly shift the balance in favor of EF by a fairly large margin, even without the effects of 4T16. It’s also worth noting that Sloot’s EF uptime in these sims is 97% or better.  Since we’re only casting EF if we have 4+ stacks of BoG, this means he’s got enough haste to generate 4+ stacks every 30 seconds (more on that later).

We can artificially disable T15 set bonuses and enable T16 set bonuses using the code:

tier15_2pc_tank=0
tier15_4pc_tank=0
tier16_2pc_tank=1
tier16_4pc_tank=1

Doing that, we get:

5.4 Results, 2T16:

Talent DPS DTPS HPS TMI
EF 252.1k 113.8k 111.3k 9624
SS 253.6k 80.5k 52.4k 16518

5.4 Results, 4T16:

Talent DPS DTPS HPS TMI
EF 258.9k 106.0k 105.7k 4098
SS 253.8k 80.4k 52.4k 16476

Note that TMI goes up by disabling the T15 bonuses, moreso for the EF setup since it’s getting a significant benefit from the 2-piece (~45% uptime). It looks like EF is stronger even without the 4-piece, but the 4-piece clearly makes it a lot stronger while having no effect on SS.

However, this action priority list doesn’t include any line to simulate emergency WoG usage, so the comparison isn’t entirely fair.  We can do a little better.

“Smart” EF Usage

We could try and include emergency WoG usage with a line like

actions+=/word_of_glory,if=buff.bastion_of_glory.react>3&incoming_damage_5s>health.max*0.8

Which would fire off a WoG if you took over 80% of your health in damage in the last 5 seconds.  The idea is that this simulates emergency WoG usage as well as possible within the confines of the simulation.  While we can’t accurately model healer reactions to your health bar or your own go/no-go decision making based on incoming healing bars, in both cases because we don’t have a healer in these sims, we can at least try to minimize TMI by burning a self-WoG whenever we’re in the midst of a spike.

This also should help simulate the penalty we pay by not having those BoG stacks banked for emergency heals.  When we refresh Eternal Flame, we’re putting ourselves in a position where we don’t have a large emergency heal banked for the next 10-20 seconds, and that should have some sort of associated opportunity cost in terms of TMI.  In theory, we’ll be able to see that with this sort of conditional added.

If we put that line directly after Eternal Flame in the action priority list, we get results that look like this.  I didn’t have the simc file from the first set of tests handy, so I ran two baseline sims without that line for comparison.  The setup should be relatively similar to the first, though.

Sloot2 – EF – 5.4 PTR
Sloot2 – SS – 5.4 PTR
Sloot2 – EF – 5.4 PTR – emergency WoG
Sloot2 – SS – 5.4 PTR – emergency WoG

Talent DPS DTPS HPS TMI
EF 250.8k 107.7k 106.6k 2878
SS 251.8k 74.4k 52.6k 8499
EF+EW 249.5k 109.2k 107.7k 5827
SS+EW 248.5k 78.3k 64.3k 13006

It looks like including those emergency WoGs has helped narrowed the gap between the two results, even accounting for the Divine Protection “squish.”  Eternal Flame’s TMI actually went up here because we’re casting it more often, sometimes with only 4 stacks of BoG, and thus negating some of the efficiency we had before.   But Eternal Flame is still coming out ahead, even without the T16 4-piece effect.  It seems like the loss of our ability to emergency heal is more than offset by the sheer throughput we have in the EF HoT.  Being able to throw off a 500k WoG in an emergency isn’t as big of a deal when you’re getting 300k or more of that through a HoT.

And of course, if we artificially enable the T16 bonuses and disable the T15 ones, EF continues its dominance:

Talent DPS DTPS HPS TMI
EF 253.0k 105.1k 105.8k 1826
SS 248.2k 78.4k 77.1k 5963

We could try to optimize this even further by constraining EF to only be cast immediately after we take a melee hit, ensuring that it’s applying the base heal effectively.  In my limited testing, I wasn’t able to produce a strong TMI change with that (essentially adding an “incoming_damage_1s>health.max*0.4″ conditional and extending the allowed refresh period).  I think I could produce some improvement with finer tuning of the two parameters, but probably not enough to be too significant.

But this also highlights a major difference between the sim and real raiding.  Since we don’t have a healer, it hurts a little more to delay EF until a big spike, because it deprives us of that passive HoT ticking during some of the smaller spikes (or creates smaller spikes because the HoT isn’t there to counter them, depending on how you want to think about it).  In a real raiding situation, you have other HoTs and healing sources to cover that damage, so we should get a little more effectiveness out of sitting on EF and using it to instantly respond to the next melee attack.  In other words, delay it for a second or two (or longer if you get a string of avoids) to make sure that the base heal is efficiently used, which may save your healer some GCDs over the course of an encounter.

In any event, it’s looking like EF is going to be stronger than SS in most situations in 5.4

Haste

I do want to mention that there’s a minor caveat here: in all of these simulations, Slootbag had enough haste to ensure that he had another 4- or 5-stack of BoG with which to refresh Eternal Flame before the time came to refresh it.  If he didn’t have that much haste, one would assume that EF loses some potency.

However, in my simulations that didn’t really seem to be the case.  While lowering Sloot’s haste artificially, both TMI values went up, and Eternal Flame uptime fluctuated within the 90% decade.  But Eternal Flame was still consistently beating Sacred Shield by a large margin even as low as 24% melee haste.  It’s hard to imagine having less haste than that, since you can already exceed that value with full stamina gemming/gearing.  So there may be a relevant haste threshold beneath which Sacred Shield becomes preferable, but it’s not likely to be relevant to anyone stepping into normal- or heroic-mode T16 content on day 1.

Note also that all of these sims were with Divine Purpose talented; it’s entirely possible that DP is what keeps EF afloat at 24% haste, and that speccing Holy Avenger or Sanctified Wrath will reverse the paradigm.  I just didn’t have time to test all of those permutations thoroughly.

Conclusions

The simulations I’ve run here seem to be strong evidence that Eternal Flame is the new hotness, and Sacred Shield will merely be an also-ran in 5.4.  While that’s a fairly accurate statement for the bosses modeled here, it’s worth noting that real bosses vary.  In particular, effects that test your instantaneous effective health will tend to reward absorption effects more than healing, because those absorption effects are a temporary effective health boost.

For example, one-shot effects like Talon Rake and Decapitate may still lead you to prefer Sacred Shield.  There’s a reasonable chance you’ll be topped off before the effect, and the extra absorption may just be enough to survive an otherwise-fatal blow.

What we’ve generally modeled with TMI bosses is slower trickle-down deaths from successive melees, which tends to favor the raw throughput of 5.4′s version of EF, as we’ve seen. And while I think that’s a more reasonable model of tank death for most progression tanks, it may not match your most common death scenarios.

As always, your mileage may vary.  You’ll have to make the decision about which talent to take based on fight mechanics; obviously, if there’s a mechanic that strongly favors SS, don’t hesitate to take it.  It’s not terrible in 5.4, it’s just nowhere near as good as it is on live servers currently.

There doesn’t seem to be any meaningful haste threshold at which EF eclipses SS, at least when Divine Purpose talented.  I’m sure that we’ll revisit that topic down the road, though the T16 4-piece interacts so strongly with Divine Purpose that we may see most progression raiders taking it anyway.

One thought that keeps coming to mind as I review these results is just how far ahead EF seems to be.  It feels like the 30% Sacred Shield nerf or the 40% Eternal Flame buff would have been sufficient to make the two equally valid choices in that talent tier.  But the combination of both effects seems to just swap the two; rather than Sacred Shield being the hands-down, no-brainer choice that all paladins take, 5.4 just puts Eternal Flame in that spot.

It’s sort of disappointing in that sense.  While it’s nice to have a new mechanic to fool around with in the last tier, the ideal goal of the talent system is to make all three choices viable (or at least in this case, EF and SS, since we generally ignore Selfless Healer).  But rather than having an interesting choice between EF and SS, the 5.4 changes spin the wheel too far in the other direction.  We still don’t have equally valid and interesting choices in that tier.

Although I’m not sure we’ll ever see that happen due to the nature of the three talents in that tier.  I could imagine balancing Eternal Flame and Selfless Healer, because they both provide different ways to produce extra healing.  But balancing either with Sacred Shield is tougher, because it’s an absorb.  Even if they all produced identical TMI values, we’d probably lean towards Sacred Shield – it’s an absorb, essentially passive, generally higher DPS, less reliant on perfect play.  It’s just safer than the other options if they produce similar results. I still hold out hope that next expansion, Sacred Shield will become baseline for Protection and we’ll get a third healing option in that tier.  I think that we have a much better chance of getting three interesting and equally viable options in that situation.

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

Simulationcraft v530-7

Simcraft version 530-7 was released this week, and contains a bunch of bugfixes and updates.  You can download your copy here.  As usual, here’s a list of the major changes:

General

  • 5.4 PTR now includes the new Vengeance formulas, including diminishing returns
  • TMI calculation now normalizes against health on-the-fly to account for temporary health buffs (e.g. Last Stand)
  • New “T16Q” boss to challenge well-geared tanks
  • TMI bosses reclassified according to content type:
    • T15H25 (translates to old T15H)
    • T15N25 (translates to old T15N)
    • T15H10 (translates to old T15N)
    • T15N10 (translates to old T15LFR)
  • Bosses have gained a new “melee_nuke” attack.  This is much like spell_nuke, but does physical damage and cannot be dodged, parried, or miss.  It can be blocked.
  • Boss attacks now do variable damage rather than fixed damage
    • Melee attacks default to a range of +/- 20% of the base damage
    • spell_nuke and melee_nuke attacks default to a range of +/- 10% base damage
    • the APL option “range” now lets you specify a custom damage range.  For example, if you wanted an auto attack that did 50k to 150k damage, you could use:
      /auto_attack,damage=100000,range=50000
  • Fluffy_Pillow has been re-calibrated to be much more melee-heavy. He still performs spell_nuke, but now also uses melee_nuke and uses both much less frequently.
  • Ability reporting has changed slightly. When clicking on an ability to open up the detailed report, there will no longer be a separate “Block results” sub-table to summarize the results of the block roll.  Instead, attacks are broken down by their full type – i.e. miss, dodge, parry, hit, hit (blocked), hit (crit-blocked), crit, crit (blocked), crit (crit-blocked), and so on.
  • Minor corrections to mitigation ordering (i.e. armor before block, shouldn’t have a noticeable effect for paladins, matters for warrior set bonuses).

Paladin

  • SotR no longer mitigates magical damage (oops?).
  • Blocked attacks now do less damage than full hits (oops?).
  • PTR changes updated to b17331
  • T16H/N Protection profiles implemented
  • T16H/N Retribution profiles implemented (but not optimized)
  • Fixed an import bug for Retribution that was causing L90 talents to be ignored

Warrior

  • Shield Barrier bugfix
  • Lots of other changes that I haven’t been keeping careful notes on

 

Comments

As you can see, those are some pretty big bugfixes for paladins.  SotR was unintentionally mitigating magical damage, and blocking wasn’t always working quite correctly.  Together, these two should cause mastery’s value to jump around a bit (positive from the block change, negative from the SotR change).  I don’t think it will suddenly be a strong stat, but it may be able to keep up with dodge and parry now.

In addition, SimC should be fully up-to-date for the latest PTR, so we can do some testing to see how certain talents stack up to one another.  I’ve already done a little work with SS and EF over at maintankadin which I may write up as a blog post for next week.  I’m working on re-building all of my various MATLAB simulations as simc files, but now that the semester’s started things have gotten busy and I can’t guarantee I’ll have them done in time for 5.4′s release.

You may notice your TMI go up fairly significantly if you’re simming with “ptr=1″ enabled.  That’s to be expected, partly due to the SS nerf, partly due to the fact that you’re getting less Vengeance.  I don’t *think* there are any other bugs that could be causing TMI inflation, but as usual if you see something fishy don’t hesitate to post a comment so we can double-check it.

If you’re new to Simulationcraft, you may want to check out my Getting Started Guide.

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

Flex Capacitor

Flex raiding is fascinating because it evokes such different reactions from different groups of players.  For example, my first reaction was pure enthusiasm.  “This is great,” I thought, “I’ll be able to do more raiding on my favorite alts without having to commit to another scheduled raid night.”  The fact that it’s cross-realm means I can join up with friends on other servers and help out, and automatic scaling means that I don’t have to feel bad if I can’t make a night.

I was also optimistic that the introduction of a new difficulty level that was parked squarely between LFR and Normal would help revitalize a guild that several of my real-life friends play in.  They hit a brick wall in normal-mode Throne of Thunder, struggling to score a single Jin’rokh kill, and their raid team decided to stop bothering.  Many of them stopped logging in and let their accounts lapse.  It’s a story that is all too common nowadays – a casual friends-and-family guild that broke upon the rocks of tier 15.  Flex seems well-poised to fill the void that these guilds fell into.  Accessible content that’s still aimed at organized groups rather than consumption with random strangers. Not having to force anyone to sit out on the one night a week that they can make is just the icing on the cake.

My biggest reservation is actually the loot system.  Personal loot certainly makes sense, both in LFR and in Flex.  I don’t object to it from an intellectual or game-design perspective.  But the personal loot system feels like an awkward fit in this case – a glove that’s a size too small, as it were.  You can wear it, but it just doesn’t feel quite right.  There’s something special and exciting about killing a boss and seeing the loot it dropped on its crumpled corpse, even if none of that loot is for your class or spec.  The personal loot system has never evoked that same feeling for me, for some reason.

And I think that it will work less well in Flex than it does in LFR.  At least in LFR, it’s an unorganized group of strangers that you wouldn’t want to share your loot with.  Even when you don’t get something, the large number of players and limited communication shields you from the feeling that the effort was worthless.  In Flex, it should be fairly common to down a boss and have none of the ten players present get loot.  And that will feel far worse because it’s an organized group of friends rather than faceless strangers.

In fact, if there were one thing I’d change about the Flex concept, that would be it: the loot system.  Rather than using personal loot, I would use a progressive probabilistic system.  The boss would drop an average of 0.2 items per player in the group.  Items would be guaranteed at certain thresholds – i.e. it would drop one item for every five players in the raid (so 2 items for a 10-man, 5 items for a 25-man).  For partial groups, each player would contribute to the probability of an additional item.

To illustrate: a ten-player group would always see exactly 2 items.  An eleven-player group would get 2 items and a 20% chance at a third item.  A twelve-player group would get 2 items and a 40% chance at a third item.  And so on, such that the fifteen-player group would get exactly 3 items.  I realize that it’s far too late for this sort of system to be implemented for 5.4, and would probably require some subtle technical changes in how boss loot is handled server-side.  But I hope that it’s considered for 6.0, especially since I think it’s a safe bet that Blizzard will get a lot of (negative) feedback about personal loot in Flex once players get the chance to experience it.

But overall, I was still completely optimistic about Flex raiding.  So it was a surprise to me that the first few pieces of feedback I received when discussing it with other hardcore raiders was entirely negative. Though in retrospect, perhaps it shouldn’t have been, as the complaint was familiar enough.  “Great, now I’ll have to run Siege of Orgrimmar three times a week on my main.”

So while Flex raiding introduces some great opportunities for the player base as a whole, it presents a fairly complicated problem for a small subset of that player base at the extreme upper end of raiding.  Heroic raiders in particular are faced with yet another potential time sink and an increased likelihood of burnout.

This concern spawned a long and involved thread on maintankadin discussing what, if anything, Blizzard should do about it.

Burnout

It’s easy to write this off as an irrelevant problem, or to characterize it as a fabrication; a self-imposed problem created by deranged players that simply can’t exercise self-control. But I think that’s a mistake.  Despite the lower ilvl of LFR and Flex-raid gear, tier bonuses and trinkets have traditionally been powerful enough to more than overcome the ilvl disparity.  So there’s a clear incentive for players to run this content even if their skill level far exceeds that content.

And where there’s an incentive, one must consider human psychology.  The vast majority of these players are not incapable of self-control.  They are sharp minds making calculated decisions about how to spend their time in-game.  Raiding at any organized level is being part of a team, which means there are complicated social interactions involved.  Some players will do whatever they can to help the team, either out of altruistic motivations or to ensure that nobody can accuse them of giving less than 110%.  Others will do the bare minimum that is required.  Either of those cases can involve a weekly LFR and/or Flex raid for extra chances at overpowered gear.

Perhaps more concerning is those players raiding on limited schedules.  They may be skilled enough to raid at a high level, but the demands of the regular raid schedule already stretch them near the limit.  Additional LFR or Flex raids outside of the usual schedule may very easily be the tipping point that pushes them out of raiding entirely.  And those players are rarely content to scale back to a shorter raid week with weaker progression.  They’re more likely to get frustrated with the game, quit, and move on to other games that have a similar skill cap but don’t require the same time expenditure.

But it isn’t just heroic raiders that are faced with this problem.  That’s a convenient way to try and marginalize the effect, but the truth is that even normal-mode raiders are presented with this dilemma.  In some ways, they even have it worse: those Flex-raid items are a bigger upgrade for a normal-mode raider’s previous-tier gear than for a player with double-upgraded heroic loot.  And there are probably more potential upgrades in Flex mode for those normal raiders as well.

We tend to focus on heroic raiders as the ones most inconvenienced by these additional time sinks, but in reality I think normal raiders are more heavily impacted, as they’ll have incentives to run LFR and Flex throughout the tier, long after they’ve become irrelevant for heroic raiders.  And normal-mode raiders are no less susceptible to burnout than their heroic brethren.

I don’t think there’s any question that the problem exists.  It’s hard to argue that the incentive isn’t there, because it’s fairly evident.  And burnout is a major concern, not just of the player base, but of Blizzard.  The developers have made it quite clear that the shared lockout between 10-man and 25-man that was instituted in Cataclysm was explicitly to stem burnout caused by running both formats each week.  So the question is not whether there’s a problem, merely whether or not Blizzard should do anything about it.

Solutions

Much of the linked thread is focused on exactly that question.  What can Blizzard do to mitigate the incentive to run and re-run the same instance multiple times per week? Should they do anything at all?

Even though there’s a problem, sometimes there’s just no good solution.  One argument is that this problem need not be addressed because it’s temporary. Flex raids are provided in wings, and those wings will be gated much like LFR will be.  By the time all of Flex mode is available, heroic raiders will already have several full instance clears under their belts, and the number of upgrades to be had in LFR or Flex will likely be small.  There will always be a few players that get unlucky with drops and feel compelled to keep going back for that one item they’re missing.  But with a winged implementation, even that isn’t so onerous, as you’ll only be running 3-4 bosses one extra time each week.

Of course, that again focuses on the heroic raider’s experience.  Normal-mode raiders may well find themselves running multiple wings of Flex throughout the tier for gear upgrades.  For those players, the problem will feel a lot less temporary.

But perhaps the best argument for leaving the “Flex Problem” well enough alone is that most of the proposed solutions are worse than doing nothing at all.

The Nerf Bat

Predictably, the first few solutions trotted out involve nerfing LFR and Flex loot ilvls so that they’re not attractive to heroic raiders.  If the problem is that the gear is an upgrade for heroic raiders, perhaps the solution is to nerf it until it isn’t.  I think the reason that this solution is the first to be suggested is tied to the fact that the argument has worked before.

In cataclysm, it was only 13 ilvls behind.  And at the time, I wrote a blog post opining that the separation should probably be a little larger to further disincentivize LFR farming by organized raiders.  In the first two tiers of MoP, the gap between LFR and normal-mode gear was increased to 20 ilvls (if you’re keeping score, I suggested 19 in that post).  In T16, that gap is increasing even more (up to 28 ilvls) to accommodate Flex-mode gear, which will be 17 ilvls below normal-mode gear.  So it’s clear that Blizzard has been sympathetic to the “increase the ilvl gap” argument.

However, I’m also not convinced that solution actually works all that well in practice.  It’s fine when you’re just comparing raw stats, but the problem areas are traditionally unique effects from tier bonuses and trinkets.  Neither of those are beholden the traditional rules of “higher ilvl = more stats = better.”  In both T15 and T16, we see trinkets with unique and interesting effects that can be exploited for large DPS gains compared to higher-ilvl trinkets.  And especially when it comes to tanks, set bonuses can be game-changing and hard to compare to a fixed stat increase.

Further, there’s a social problem with increasing the ilvl gap even further.  Nobody likes to feel like a second-class citizen.  But as the ilvl gap between LFR and Normal increases, that’s exactly what LFR players feel increasingly like.  There’s no question that the rewards for heroic-mode need to be greater than normal, which needs to be greater than flex, and so on down the line.  But remember that each ilvl is approximately 1% character power.  An LFR player is already about 20% less effective than a normal-mode raider, and 33% less effective than a heroic-mode raider.  Tuning open-world content gets much harder when that sort of performance gap exists.  Content that’s challenging for the heroic raider is impossible for the LFR player, while content that challenges the LFR player becomes trivial and boring for the heroic raider.  It adds another constraint on the problem of making compelling open-world content, which is something Blizzard has been struggling with all through Mists of Pandaria.

Nerfing LFR and Flex-mode gear also sends a very clear message to LFR and Flex raiders, whether that message is intended or not.  It says “we value the opinion of these heroic raiders more than yours,” because the majority of players calling for LFR gear to be nerfed are outspoken heroic raiders.  I’m sure Blizzard would never agree that this is the message they’re sending, and honestly don’t believe they think that way in the first place.  But perception is what matters, and there’s no question that this is how such a change would be perceived.  In essence, “GG, Blizzard caving again to the elitist heroic raiders that don’t want casuals to have nice things.”

So I really don’t think that nerfing the ilvl of LFR and Flex loot is a viable solution, nor do I think it’s any more likely than removing LFR entirely.  I think the drop in ilvl to accommodate Flex raiding was probably a contentious compromise even within the halls of Blizzard HQ, seen not as ideal but as necessary to preserve the impression that there’s a significant skill divide between normal/heroic and LFR/Flex.  I’d be very surprised to see LFR loot drop any farther behind.

Loot Lockouts

Another idea put forth is to share loot lockouts between difficulties.  In other words, if you run Flex, you’re locked out of loot in LFR for that week.  Depending on who’s making the suggestion, it could even extend to being locked out of normal and heroic as well.  And I can see the reason this option looks good on paper.  It’s simple to understand and keep track of: one boss, one chance at loot, once a week.  Period.

That said, it’s also a fundamentally flawed proposition.  LFR and Flex raiding weren’t just instituted to provide an additional difficulty level for standard raiding.  They’re explicitly designed to mitigate or eliminate some of the organizational and logistical “strings attached” that come with normal raiding practices.  The need to agree on a particular time and date, to maintain a specific roster size, to choose which ten players to bring for each boss and which to sit on the bench, to have consumables prepared beforehand, even the need to review strategies before raid time.  All of these are issues that LFR and Flex attempt to eliminate in the name of accessibility.  These formats are doing everything they can to promote social raiding – to encourage friends to get together and have fun without the sorts of burdens that raiders have traditionally been unable to escape.

I’m certain that Blizzard wants a player who rarely has time for more than LFR to be excited when they get a chance to join a Flex raid pick-up-group.  If it feels like an exciting opportunity, the player is happy and the format is doing its job.  But it will just feel like a disappointment to the player if they’re unable to receive Flex loot because they’ve already run that wing of LFR this week.  Suddenly, a layer of planning and optimization has been forced on a format that felt free and unburdened otherwise.

And that’s really the reason that loot lockouts won’t solve this problem.  To ignore the social aspect of LFR and Flex is to completely overlook the intent of those modes.  They are meant to be flexible and accommodating, so that you can jump in with some friends and help out without worrying about exterior consequences.  Any sort of loot lockout subverts the freedom that makes LFR and Flex raiding attractive to the majority of its audience.  While it might fix the incentive problem that heroic and normal raiders have, it causes so much collateral damage to the social raiding formats that it’s untenable.

Bonus Rolls

So far, the suggestions have focused on adding or tightening restrictions on LFR and Flex, which inevitably makes the format worse for its intended audience.  And I think that any solution trying to walk that path is doomed to failure.  The problem is very limited in scope.  It only affects normal and heroic raiders.  The solution should be similarly limited in scope, in that it should try to fix the problem in a way that has the smallest (ideally no) impact on LFR and Flex raiders.

In that thread, I suggested a method that tied your LFR loot roll to your bonus rolls.  In short, if you hadn’t used your LFR loot roll on a given boss that week, you would get an increase (maybe +10%) to your bonus roll chance if you used a coin on that boss in normal or heroic mode.  Using a bonus roll would then make you ineligible for loot from that boss on LFR.The idea is very straightforward.  If a normal or heroic raider is after a specific item, then increasing the bonus roll chance from 15% to 25% on their highest difficulty level is more attractive than another 15% chance to get a weaker version of the trinket through LFR.  There would no longer be an incentive to run LFR for a powerful item because that LFR roll was now an additional resource that could be leveraged to better effect on heroic mode with a bonus roll.

However, having given it more thought, I’m not sure it’s a great idea either. For one, it actively discourages raiders from going into LFR.  While most heroic raiders would be happy for a reason to actively avoid LFR, it does add another layer of restriction.  What about players who like to run LFR for valor, or to help out a friend in a less progressed guild?  They’re suddenly restricted from doing that because it impacts their bonus rolls in progression content, at least until after main raid is completed for that week.

You could work around that limitation by making it an option, but now you’re talking about introducing a new UI and building an entire system around the idea of “LFR loot rolls as a resource.”  And while I like the resource idea, I think this amount of complication clearly sets it aside as something too large and complicated for a mid-expansion patch.

There is an alternative implementation of the bonus roll idea that would probably make LFR and Flex raiders happy.  Or at least, amused by the irony.  A bonus roll on normal or heroic could automatically lock you out of LFR loot from that boss, and vice versa.  This is interesting in that it primarily punishes the normal and heroic raiders.  An LFR or Flex raider would be unburdened by the restriction, while the heroic raider would suddenly find their three most attractive bosses worthless on LFR.

But ultimately, even that idea has its share of awkward consequences, including punishing the LFR raider that can occasionally make it into a normal-mode group.  While I think the “rolls as a resource” idea is interesting and worth investigating, it would require a lot of careful tweaking to get it into a form ready for implementation.

Free Loot

The idea I’ve liked the most so far is one proposed by Thels.  For lack of a better term, I’d call it the “Cumulative Loot System.”  In short, when you kill a normal or heroic boss, you also automatically get your personal loot rolls for LFR and/or Flex.  You could imagine various permutations of how this would work; maybe a normal kill gives you your LFR roll, while a heroic kill gives you both LFR and Flex rolls.  But the simplest case is just that you get both rolls on any normal or heroic kill.

What I like about this solution is that it directly addresses the problem at the source.  The problem is that players clearing normal and heroic feel compelled to run LFR and Flex for additional chances at marginal upgrades.  The complaint isn’t that the LFR and Flex loot is “too good,” or “more than LFR deserves,” strictly speaking, though I’m sure we could find a small subset of players who would argue those points.  The problem is that the extra LFR and Flex clears require more time on top of an already demanding heroic raiding schedule, and that a player with the skill to do heroic modes doesn’t find these watered-down difficulty levels fun.

Rather than trying to take anything away from LFR or Flex raiders, this solution instead just gives “extra” or “free” loot to heroic raiders to remove the additional time sink.  And I think that’s a much wiser move at this point in the game’s life than trying to impose more restrictions on the LFR and Flex raid population, which even now accounts for the vast majority of raiders.

The main objection that’s arisen to this suggestion is that normal/heroic raiders don’t “deserve” that extra loot, because they haven’t “earned” it.  But I think there are a number of reasons that this objection is nonsensical.  First, there’s the obvious: the argument rests on the abstract and arbitrary nature of what anybody does or doesn’t “earn” or “deserve” in a fictional online universe where rewards depend on the whims of a team of developers.  If you ask 100 players what a raider deserves for killing a heroic boss, you’ll get 100 different answers.  What anyone “deserves” is arbitrary, and determined entirely by what the boss actually drops.

More importantly, there’s already a precedent in-place that heroic raiders do “deserve” more for killing a boss than normal or LFR raiders get for killing a boss.  And that’s above and beyond the increased ilvl loot that heroic bosses drop.  Whether it’s a guaranteed vanity mount drop from an end boss, a raid-wide achievement like the Glory achievements, or access to a special heroic-only boss like Ra-Den, Sinestra, or Algalon, heroic raiders have always received extra perks for clearing harder content.  You could argue that they don’t deserve those perks, but Blizzard keeps implementing them, so they clearly disagree.  Trying to draw a distinction between vanity mounts and extra LFR loot and argue that heroic raiders “deserve” one but not the other seems specious to me.  Both are just a small extra reward for putting in additional time and effort and demonstrating a higher level of skill.

It’s also worth keeping in mind that time is the real reward here.  In most cases, the “free” extra loot is nothing more than extra satchels containing 28 gold.  Certainly some lucky players will get that trinket they would have run LFR for, but for the vast majority of heroic raiders this reward structure would just mean freedom from the additional time sink of LFR and/or Flex.  And the excess gold could even be compensated for by reducing the gold that heroic bosses drop.  I doubt many raiders would hesitate to pass up the extra gold they’d get by running LFR for the freedom from ever having to run LFR again on their main.

There’s also a subtlety here that I think most people have overlooked.  If normal and heroic automatically grant LFR or Flex rolls, then it’s no longer a problem if those items are attractive to normal and heroic raiders.  And if there’s no longer any problem with them being attractive to heroic raiders, it means that LFR and Flex loot wouldn’t have to be kept at an artificially low ilvl.  There’s no point in having a 30-ilvl gap between normal and LFR just for the sake of keeping normal and heroic raiders from feeling obligated to run LFR.  The gap can be adjusted more freely by the developers, which could make LFR and Flex feel even better for their intended audiences.  I wonder if the players arguing against giving heroic raiders more “free” loot would stand firm on that position if the alternative was getting better loot in LFR.

The other potential downside is that fewer heroic raiders will run LFR, lowering the average skill level of a randomly-selected LFR group.  I’m not sure that’s going to have a significant impact on the average LFR raid, though.  In many cases, guilds will queue together to “get the pain over with quickly,” so nobody suffers if we remove those groups from the LFR queue.  And many of the players who run LFR on a geared main may continue to do so for valor, to help out a friend, or just to epeen meters.  Or they may go on an alt that can benefit from the loot instead.  So they won’t be completely absent.

But more importantly, LFR was never tuned with those players in mind.  The encounters are easily clear-able by a group that contains no highly-geared champion to carry them.  I’ve been in groups on my mage where I topped DPS meters despite only having an ilvl of 500, and we had little trouble killing bosses.  While some players might bemoan getting carried by a handful of heroic-geared players, that was never how LFR was supposed to work in the first place.

In fact, I wonder if it wouldn’t have a positive effect on LFR overall.  It’s fairly common to find players that join up and AFK bosses, relying on that handful of players to carry them to free loot.  And that cycle perpetuates because it works.  If you remove the “carriers,” such that every player’s contribution was more important, I think the remaining players might take enforcement more seriously too, and vote-kick players that clearly aren’t contributing.  If carrying an AFK player had a significant downside, such as a noticeable increase in the likelihood of a wipe, players may be less willing to shrug their shoulders and say “whatever, we’re going to kill the boss anyway.”

Closing Thoughts

In my mind, it’s pretty clear that any solution has to have as little an impact on LFR and Flex as possible.  Because to be frank, while the problem exists, I don’t think it’s as severe as most heroic raiders make it out to be.  Sure, it’s an inconvenience, and it’s definitely going to cause some players to burn out.  But I think it’s probably a very small percent.  At least, a very small percent of heroic raiders, who will out-gear Flex mode to the point of irrelevance very rapidly.

So I think that any solution that hurts the LFR or Flex experience probably isn’t worth it.  Sure, it might be a quality-of-life improvement for us, but that shouldn’t come at a significant quality-of-life decrease for a much larger population of raiders.

If we really want to eliminate the incentive to spend time in LFR, we should be focusing our effort on solutions that don’t actively punish LFR and Flex raiders.  A solution like the Cumulative Loot System idea, which nullifies the incentive without taking anything away from social raiders, is exactly the sort of idea that can gain widespread support from more than just a small subset of elite heroic raiders.  And the possibility of decreasing the LFR loot gap could even win it the support of LFR players.  An idea that works for everybody is far more likely to be considered by a developer than one that’s divisive, and our best chance at avoiding a return to Wrath-of-the-Lich-King era burnout conditions.

Posted in Design, Theck's Pounding Headaches | Tagged , , , , | 77 Comments

Stamina Breakpoints?

Last week I investigated two different situations where Simcraft was giving a user stat weights that seemed wrong.  These turned out to be pretty interesting, and are situations that other players could encounter at some point, so I decided it was worth writing a blog post to describe what happened.

The First Puzzle

The first quandary was posted on maintankadin, as a user asked why they were getting stat weights that looked like this:

Mysterious stat weights

What is this I don’t even….

You can imagine why the player was confused.  Stamina, armor, and mastery were all causing their TMI value to increase (which is bad). And it’s hard to imagine a situation where any of those three would have a negative effect on your survivability.  Remember that these are stat weights, so they’re generated by adding a free 1000 of each stat and comparing to a baseline measurement.  It’s not a simple case of these stats being less effective than other stats, it literally means that adding 1000 stamina made him more likely to die!  Since when will adding extra mitigation or health get you killed?

Well, it turns out, there’s a situation where that’s exactly what happens.

While looking into this problem, I first double-checked all of the TMI calculations in the code.  Everything was still working exactly as it should, so the problem wasn’t with the model.  It had to be related to the inputs and outputs.   So to test, I tried adding a free 1000 stamina to the player’s character with the tabard slot.  And all of the sudden, his stat weights looked fine:

yuko_1kstam

That looks better! But… why?

This suggested that we’re hitting something of a stamina break point.  You’re probably familiar with the concept of haste breakpoints or crit breakpoints – points when all of the sudden, a certain stat becomes more or less valuable due to a mechanical reason.  In fact, you’re probably even more familiar with a few other stat breakpoints: hit caps, expertise caps, and the block cap that we all danced around in Cataclysm are all examples of stat break points.

But…. stamina?  What in the world could cause a stamina break point?

So I ran a few more simulations and scrutinized the results, looking for anything in the report that changed significantly from one run to the next.  Here’s what I came up with:

          DP uptime   SotR uptime  HP_T15_4pc    TMI     Stat Weights
Base        25.82%       86.50%      136.07     611.6    Funky   (Sta/Armor negative)
+250 stam   25.81%       86.54%      136.00     574.2    Funky   (Sta/Armor negative)
+500 stam   25.46%       83.22%      134.26     819.5    Normal  (Hit>Exp>Sta>Mast>Armor>Str>Haste)
+1k stam    25.08%       83.18%      134.24     713.2    Normal  (Hit>Exp>Sta>Mast>Armor>Str>Haste)
FS->DP      24.59%       74.50%      129.50     676.4    Normal? (Hit>Exp>Haste>Sta>Str>Mast>Armor)

When we went from +250 to +500 stamina, we had an abrupt increase in TMI and suddenly got different stat weights.  The source seemed to be a sudden drop in SotR uptime, to the tune of over 3%.  But that drop didn’t come from a change in our usual holy power generators.  In fact, it came from the T15 4-piece bonus!

You can probably already guess the mechanism that we’re seeing here.  The tier 15 4-piece bonus grants one holy power for every 20% of your health taken as damage during Divine Protection.  That 20% threshold depends on your stamina, though.  So if you increase your stamina, it takes a slightly larger hit to qualify for that holy power gain.  In this case, by adding ~300 stamina, we were creating a situation where an attack that was granting Holy Power before was no longer doing so, leading to a survivability loss and strange stat weights.

Keep in mind that the data Simulationcraft was giving was correct given the model we’re using.  By adding 1000 stamina, the player’s survivability was going down.  Bizarre, but true.  However, in practice this issue is essentially irrelevant.  Before we get to why that is, let’s take a look at the second puzzle.

The Second Puzzle

The next puzzle was a little more subtle.  Trompu posted in the comments of last week’s Simulationcraft 530-6 post saying they were observing strange results.  In this case, the calculated stat weights against the LFR boss looked like this:

palarus_funky

Again with the funky stat weights….

So of course, my first guess was that the T15 bonus was at fault.  But when I looked at the report, it was clear that he wasn’t even using the 4-piece bonus.

In retrospect, there’s something else on this plot that should have been a clue that the problem was elsewhere.  The mastery score isn’t negative.  That’s not sufficient evidence that the problem isn’t the 4-piece, but it certainly makes it a less likely cause.

So I dug around the reports for a while.  A long while.  In fact, after an hour or so I got a little embarrassed that I couldn’t figure out what was causing it.  Nothing seemed that significantly different in the reports.  It was clearly some sort of stamina break point, but nothing I could find in the report pointed at what game mechanic was triggering that abrupt dependence on player health.  Defeated, I e-mailed Meloree asking if he could think of anything.

Five minutes later, I got a reply that made me feel like a moron.  As Mel kindly pointed out, I had tweaked the action priority list to perform a shifting queue by using the conditional:

shield_of_the_righteous,if=(holy_power>=5)|(incoming_damage_1500ms>=health.max*0.3)

Which, quite clearly, depends on player health.  Oops.

So in this situation, the break point wasn’t in the game mechanics at all.  It was in the logic we told the simulation to obey while casting spells.  Once we added enough stamina, we stopped using an SH1 queue and simply started spamming SotR at 5 holy power (an “S” queue), because the boss was no longer hitting us for more than 30% of our health!

The important point here is that these stamina breakpoints aren’t always due to a specific mechanic.  Any time we have some sort of dependence on player health, we can get strange discontinuous effects.

Stamina Breakpoints – Are They Real?

To illustrate what’s happening here a little more clearly, let’s look at some of the data from the second puzzle.  I this case, I’ve plotted TMI against the additional stamina I was providing via the tabard slot.

palarus_tmiplot

TMI plotted against added stamina.

In this plot, adding stamina has a very clear benefit on either side of the discontinuity, meaning that it’s still providing added survivability.  It’s only at the discontinuity itself that it’s behaving badly.  Unfortunately, it behaves really badly, giving a fairly significant increase in TMI.  But there are a few reasons that this result isn’t as significant when you play as the plot makes it appear.

For this particular example, the break point was caused by the action priority list logic.  In other words, we were telling the simulation to play very differently after we added ~760 stamina.  But in reality, players don’t play like that.  You’d be very hard-pressed to find a player who can discern between a hit that’s 30% of their health and one that’s 29% of their health.  A real player would likely hit the SotR button in both of those situations, not just in the first case.

But there’s a more subtle reason that this effect isn’t going to happen in-game, and it has to do with what I said earlier about Simcraft’s results being “correct, as far as the model goes.”  You see, when we defined the TMI bosses, we gave them a base damage but no range.  So they always hit for exactly the same amount.

In fact, one of the options in SimC is to use an average damage amount rather than a range.  By default this option is turned on, so your abilities will always do a fixed amount of damage.  So even if we had defined a range, the boss would’ve been hitting for exactly the same amount each time.

Of course, there’s an additional complication: we didn’t define a boss’s damage range because as of version 530-6, there isn’t a way to do it with the action priority list!  This wasn’t a big deal in the past because very few players used SimC to simulate tanks, and DPS players don’t care how hard the boss hits.  But now that tanks are using SimC, it’s suddenly become more important.

Why? Well, because when the boss hits you for a variable amount of damage, it “softens” these stamina breakpoints, often to the point that they no longer exist.  Since the boss doesn’t always hit for exactly X, the stamina break points are no longer concentrated at an exact stamina value.  Instead, they’re spread out because sometimes the boss hits for slightly more or less than the damage value associated with that break point.  Mathematically, this is basically performing the convolution of the boss’s damage distribution with the plot above.

If you take a look at some logs, you’ll see that the average boss’s damage range is huge, often larger than +/- 20% of the mean damage value.  That’s a large enough range to completely obliterate this type of sharp break point.  Rather than a sharp loss occurring at x=760  stamina, it spreads that loss out over a range of tens of thousands of stamina.  That makes stamina slightly less valuable in that range than it normally would be, but by a relatively small amount.

So in practice, you shouldn’t have to worry about whether you’re crossing a stamina break point, because the effects are almost never as abrupt as we’re seeing in these examples.  The only case where it will happen is with an attack that does a very specific amount of damage with no range variation, and those encounters are fairly rare.  Incidental absorption bubbles (ex: Illuminated Healing) are often going to be enough to make even those break points inconsequential.

Solution

What do we do about this problem? Simcraft is giving us results that, while correct for the model, aren’t really reflecting the reality of tanking.  Well, the answer is pretty obvious: we force the boss’s attacks to vary in size.

So that’s exactly what I did.  I’ve added code to force the boss’s melee attacks to vary by +/- 20% of the base value regardless of whether the global “average_results” option is set or not.  That should automatically smooth these sorts of effects under the vast majority of circumstances.  I’ve also added code that allows you to define an attack’s damage range in case you don’t like the default 20%.  I’ll provide more documentation on those details in the version 530-7 blog post when that version is finally released.

In any event, this was a fascinating look into a subtle aspect of the game’s mechanics.  The fact that these break points exist, even if they’re relatively rare and unimportant in practice, is just another example of the depth involved in modeling tanking.  And another reminder that we occasionally have to deviate from the traditional methods to deal with that depth, because sometimes it invalidates a simplifying assumption that made perfect sense in another context.

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

Updated Diminishing Returns Coefficients – All Tanks

A few weeks ago, Taser contacted me about calculating the avoidance diminishing returns coefficients for monks to greater accuracy.  As you might remember, we managed to do this for paladins a little less than a year ago by using an addon called Statslog.  Prior to that post, we had already determined coefficients for PaladinsDruids and Brewmaster Monks, but via a less rigorous data collection method (the character sheet) that gave less accurate estimates of the true value of these constants.

For example, we were able to peg the k-factor for monks at $k=1.422$, but the dodge and parry caps had a much wider range of possible values.  The best we could do for those were:
$C_p = 91 \pm 7$
$C_d = 505 \pm 25$

That’s not super-accurate, and while they give reasonable enough results, it’s always nice to have better accuracy.  We’re also aided by the fact that we now know the exact conversion rates of strength to parry and agility to dodge for all five tanking classes, which eliminates some unknowns.

I asked Taser to collect a data set for me using Statslog so that I could perform a more accurate analysis on monks, and he graciously agreed.  After calculating the results and updating Simcraft, I realized that we may as well cover the other three tanks, so I collected data sets for druids, death knights, and warriors.

I also spent some time updating my methods for performing these fits.  In the past, calculating these fits generally meant spending a bunch of time in MATLAB hand-arranging the data and then working with the curve fitting toolbox GUI.  It also means that every time I sit down and do these calculations, I end up with slightly different methods.  Thus, I had a folder full of MATLAB files from different months, all doing the same thing in slightly different ways.

I decided it was time to streamline, so I cleaned up all of that mess and built an efficient system that I can use for all five classes.  Now all I need to do is change the text file containing the data, and the various functions I’ve written to parse, arrange, and fit the data do all the hard work for me.

Monk

This is Taser’s data, which was rather extensive.  He was very clever and used the Steadfast Talisman of the Shado-Pan Assault to achieve incredible coverage of the dodge surface, which led to an excellent fit.  Below are the plots, followed by the fitting data.  After the goodness-of-fit information, I’ve given the values for $C$ and $k$ to roughly the accuracy that the fit allows.

Monk dodge surface fit generated from Taser's 5.4 PTR data

Monk dodge surface fit generated from Taser’s 5.4 PTR data

Monk dodge surface residuals (deviation of fit from measured values)

Monk dodge surface residuals (deviation of fit from measured values)

 

##### Dodge Fit #####

     General model:
     dfit(x,y) = 3+111/951.158596+(x/951.158596+y)/((x/951.158596+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       501.3  (501.3, 501.3)
       k =       1.422  (1.422, 1.422)

           sse: 1.0609e-010
       rsquare: 1.0000
           dfe: 151
    adjrsquare: 1.0000
          rmse: 8.3822e-007

 C = 501.25348 +/- 0.00032
 k = 1.422000108 +/- 0.000000038
Monk parry surface fit using Taser's 5.4 PTR data.

Monk parry surface fit using Taser’s 5.4 PTR data.

Monk parry surface residuals  (deviation between fit and measured values)

Monk parry surface residuals (deviation of fit from measured values)

 

##### Parry Fit #####

     General model:
     pfit(x,y) = 8+95/10000.000000+(x/10000.000000+y)/((x/10000.000000+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       90.64  (90.64, 90.64)
       k =       1.422  (1.422, 1.422)

           sse: 4.0761e-011
       rsquare: 1.0000
           dfe: 151
    adjrsquare: 1.0000
          rmse: 5.1956e-007

 C = 90.64244 +/- 0.00014
 k = 1.42200013 +/- 0.00000018

As you can see, this method does a LOT better.  We’ve confirmed our $k$ value to more decimal places and have narrowed down the range on $C_p$ and $C_d$ to almost 4 decimal places.

To summarize the results:

$k = 1.422000(13) \pm 0.00000018$
$C_d = 501.253(48) \pm 0.00032$
$C_p =90.642(44) \pm 0.00014$

Monks also get 1% parry from 10000 strength and 1% dodge from 951.158596 agility.

Druid

This is data that I collected using a pre-made character on the PTR.  Thus, I didn’t have access to the valor trinket, but I made up for it by using the free T16 gear (thanks Flaskataur!) and trying lots of reforge and gemming configurations to try and cover as much of the surface as possible.  We also don’t need to worry about parry for the druids, since that’s identically zero.

This time I’ll link the residuals plots, but not show them explicitly.

Druid dodge surface using 5.4 PTR data.

Druid dodge surface using 5.4 PTR data.

residuals

##### Dodge Fit #####

     General model:
     dfit(x,y) = 5+99/951.158596+(x/951.158596+y)/((x/951.158596+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       150.4  (150.4, 150.4)
       k =       1.222  (1.222, 1.222)

dgof = 

           sse: 6.4926e-011
       rsquare: 1.0000
           dfe: 115
    adjrsquare: 1.0000
          rmse: 7.5138e-007

 C = 150.375938 +/- 0.000041
 k = 1.222000009 +/- 0.000000045

Again, this gives a better confidence interval than our previous attempt.  Last time, we were only certain of the dodge cap to $\pm 0.2$.  This time, we’re accurate to $\pm 0.000041$.  To summarize

$k = 1.2220000(09) \pm 0.000000045$
$C_d =150.3759(38) \pm 0.000041$

Druids also get 1% dodge from 951.158596 agility, and obviously gain no parry from strength.

Death Knight

Again, this is my own data set, using a pre-made character and buying all of the T16 gear.  This time I used both DPS and Tanking sets to try and get wider coverage of both surfaces.

Death Knight dodge surface using 5.4 PTR data.

Death Knight dodge surface using 5.4 PTR data.

residuals

##### Dodge Fit #####

     General model:
     dfit(x,y) = 5+131/10000.000000+(x/10000.000000+y)/((x/10000.000000+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       90.64  (90.64, 90.64)
       k =       0.956  (0.956, 0.956)

dgof = 

           sse: 9.8586e-012
       rsquare: 1.0000
           dfe: 129
    adjrsquare: 1.0000
          rmse: 2.7645e-007

 C = 90.642574 +/- 0.000010
 k = 0.956000090 +/- 0.000000018
Death Knight parry surface using 5.4 PTR data.

Death Knight parry surface using 5.4 PTR data.

residuals

##### Parry Fit #####

     General model:
     pfit(x,y) = 3+209/951.158596+(x/951.158596+y)/((x/951.158596+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       237.2  (237.2, 237.2)
       k =       0.956  (0.956, 0.956)

pgof = 

           sse: 1.9542e-010
       rsquare: 1.0000
           dfe: 129
    adjrsquare: 1.0000
          rmse: 1.2308e-006

 C = 237.18614 +/- 0.00015
 k = 0.956000019 +/- 0.000000055

Again, excellent accuracy.  Here’s the summary:

$k = 0.9560000(90) \pm 0.000000018$
$C_d = 90.6425(74) \pm 0.000010$
$C_p = 237.186(14) +/- 0.00015$

I could probably improve the parry fit a little by grabbing more points in the high-parry-rating, low-strength region, but this is good enough to give exact character sheet results.

Death Knights also get 1% parry from 951.158596 strength and 1% dodge from 10000 agility.

Warrior

Warriors took the longest because there’s block to consider.  So I had to gem/gear for strength, then convert to dodge, then parry, then mastery.  And then write another fitting function for the block fit.  However, I’m quite pleased with the results.

Warrior dodge surface using 5.4 PTR data

Warrior dodge surface using 5.4 PTR data

residuals

##### Dodge Fit #####

     General model:
     dfit(x,y) = 5+133/10000.000000+(x/10000.000000+y)/((x/10000.000000+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       90.64  (90.64, 90.64)
       k =       0.956  (0.956, 0.956)

dgof = 

           sse: 8.2286e-012
       rsquare: 1.0000
           dfe: 164
    adjrsquare: 1.0000
          rmse: 2.2400e-007

 C = 90.6425465 +/- 0.0000052
 k = 0.956000078 +/- 0.000000011
Warrior parry surface using 5.4 PTR data

Warrior parry surface using 5.4 PTR data

residuals

##### Parry Fit #####

     General model:
     pfit(x,y) = 3+206/951.158596+(x/951.158596+y)/((x/951.158596+y)/C+k)
     Coefficients (with 95% confidence bounds):
       C =       237.2  (237.2, 237.2)
       k =       0.956  (0.956, 0.956)

pgof = 

           sse: 7.6114e-011
       rsquare: 1.0000
           dfe: 164
    adjrsquare: 1.0000
          rmse: 6.8126e-007

 C = 237.186091 +/- 0.000057
 k = 0.956000014 +/- 0.000000022
Warrior block curve using 5.4 PTR data.  Block only depends on one independent variable (mastery), so it's not a surface.

Warrior block curve using 5.4 PTR data. Block only depends on one independent variable (mastery), so it’s not a surface.

residuals

##### Block Fit #####
Warning: Ignoring extra legend entries. 
> In legend at 294
  In blockFit at 58
  In warrior at 28

pfit = 

     General model:
     pfit(x) = 13+1/(1/C+k/round(128*x)*128)
     Coefficients (with 95% confidence bounds):
       C =       150.4  (150.4, 150.4)
       k =       0.956  (0.956, 0.956)

pgof = 

           sse: 9.6280e-011
       rsquare: 1.0000
           dfe: 164
    adjrsquare: 1.0000
          rmse: 7.6621e-007

 C = 150.37568 +/- 0.00015
 k = 0.955999849 +/- 0.000000067

The block fit was sort of irritating, because I found out during data processing that the game doesn’t re-calculate block immediately. I had some data points where I had exactly the same mastery but different block values. After looking at the timestamps and the stat changes, it was clear that this is just a reporting error on the game’s part. For example, I’d find two time-adjacent data points that had different mastery rating values but identical block chances. The next data point has the same mastery rating value as the previous one, but the block chance had finally updated.

It’s curious because I didn’t see this effect with any of the other stats – dodge and parry always updated immediately.  It may be that block is calculated less frequently, or done server-side, or some other oddity.  I’m not really sure.  I ended up omitting these obviously-errant data points before performing the fit.  They were easy to find, since they were all extremely far off of the curve created by the rest of the points.

So, to summarize for Warriors:

$k = 0.9560000(78) \pm 0.000000011$
$C_d = 90.64254(65) \pm 0.0000052$
$C_p=237.1860(91) \pm 0.000057$
$C_b =150.375(68) \pm 0.00015$

Warriors also get 1% parry from 951.158596 strength and 1% dodge from 10000 agility.

Summary Table For All Classes

Since it might be convenient to have everything in one place, here’s a table listing the different coefficients for each class.  The paladin data is from last year’s post.

Since it’s pretty clear that the $k$ values are nearly exact to three digits, I’m going to make the assumption that they are, as it has no significant effect on the results.

Class $k$ $C_d$ $C_p$ $C_b$
Death Knight $0.956$ $90.6425(74) \pm 0.000010$ $237.186(14) \pm 0.00015$ -
Druid $1.222$ $150.3759(38) \pm 0.000041$ - -
Monk $1.422$ $501.253(48) \pm 0.00032$ $90.642(44) \pm 0.00014$ -
Paladin $0.886$ $66.56744(62) \pm 0.0000060$ $237.1860(40)\pm 0.000055$ $150.3759(469)\pm 0.0000094$
Warrior $0.956$ $90.64254(65) \pm 0.0000052$ $237.1860(91) \pm 0.000057$ $150.375(68) \pm 0.00015$

In this arrangement, it’s easy to see that the plate tanks all share the same parry cap $C_p$.  Death Knights and warriors have the same dodge cap $C_d$ and $k$ value, but paladins differ slightly in both departments.  The block cap $C_b$ is the same for both blocking classes.  Druids and monks both do their own thing, though the monk parry cap is identical to the warrior/DK dodge cap.

Here’s a second table listing the strength-to-parry and dodge-to-agility conversions for each class.  This is sort of obvious, since you get 1% avoidance from 951.158596 of your primary stat, and 1% avoidance from 10000 of your non-primary stat, but I’m including it for completeness.

Class Str->Parry Agi->Dodge
Death Knight 951.158596 10000
Druid 0 951.158596
Monk 10000 951.158596
Paladin 951.158596 10000
Warrior 951.158596 10000
Posted in Tanking, Theck's Pounding Headaches, Theorycrafting | Tagged , , , , , , , , , , , , , , | 11 Comments