MATLAB Automation Code

So it’s finally time to unveil a project I’ve been working on intermittently for the last three months.  If you recall, in the past I maintained a suite of MATLAB DPS simulations that attempted to determine optimal rotations, stats, glyphs, talents, weapons, and so on.  When the Finite State Machine (FSM) rotation modeler screeched to a grinding halt due to a combination of haste effects and long cooldowns, that suite of simulations was put on hold while I searched for a new (and faster) way to run simulations.

And as I’ve mentioned before, Simulationcraft was the solution I settled on.  It had the speed and accuracy I needed, and I wouldn’t have to do all the work myself thanks to the extensive set of contributors.  It also held the promise of unifying my DPS and survivability simulations into one simulation package rather than maintaining separate code for each.  And it even has built-in stat weight generation, so I wouldn’t need to replicate that functionality of the old sims.

I spent a good chunk of the summer and early fall getting Simcraft’s paladin module up to date and inventing and programming a new tanking metric.  But that was only the first step.  I now had the simulation back-end to do the heavy lifting, but I still needed some way to do batch processing.  To re-create the glyph simulation, for example, I needed code that would run Simulationcraft over and over for a bunch of glyph configurations and analyze the results.

There are a number of ways I could go about doing that.  I could write simple batch files in DOS, or more realistically in another language like Perl (which I’d then have to learn, since I don’t actually know Perl).  But what I really want to put together are giant tables of data and graphs.  And there’s one language I know that’s exceptionally good at handling giant tables of data and graphs.  MATLAB.

There was a bunch of grunt work involved, like writing functions that handled all sorts of mundane tasks: writing and reading strings to and from text files, regular expressions to pull the data I wanted out of Simcraft’s text output files, code to do simple tasks like making sure the path information was correct, code to automatically handle the caching and regeneration of results when I update to a new version of Simcraft, and code to output data into a table format that I can copy/paste directly into the blog.  None of that was very interesting, even though it was probably 90% of the work involved.

The interesting part, which is what I’m going to write about today, is how the code works and the output it produces.

Automating Simcraft

Simcraft operates by reading in an input file containing all of the relevant information about a character.  What we want to do is basically tweak portions of that input file to see what changes in the result.

There are a few different ways we could go about that.  For example, to test glyphs we could just have a “default_glyph_simulation_character.simc” file and edit that file over and over to change the glyph setup.  That wouldn’t be terribly hard to code, but it has a few downsides.  The main one is that it can be an issue for caching, which I’ll discuss a little later.

Instead, I went with a very versatile setup where I modularize the input file.   In other words, I split the .simc file into component parts: a player section, a glyphs section, a talent section, a gear section, a rotation section, and a boss section.  To run a sim, I just stitch the component parts together.  For example, I can combine the default player, talent, gear, rotation, and boss sections with various different glyph sections to create my different glyph setups.  I can save each of these combinations as a new .simc file, and by labeling them appropriately I’ll have the input file for each individual simulation.

This is useful for debugging, of course, but it also means that if we want to write a different comparison, we can reuse a lot of code.  Instead of swapping in and out the glyph component, we might swap in and out the talent component to create a talent sim, using most of the same automation logic.

It’s also helpful for caching the results.  One of the downsides of running simulations is that it can take a lot of time.  So it’s helpful to keep and reuse results that shouldn’t have changed.  If I run a sim with 50k iterations, I want to store the results so I can just call up those results later on rather than having to re-run the whole 50k iteration sim again. This essentially replaces a several-minute simulation run with a millisecond data read operation.

But you have to be careful about how you do that.  For example, if the input .simc file changes, we’d obviously want to re-run the full 50k iteration sim to generate new results rather than call up old results that may or may not have any relevance to the current problem.  By keeping a separate .simc file for every individual sim in a comparison, I can do that sort of checking and easily call up saved results when they should still be relevant. And of course, it will re-run the sim if it looks like anything important has changed (i.e. any of the inputs or the Simulationcraft executable are newer than the output).

So, to illustrate how this all works, let’s assume we’re writing a glyph simulation.  We start by defining defaults for the components we won’t vary.  In other words, we start with a default player:

paladin="Paladin_Protection_T16H"
level=90
race=blood_elf
role=tank
position=front
professions=Blacksmithing=600/Enchanting=600
spec=protection

and default talents:

talents=312232

and default gear

#T16N Gear Set

head=faceguard_of_winged_triumph,id=99128,gems=indomitable_primal_160exp_160haste_270sta,reforge=parry_hit
neck=juggernauts_ignition_keys,id=103916,reforge=hit_haste
shoulders=shoulderguards_of_winged_triumph,id=99130,gems=320haste_320haste,enchant=180sta_80dodge,reforge=exp_haste
back=qianying_fortitude_of_niuzao,id=102250,upgrade=2,gems=160exp_160haste_90sta,enchant=200sta,reforge=parry_haste
chest=chestguard_of_winged_triumph,id=99126,gems=160exp_160haste_160exp_160haste_160exp_160haste_270sta,enchant=300sta,reforge=exp_haste
wrists=bubbleburst_bracers,id=103738,enchant=170mastery,reforge=hit_mastery
hands=handguards_of_winged_triumph,id=99127,gems=320haste_320haste,enchant=170haste
waist=demolishers_reinforced_belt,id=103788,gems=320haste_320haste_320haste
legs=legplates_of_unthinking_strife,id=104311,gems=320haste_320haste_320haste,enchant=250sta_100dodge,reforge=mastery_hit
feet=wolfrider_spurs,id=103880,gems=320haste_60crit,enchant=175haste,reforge=crit_hit
finger1=asgorathian_blood_seal,id=103794,gems=160exp_160haste_60haste
finger2=seal_of_the_forgotten_kings,id=103796,gems=160exp_160haste,reforge=crit_mastery
trinket1=vial_of_living_corruption,id=102306
trinket2=thoks_tail_tip,id=102305
main_hand=siegecrafters_forge_hammer,id=103969,gems=320haste,enchant=windsong,reforge=mastery_hit
off_hand=bulwark_of_the_fallen_general,id=103872,gems=320haste,enchant=170parry,reforge=exp_haste

# Gear Summary
# gear_strength=19365
# gear_stamina=36396
# gear_expertise_rating=5107
# gear_hit_rating=2607
# gear_crit_rating=1112
# gear_haste_rating=15677
# gear_mastery_rating=7602
# gear_armor=60112
# gear_dodge_rating=180
# gear_parry_rating=1526
# meta_gem=indomitable_primal
# tier16_2pc_tank=1
# tier16_4pc_tank=1
# main_hand=siegecrafters_forge_hammer,weapon=mace_2.60speed_10257min_19051max,enchant=windsong

and a default action priority list:

actions.precombat=flask,type=earth
actions.precombat+=/food,type=chun_tian_spring_rolls
actions.precombat+=/blessing_of_kings,if=(!aura.str_agi_int.up)&(aura.mastery.up)
actions.precombat+=/blessing_of_might,if=!aura.mastery.up
actions.precombat+=/seal_of_insight
actions.precombat+=/sacred_shield,if=talent.sacred_shield.enabled
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats

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+=/guardian_of_ancient_kings
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+=/judgment,if=talent.sanctified_wrath.enabled&buff.avenging_wrath.react
actions+=/crusader_strike
actions+=/wait,sec=cooldown.crusader_strike.remains,if=cooldown.crusader_strike.remains>0&cooldown.crusader_strike.remains<=0.35
actions+=/judgment
actions+=/avengers_shield
actions+=/sacred_shield,if=talent.sacred_shield.enabled&target.dot.sacred_shield.remains<5
actions+=/hammer_of_wrath
actions+=/execution_sentence,if=talent.execution_sentence.enabled
actions+=/lights_hammer,if=talent.lights_hammer.enabled
actions+=/holy_prism,if=talent.holy_prism.enabled
actions+=/holy_wrath
actions+=/consecration,if=target.debuff.flying.down&!ticking
actions+=/sacred_shield,if=talent.sacred_shield.enabled

We then come up with a list of all of the different glyph combinations we’re interested in and create .simc component files for those as well.  For example, there’s an “AS_AW_DA.simc” file that just contains:

glyphs=alabaster_shield/avenging_wrath/devotion_aura

and similar files for every other combination we care about.  We then piece together a complete .simc file from the default components and one of the glyph components, and run that sim to get our .html and .txt output files.  And then we do it again for a different glyph component file, and then again, and so on until we have results for all of them.

The last part is just collecting and displaying the data by reading those output files, searching for the relevant information, and arranging it in data tables or graphs.  That’s mostly done by filtering the text output files with regular expressions, and isn’t all that interesting.  However, the results it spits out are interesting.

Glyph Comparison

Below is the data from the first run of the completed glyph comparison.  The defaults being used are all shown above except for the boss component, which is just the TMI standard T16N25 boss.  This is a list of every possible glyph combination using the following glyphs:

AS – Alabaster Shield
AW – Avenging Wrath
BH – Battle Healer
DA – Devotion Aura
DP – Divine Protection
FW – Final Wrath
FS – Focused Shield
HW – Harsh Words
IT – Immediate Truth
WoG – Word of Glory

There are a few omissions here. Some glyphs are basically useless for simulation (Holy Wrath, for example), so they’ve been ignored.  Double Jeopardy is missing because it’s not programmed properly in Simcraft at this point – something I hope to remedy during the holidays.  I should also note that the Harsh Words glyph doesn’t do anything in the default setup since Eternal Flame is the chosen talent.  I can fix that in a variety of ways, the easiest of which is probably just to add an APL entry to offensively cast WoG if the glyph is present.

But otherwise, that list should cover all of the major glyphs that affect DPS and survivability.  I’ve ignored minor glyphs since none of them have a significant impact.

Below is a sortable list of the data. Since it’s long, I’ve spoilered it so you can open and close it.  While I haven’t included error metrics on the table, the maximum DPS error in this data set is 88, which is less than 0.005% error.  Note that “E” stands for an empty glyph slot.

Spoiler Inside SelectShow

Rather than dig through all of that data to come up with important conclusions, I’ve also programmed it to generate a table showing DPS for single-glyph configurations.  That table is shown below.  DPS error data is provided here, along with the DPS difference between that configuration and having no glyphs (“Delta”).  Delta is thus the DPS gain due to adding that glyph in isolation, to within +/- the error (“Err”).

Title
Glyph DPS Err Delta HPS DTPS TMI SotR
E 367429 78 0 157433 157771 588.1 73.0%
AS 372376 78 4947 157454 157791 594.9 73.0%
AW 367355 79 -74 157486 157823 836.9 73.0%
BH 367471 78 42 156043 156789 18810.1 73.0%
DA 367334 78 -95 157443 157779 650.6 73.0%
DP 367323 83 -106 149574 149868 213.6 73.0%
FW 370402 83 2973 157422 157756 737.7 73.0%
FS 382948 78 15519 157464 157802 683.5 73.0%
HW 367394 78 -35 157451 157787 574.5 73.0%
IT 367187 80 -242 157468 157805 546.6 73.0%
WoG 374192 78 6763 157464 157801 598.9 73.0%

This table basically shows us that Focused Shield is the largest DPS gain we can get against single targets by a large margin.  Coming in second place is the Glyph of Word of Glory, thanks to all the EF casts we’re using in this profile, followed by Alabaster Shield.  Final Wrath is a distant fourth, and pretty much nothing else has a significant effect on our DPS output.

Some of the deltas are a little bigger than the “Err” column even though they should have literally zero effect (ex: Immediate Truth given that we’re using Seal of Insight), which suggests that the error bounds SimC is reporting probably aren’t generous enough.  I don’t remember whether it’s reporting a 95% CI interval or something else, so I’ll probably have to dig through the statistics module and figure out what I need to do on my end to get more realistic error bounds.

Anyway, we can also make two other useful tables out of this data.  The first would be to sort it in order of descending DPS to get the top 10 DPS combinations.  We should expect that FS+WoG+AS is on top, followed by FS+WoG+FW.  And indeed if we ask MATLAB to generate that table, we find:

Top 10 DPS Combinations
G1 G2 G3 DPS Err %Err HPS DTPS TMI SotR
AS FS WoG 395388 85 0.00% 157420 157757 819.0 73.0%
FW FS WoG 393219 88 0.00% 157469 157805 566.7 73.0%
AS FW FS 391406 86 0.00% 157456 157796 571.9 73.0%
AW FS WoG 390205 85 0.00% 157464 157796 632.7 73.0%
FS IT WoG 390107 85 0.00% 157439 157773 572.1 73.0%
E FS WoG 390094 85 0.00% 157433 157771 536.3 73.0%
BH FS WoG 389977 86 0.00% 156020 156758 18379.6 73.0%
FS HW WoG 389911 85 0.00% 157495 157830 2258.5 73.0%
DA FS WoG 389881 85 0.00% 157418 157752 533.8 73.0%
DP FS WoG 389830 85 0.00% 149573 149868 384.7 73.0%

I wouldn’t trust the TMI results to better than +/-50% here because we’re clearly running into the “self-sufficiency” problem I discussed in an earlier blog post.  In other words, I doubt the difference between the top 6 DPS specs is at all significant, it’s probably just noise.  On the other hand, the significant jump we see when using Battle Healer is real.  I’m also not 100% sure what’s causing the higher TMI for the FS/HW/WoG combination – I’m guessing it’s a bug in how SimC handles Harsh Words and Eternal Flame (likely guess: it’s automatically casting WoG offensively when EF is cast, but still granting the player the HoT?).  Something to add to my holiday to-do list, I guess.

Finally, we could also make a “Best TMI combinations” list:

Lowest 10 TMI Combinations
G1 G2 G3 DPS HPS DTPS TMI Err %Err SotR
AS DP IT 372263 149585 149879 186.2 10.80 5.80% 73.0%
DP FS IT 382505 149600 149895 194.3 13.40 6.90% 73.0%
E AS DP 372551 149533 149828 195.9 18.90 9.60% 73.0%
AW DP WoG 374264 149555 149852 196.7 14.00 7.10% 73.0%
AW DA DP 367330 149520 149816 197.1 18.70 9.50% 73.0%
DA DP WoG 374264 149524 149820 199.3 22.30 11.20% 73.0%
DA DP IT 367326 149549 149845 201.3 16.50 8.20% 73.0%
E DA DP 367376 149505 149798 204.7 36.00 17.60% 73.0%
AW DP IT 367226 149577 149873 205.3 31.50 15.30% 73.0%
DA DP FW 370381 149562 149856 205.5 19.20 9.30% 73.0%

I’m not sure there’s much to learn from this particular table.  DP is really the only big survivability glyph we have since Devotion Aura isn’t on the default APL.  So this list is essentially “10 random configurations that include DP.”

For reference, all of the results of these simulations are hosted on the matlabadin project in the “trunk\simc\io\” folder.  So if you’re curious about any of the individual simulations, you can just look up the “glyph_X_Y_Z.html” file corresponding to that sim and see exactly what the setup and results were.

Talent Comparison

I’ve also written the talent comparison; it works basically the same way the glyph one does, but cycles through all the possible talent combinations.  I’ve only considered the ones that have an effect on combat (L45, L60, L75, L90).  The max DPS error on this table is 84, again less than 0.005%.

The default glyph configuration for these sims is

glyphs=focused_shield/alabaster_shield/divine_protection

though after looking at the results of the glyph comparison, maybe it should be FS/WoG/DP. Or FS/WoG/AS to try and cut down on the self-sufficiency problem, though that would also affect Unbreakable Spirit’s valuation significantly.

Abbreviations:
SH – Selfless Healer
EF – Eternal Flame
SS – Sacred Shield
PU – Hand of Purity
US – Unbreakable Spirit
CL – Clemency
HA – Holy Avenger
SW – Sanctified Wrath
DP – Divine Purpose
ES – Execution Sentence
LH – Light’s Hammer
HP – Holy Prism

Spoiler Inside SelectShow

In this case, rather than picking out “single-talent” combinations (since those really don’t exist), I’ve picked a handful of relevant ones for a shortlist.

Talent Short List
Talents L45 L60 L75 L90 DPS HPS DTPS TMI SotR
311212 SH US HA LH 390997 121134 153348 753032.4 71.0%
311222 SH US SW LH 388631 124118 161326 1080163.3 63.0%
311232 SH US DP LH 384737 122424 152032 500356.3 70.0%
312212 EF US HA LH 391302 153414 153716 423.1 71.0%
312222 EF US SW LH 388657 161300 161688 563.9 63.0%
312232 EF US DP LH 388086 149540 149832 216.3 73.0%
313212 SS US HA LH 382266 107749 109451 25367.7 69.0%
313222 SS US SW LH 379472 114575 117620 37985.6 62.0%
313232 SS US DP LH 376220 106990 108622 13449.7 69.0%

Here we see that Eternal Flame consistently beats Sacred Shield by a large margin for survivability (TMI in the hundreds vs. TMI in the tens of thousands).  The slight DPS gain of EF over SS is due to GCD clashes (remember, Glyph of Word of Glory isn’t chosen in the defaults).  Unbreakable Spirit is basically a no-brainer thanks to Divine Purpose, so there’s no reason to vary that.  Within a group, Divine Purpose consistently gives lower TMI than the other two L75 talents.  I stuck with Light’s Hammer across the board so that we could compare the L45 and L75 talents more directly, though I should probably add a few more combinations to this list so it highlights the difference in the L90 talents.  Luckily we get some of that from the next two tables: Top 10 DPS and Lowest 10 TMI.

Top 10 DPS Specs
Talents L45 L60 L75 L90 DPS Err %Err HPS DTPS TMI SotR
312313 EF CL HA HP 403360 76 0.00% 159434 159823 3014.5 71.0%
312113 EF PU HA HP 403339 76 0.00% 159400 159787 3775.0 71.0%
312213 EF US HA HP 403333 77 0.00% 153305 153621 520.2 71.0%
311113 SH PU HA HP 403248 76 0.00% 111387 160509 8468304.7 71.0%
311213 SH US HA HP 403211 76 0.00% 112976 153377 1180576.5 71.0%
311313 SH CL HA HP 403172 76 0.00% 111397 160498 8471353.9 71.0%
311323 SH CL SW HP 401415 69 0.00% 114830 168578 9243176.7 63.0%
312323 EF CL SW HP 401393 69 0.00% 167421 167950 3624.0 63.0%
311123 SH PU SW HP 401375 69 0.00% 114837 168569 9262060.2 63.0%
312223 EF US SW HP 401307 70 0.00% 161101 161520 772.7 63.0%

This list suggests that Holy Avenger and Holy Prism are the two dominant DPS talent choices this tier.  The L60 talent is irrelevant, and the L45 talents are similarly irrelevant in this table because of the lack of Glyph of Word of Glory.  Since nothing in the APL utilizes Selfless Healer yet, that’s basically an “empty” talent choice.  Combinations with EF and SH are interchangeable in regards to DPS because neither costs us any GCDs; SS combinations don’t show up because it does cost GCDs and pushes back DPS abilities.

From this list, it looks like in T16 normal gear, HA>SW>DP for DPS in the L75 slot.  This is a bit surprising, as I expected Divine Purpose to have a better showing here.  I haven’t quite figured out the rationale for why it’s performing so poorly for DPS in these sims.

Holy Prism rising to the top is also a bit of a surprise, but it makes sense.  We can cast three Holy Prisms every minute compared to a single Light’s Hammer or Execution Sentence.  Three Holy Prisms has always been more damage than either of those two alternatives, even early in the expansion.  However, those three Holy Prisms cost three GCDs.  When we were using Sacred Shield as our go-to L45 talent and getting Grand Crusader procs from attacking, we simply didn’t have those spare GCDs.  Switching to Eternal Flame and losing some Grand Crusader procs opened up enough GCDs that we can fit Holy Prism in very seamlessly.

I should also note that the default APL may not be properly optimized for Holy Prism yet.  That’s another thing we’ll have to refine once I have time to write the rotation comparison.  But that should only make Holy Prism better, not worse.

As far as the last two L90 talents, we can get a little bit of information from the next table.

Lowest 10 TMI Specs
Talents L45 L60 L75 L90 DPS HPS DTPS TMI Err %Err SotR
312232 EF US DP LH 388086 149540 149832 216.3 31.30 14.50% 73.0%
312231 EF US DP ES 388627 149833 150132 272.4 54.20 19.90% 73.0%
312233 EF US DP HP 399801 149415 149725 329.6 65.80 20.00% 73.0%
312212 EF US HA LH 391302 153414 153716 423.1 101.50 24.00% 71.0%
312211 EF US HA ES 391824 153606 153907 442.7 93.20 21.00% 70.0%
312213 EF US HA HP 403333 153305 153621 520.2 49.40 9.50% 71.0%
312222 EF US SW LH 388657 161300 161688 563.9 63.50 11.30% 63.0%
312221 EF US SW ES 388194 161475 161867 735.9 291.20 39.60% 63.0%
312223 EF US SW HP 401307 161101 161520 772.7 155.80 20.20% 63.0%
312332 EF CL DP LH 388118 155544 155885 914.6 84.60 9.30% 73.0%

Now, this is the table for lowest TMI, but the first thing I want to point out is about L90 talents and DPS.  The first three rows of this table are identical except for the L90 talent, and it’s clear from those rows that Holy Prism has a significant lead in DPS (around 11k DPS).  Execution Sentence comes in second and Light’s Hammer a close third, separated by only about 550 DPS.  I’m hesitant to put too much stock in the survivability value of the three talents given that both Execution Sentence and Holy Prism are always being cast offensively here (though Holy Prism still heals you via the secondary effect, obviously).  The TMI spread is also fairly small, so I hesitate to trust the order anyway.

However, turning our attention back to survivability, the dominance of EF+US+DP here is pretty clear, sweeping the top three spots.  Swapping DP for HA results in a small decrease in survivability, mostly through a loss of SotR uptime.  Swapping HA for SW is another clear loss, and losing US for Clemency in the last row is another clear loss.  Note that the default APL doesn’t use Hand of Purity, otherwise I suspect that EF+PU+DP+LH would have taken that last spot.  Add another thing to my holiday “to-do” list.

Realistically, I need to fix the “self-sufficiency” problem before I can rely on these TMI lists.  I may use some trickery to /cancelaura Vengeance periodically to try and reduce the problem.  We’ll see though – if the beta for Warlords of Draenor comes out any time soon, I may just start focusing on that since we’re basically done with content for this expansion anyway.

Summary

In short, I now have the ability to automate comparisons using SimC, much in the same way I used to do with my old MATLAB DPS simulations.  I’ve gotten the first two done (glyphs and talents), and they mostly confirm things we already knew.

The glyph simulation reinforces that Divine Protection is the only glyph that has a large survivability benefit (and again, that’s situational – on a fight with a big magical burst, you still wouldn’t use it).  It also confirmed that our best DPS glyphs are Glyph of Focused Shield, Glyph of Word of Glory, Glyph of the Alabaster Shield, and Glyph of Final Wrath, in that order.

The talent simulation reiterated that Eternal Flame is stronger than Sacred Shield for raw smoothness, and that Unbreakable Spirit is strong when you’re using Divine Protection on cooldown.  In the L75 talent category, it showed us that for DPS, Holy Avenger > Sanctified Wrath > Divine Purpose, but for survivability Divine Purpose > Holy Avenger > Sanctified Wrath.  And finally, in the L90 category it suggests that Holy Prism is significantly better than Execution Sentence or Light’s Hammer for DPS if you’re using Eternal Flame.  It didn’t tell us much about their survivability value, though.

My next task is probably to get more of the simulations online.  The  weapon simulation should be relatively easy, the rotation simulations less so (but arguably more interesting to write).  I also want to make some refinements to the settings for these two existing simulations based on some of the things I’ve noticed while writing this blog post, and probably based on things that other people notice and post in the comments.  I’m happy to entertain feedback on what I can improve here, since these sims are clearly still in a fairly rough stage of development.

In parting, I want to leave you with an interesting thought though.  Nothing about the code is all that paladin-specific. I’m bolting together .simc files that all contain paladin “stuff,” but the bolting together part is mostly class-agnostic.  Why is that important?

Well, consider: what if someone were to write default component .simc files for, say, a Frost mage? With a few minor tweaks, this automation suite could then run nearl identical simulations for a Frost mage.  Or a Protection warrior, or Blood DK, or… you get the idea.

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

Post-Blizz-Con Wrap-Up, Part 2

In the last post, I ranted about time travel and lore. This time, I’m going to talk about some of the mechanical changes that were announced at BlizzCon.

Stats, Reforging, and Gear

There were a lot of different gear-related changes that I’m lumping together in this one category because they’re all somewhat related.  It’s hard to say which is the “biggest” or “most important” of these changes, because several of them are (literally) game-changing. So we’ll go through them in no particular order.

First, gear will no longer have a specific primary stat.  If a piece of plate drops, and you’re in Holy spec, it’ll have intellect and stamina as its primary stats.  If you switch to Retribution or Protection, the item will suddenly have strength and stamina as primaries.  This is a pretty huge change, because it basically makes the big three primary stats irrelevant on the bulk of gear.  Every piece of plate, leather, and mail will always have stamina and whatever primary stat your spec uses.  In some sense, it consolidates strength, agility, and intellect into one flexible primary stat.

I don’t think many players will argue that this is a bad thing. You’ll automatically have up-to-date gear for all of your off-specs, so hybrid classes aren’t punished as much for wanting to be fluent in more than one spec.  The gear may still not be ideal because necks, rings, cloaks, and trinkets will only have secondary stats, some of which are only relevant to certain specs. But it’ll be a large improvement over always using last-tier’s gear for your off-spec, especially since you’ll have current-tier set bonuses.

We’re also getting a few new secondary stats, with the major three being Amplify, Readiness, and Multistrike.  These should work much the same way the Siege of Orgrimmar trinket procs do.  Readiness is just the cooldown reduction effect we’ve seen on trinkets, and will apply to a select few abilities based on your spec.  Adding X% multistrike will give you two chances (X/2% each) to do an additional 30% damage (or healing) with each attack (or heal).  And X% amplify increases your crit and multistrike multipliers as well as giving you X% more haste, mastery, spirit, readiness, and armor from gear.

It’s worth noting that all three of these stats can be considered “tanking” stats.  Readiness gives you more frequent access to cooldowns like Guardian of the Ancient Kings, Divine Protection, and Ardent Defender.  Multistrike works on healing as well as damage, so while the details are still a little vague, it’s likely that it will work on effects like Seal of Insight and Eternal Flame.  Sacred Shield is a little dicier, but it could be made to work by simply having a chance to apply multiple absorb bubbles; it’s just not clear whether it will or not.  Amplify is obviously a tank stat because it gives you more of everything: haste, mastery, armor, readiness, as well as larger crits (for Eternal Flame) and larger multistrikes.

Armor is also making a return as a secondary stat on specific items (namely necks, rings, and other non-plate gear), so we’ll have another secondary stat to throw into the mix.  I didn’t lump armor in with the “major” three simply because armor isn’t really new.  It’s still nice to have it back though, armor was always a powerful stat even though it’s passive.

Having four new “tanking” secondary stats is good, because the other bombshell piece of news is that four secondary stats are being removed entirely.  Hit and expertise are gone, making juggling the hit and expertise caps a thing of the past. I predicted we’d see a change to these stats, but I didn’t anticipate both of them disappearing because it would reduce the number of possible stats on gear too much. But the addition of three new stats more than makes up for that.  Also note that while bosses will still have a chance to parry attacks from the front (so that melee DPS still have to stand behind them), tanks will have a passive that bypasses that effect. So as a nice little side effect, the “tank expertise” penalty is going away as well.

I didn’t expect dodge and parry to be completely removed for similar reasons, though I did expect a change. But again, given four new secondary stats to play with, we really won’t end up missing these two.  It’s worth noting that the dodge and parry mechanics aren’t going to be completely gone – we will still dodge and parry attacks passively, we just won’t have the ability to stack them via secondary stats.  It’s likely that we will still build up dodge and parry over the course of an expansion through our primary stats just like we do today.  So strength will essentially be our avoidance stat, and we won’t have to worry about choosing it since it comes on gear by default.

Of less concern to tanks, they’re changing the way that DoT snapshotting works.  In short, it won’t snapshot anymore, it will dynamically update the tick amounts based on your current stats.  This will mean that specs like Affliction Warlocks won’t be quite as skill-dependent, because your DPS won’t drop as much if you accidentally re-apply DoTs a little too early after buffs wear off.  That’s good and bad – good if you think the skill differential between an average Affliction Warlock and an expert one was too big, bad if you didn’t think it was large enough.  Since I don’t get enough time to play my Warlock enough to keep in practice anymore, it’s arguably a buff for me, so I’m not too worried. But I can see how some Warlock mains might be peeved.

Again, while it’s not of that much relevance to us, it’s worth discussing how the new mechanic will work.  The tentative model I overheard during BlizzCon discussions is that every DoT/HoT will have its usual fixed duration, and we’ll just get partial ticks at the end.  So for example, let’s consider Eternal Flame, a 30-second HoT that ticks in 3-second intervals. If we have 20% haste, those ticks will occur at 2.5-second intervals (3/1.20), so we’ll get 12 ticks instead of 10.  If we increase that to 25% haste, the ticks will be 2.4 seconds long (3/1.25=2.4), so the first 12 ticks will take 28.8 seconds.  Then we’ll get a partial tick at 30.0 seconds that will be half-strength (because it will be a 1.2-second long tick rather than a 2.4-second long tick, and 1.2/2.4=0.5).  Presumably Sacred Shield will work in a similar fashion.

With the changes to hit, expertise, dodge, and parry, they’ve also decided that reforging isn’t necessary, and have removed that in 6.0.  This sparked mixed reactions from the players I spoke with.  Sure, we don’t need it to maintain hit and expertise cap anymore, or to balance our dodge and parry ratings.  And the changes to DoT/HoT snapshotting will get rid of most (but maybe not all) relevant haste caps in the game.  But reforging still narrowed the gap between a well-itemized piece and a poorly-itemized piece of equal ilvl.  That has its advantages, especially when it comes to allocating loot in smaller raids.  I’m not sure reforging absolutely had to go in this environment.  But it seems the decision is that keeping reforging just isn’t worth the hassle when its impact is so marginal.  It’s not a decision I’ll argue against, since I don’t have strong feelings about reforging either way.

They also talked about having fewer gem slots on gear and paring down enchants to cover fewer slots, though with more options for each slot.  That means the level of customization we have on gear will be going down a little bit.  Whereas now, we can stuff every socket full of haste gems and use haste enchants to rack up an extra 8% haste or so, we probably won’t be able to do the same thing in Warlords of Draenor.

Tanking Mechanics

One of the most significant announcements is something that wasn’t actually said outright, but merely implied. You see, one of my predictions was that all tanks were going to move to a “DPS tanking” model similar to what Monks, Druids, and now Paladins use.  And while I don’t remember them explicitly addressing that topic (maybe they did in a panel that I’ve forgotten), they almost didn’t have to. The removal of dodge and parry from gear itself was enough to guarantee that such a transition was happening.  The fact that all of the new secondary stats have a clear impact on survivability as well as damage output just further reinforces it.  So we can expect to see big changes to Warrior and Death Knight mechanics once 6.0 goes into beta to embrace haste and crit as true survivability stats.

It’s not clear yet whether every stat will have to have a tanking impact.  For example, right now Paladins don’t benefit much from critical strike rating unless they take Eternal Flame, and even then the impact is fairly small.  It may be that crit rating will still be our dump stat in Warlords of Draenor.  But it wouldn’t take much to make it at least a contender.  If Seal of Insight were able to crit, that would give crit rating some baseline value.  We could also get a secondary mechanic to help bolster it – something like a small HoT effect when certain spells crit, for example.  We’ll just have to wait and see what Blizzard decides on that front, I guess.

Vengeance = VICTORY!

There is, however, no question as to my favorite change.  While it wasn’t announced outright during the convention (again, maybe it was during the Q&A and I just missed it, but it’s doubtful), it came out during discussions with developers at the after-parties.  While I got a chance to talk with a few devs in various degrees of detail at BlizzCon, I wasn’t the only one, so I don’t feel bad about sharing it.

-Vengeance changed to increase tanking abilties, rather than pure AP. He wants Tank DPS to be roughly 75% of a DPS’ output.

Is it tacky to declare victory? Because we’ve suggested exactly this solution several times before.

In all seriousness, this is a huge change for a number of reasons. Mel and I have been blogging about vengeance for a long, long, long, long time.  Many of the more blatant problems have been cleaned up by hotfixes along the way, but some of the core problems remain.  One of those is that our DPS as tanks depends sensitively on taking damage.  That makes our damage drop off during off-tanking periods unless we play awkward taunting games to keep Vengeance high, and more importantly it makes playing through solo content infuriating because we do so little damage.

When 80% of your damage comes from having a raid boss nearby, dailies become an infuriating exercise.  I no longer even think about doing dailies as prot, because for an entire expansion now, I’ve had to switch to Ret to be even remotely efficient with my time.  And as I’ve mentioned in earlier blog posts, the feeling of loss of control over your own DPS potential is somewhat demoralizing, because it takes control away from a role that is obsessed with having control in the first place.

This change reverses all of that.  If our default output is nearly 75% of a regular DPS class, we’ll actually be able to perform solo content in a sane amount of time.  The only concern I have is that we may be too strong in PvP situations, but maybe that’s intentional.  Players have been bemoaning the inability to PvP as a protection spec, so maybe this will bring that back.  And anyway, it’s not like balanced world PvP exists anymore.

I’m ecstatic about this change for another reason: I’ll finally be able to evaluate my performance easily with logging sites again.  It’s incredibly annoying to realize that you have absolutely no idea what DPS you should expect to be able to do on an encounter.  You can compare to other guilds’ logs, but there are so many variables involved that the comparison is nearly meaningless.  Your DPS swings drastically with a number of different factors, including your guild’s strategy and which of your tanks happens to be tanking first.

Un-linking Vengeance from DPS fixes a lot of that, which means I can finally make more useful comparisons between myself, my co-tank, and other tanks.  It will also make tank DPS balance a little easier to achieve on Blizzard’s end, because the range of AP values over which the five tanking classes need to be roughly equivalent just became a lot smaller.

Looking Forward

There’s really no connecting thread that links all of these different ideas, so it’s hard to come up with a conclusion for this post.  The best I can do is to say that there are a lot of different exciting and awesome changes coming in Warlords of Draenor, and you should be as excited about it as I am!

Even though I think the story is sort of hackneyed, the mechanics changes are great and foreshadow what will likely be the the best expansion for tanks yet. We’re getting many of the significant changes that we’ve asked for during MoP: a less frustrating and more functional version of Vengeance, consistency between the stats we want and the stats that show up on our gear, the removal of boring stats like dodge and parry, the elimination of the tank expertise penalty, and much more.

That’s not to say there aren’t changes we can still hope to see.  I plan on vigorously campaigning for Holy Wrath to lose/modify its meteor effect so that we once again have a functional many-target snap aggro tool.  And Meloree will tell you that the game still lacks a good mechanic to tie DPS to tanks, completing the DPS-Tank-Healer trinity.  That role used to be filled by threat, but I think that ship has long since sailed.  But it’s hard to look at the wealth of other quality of life and toolkit improvements we’re receiving and not be very pleased with the direction Warlords of Draenor is taking.

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

Post-Blizz-Con Wrap-Up, Part 1

I had a great time at BlizzCon, and met a lot of great people.  It’s really fun to meet someone in person that you’ve only ever interacted with online, either via Twitter, in blog comments, or in-game.

Unfortunately, this year I didn’t take great notes on where I was and who I met every day, so I’m not going to try and quickly write up a recap.  While I have a lot of great stories, unless I sit down and carefully re-trace my steps I’m guaranteed to forget someone or something, and then people will just feel disappointed that I forgot them.  If I have time later on, maybe I’ll try and put together that sort of recap.  But probably not – the further we get from BlizzCon, the less I’ll remember and the less relevant it will be.  Plus, there are more than a few people who would probably prefer I didn’t share all of the stories I have from when they were drunk.  You know who you are. :P

So I’ll just say that I had a blast meeting everyone.  I had a lot of great conversations, met a lot of people I already knew and respected, and met a lot of people that I barely knew at all beforehand.  But I was very happy to meet all of you, whether you’re e-famous, or a theorycrafter, or a player that’s read the blog once or twice, or just an avid player that recognized my name.

Instead, this blog post is going to focus on the game-related news from BlizzCon, and my reactions to that information.  And today, we’re going to start with something that you probably never expected to see on Sacred Duty: A lore discussion!

No, not that type of lore!

No, not that type of lore!

Time Is On My Side…..

There are very few things I disliked about the new announcements.  For the most part, I’m on board with all of the changes they’re making in Warlords of Draenor.  But the story is one of those things that will never completely sit well with me.

Now, to be fair, I wasn’t that enthusiastic about Mists of Pandaria at first either.  For too many years, I’d assumed Pandaren were a joke race that would never see the light of day in WoW, and it was hard to break that mental stigma.  Plus, really, Pokemon in my WoW? And yet, here we are two years later, and they totally pulled it off. Mists has arguably been one of the stronger expansions, both in terms of gameplay and in terms of story and lore.  Even though I’ve never participated in a single pet battle, I know far more people who have done so and enjoyed it.  Even though I thought Pandaren were a joke, they turned out to be a well-fleshed-out race complete with culture and history that made them pretty bad-ass.  So it’s clear that first impressions can be misleading.

However, my objection to the Warlords of Draenor story is more fundamental.  Buckle up, it’s physics time.

You see, I absolutely hate time travel in video games.  As a physicist that specialized in things like quantum teleportation and superluminal pulse propagation, I’m intimately familiar with the important and fundamental role causality plays in physics.  And that’s made me fairly intolerant of any sort of “faster than light” or “time travel” suggestions, whether it’s in the media or in a game’s story.  When my own research was featured on slashdot, I was of course ecstatic, but still a little dismayed at the sensationalist presentation.  I have a self-created mental block on the entire idea of time travel.

So the “we’re going back in time” nature of the Caverns of Time has always sort of bothered me. While I love getting to see the stories from the earlier Warcraft games recreated in WoW, it’s always been a struggle for me to reconcile the time travel elements with the rest of WoW’s story.  And don’t even get me started on the whole Rhonin / Dragon Soul storyline – it was around that time that I threw my hands up in despair and completely gave up on WoW’s story ever making sense again.

Because frankly, time travel in games and movies has rarely been done well in my experience.  Generally, the amount of hand-waving that has to be done to justify time travel just creates new paradoxes that make the whole thing feel silly to me.  Once you allow the possibility of time travel, I feel like a narrative loses a lot of its motivation.  Striving to kill <current Big Bad> becomes much less suspenseful if you know that some intrepid time-traveler will just come fix it if you screw up.  Not to mention the inherent paradox there: if they’re coming back to fix it, shouldn’t they be here now? Why aren’t they?

We Are The Worlds

WoW’s take on time travel is a fairly standard one.  As far as I can tell, it mimics the “many worlds” interpretation of Quantum Mechanics.  In layman’s terms, every time a choice is made, the world splits into two or more different timelines, one for each possible outcome of the decision.  So for example, there’s a timeline where Garrosh dies at the end of Siege of Orgrimmar, and a timeline where he’s spared and imprisoned by Taran Zhu.

When we go back in time to the Black Morass or The Battle for Mt. Hyjal, we’re sticking within our own timeline and trying to prevent the Infinite Dragonflight from altering the events of our timeline.  Which again, raises the silly paradox of one-upsmanship: if we succeed, why don’t they just go back in time again to re-alter it?

On the other hand, in the End Time instance, we’re traveling to a future timeline where Deathwing wasn’t defeated. And in the Well of Eternity dungeon, we’re going back in time to take the Dragon Soul so that Thrall can use it in the future.  But if we take the Dragon Soul out of the past, doesn’t that change how the rest of history unfolds? Why do we return to a present that seems basically unchanged from how we left it?

The only rational explanation for this… well, ok, let me step back a moment. There is no rational explanation for this, because the whole pile of time travel nonsense is inherently irrational.  But the least irrational way to rationalize this is to assume that actions in one timeline don’t necessarily affect the others.  So maybe we’re going back to alternate timelines that are eerily similar, but not the same as, our “own” timeline.  So yeah, we stole the Dragon Soul from another timeline, which then caused all sorts of chaos in that timeline, probably resulting in the deaths of millions of people or something.  But it’s okay, because those people all sucked anyway, since they weren’t from our timeline.

I shouldn’t have to point out the multitude of problems with that interpretation.  What makes our timeline (or us) special? Is the Thrall in our timeline the same as the Thrall in other timelines? Am I the same person in this timeline that I am in another? How do I know which one is the “real” one, or are we all real?  And what does that say about individuality or free will if I’m just one of an infinite number of Theck clones in different timelines, all of whom have the audacity to jump into each others’ timelines and fuck around with them?

All aboard the Crazy Train, I guess!

The story of Warlords of Draenor, as it’s been explained to us, takes this concept to the next level by linking different timelines more strongly.  It’s depicted graphically below, though I can’t take any credit for the diagram; I stumbled across it in a post by Klaudandus on Maintankadin.  Garrosh manages to travel back to old Draenor and create a new split in the timeline.  The “Alpha” timeline on the diagram is the one we know and have played through, where Garrosh never went back in time.  The “Beta” timeline is the one in which Garrosh alters the events in that timeline to create the Iron Horde.  He then somehow opens a new portal that links the Beta timeline to a point in the future of the Alpha timeline.

Mock-up of Warlords of Destruction’s time-travel story. Note that I didn’t come up with this graphic, I got it from the forum post linked in the text. If you know/are the creator, please contact me so I can give you the appropriate credit!

The reason I say it “takes this to the next level” is that instead of allowing a few individuals hop around on the Timeline Superhighway, it’s essentially creating an on-ramp linking Interstate (“Intertime?”) Beta Draenor to Future Route Alpha Azeroth, so that anybody can hop back and forth between the two and cause chaos.  And instead of connecting two instants in time (whatever the hell an “instant in time” means in this hackneyed excuse for a coordinate system), it’s a continuous link, such that there’s a one-to-one correspondence between the time and date in Beta Draenor and the time and date in Alpha Azeroth, just with a pretty hefty offset.  I’m not exactly sure what that offset is – years? tens of years? hundreds of years? Does time even have any meaning if we’re going down this time-traveling rabbit hole?

What Did That Cat Ever Do To You?

So yeah, clearly I’m not a fan of the time traveling crap.  It’s just too problematic.  I know most people can just gloss over it and enjoy the ride, but I’m not one of those people. To me it just smacks of lazy storytelling in the same way that the many worlds interpretation smacks of lazy science.  Even calling it “science” is being generous, in fact. A large proportion of the scientific community (probably the majority of it) doesn’t consider the many worlds interpretation to be science at all, because it is inherently not falsifiable through any means we can conceive of.  In that sense, it’s no better than a religion, because we can’t test it. Scientists have long since accepted that there are other, slightly less insane ways to rationalize quantum mechanical behavior.  Though, for the reader’s amusement, I’ll note that to do so we say that we give up on “reality” to keep causality, which sounds even more off-the-wall.  But it actually does make sense once you rigorously define what we mean by “reality.”

In short, it’s the “Schrödinger’s cat” explanation you’ve probably heard about but never really understood.  You put a cat in a sealed box with some sort of random mechanism to kill the cat.  Traditionally it’s a vial of poison triggered by a chunk of nuclear material, but anything that is both random and fatal will work, so it could just as well be a pistol triggered by sunspots or a high-voltage arc triggered by seismic activity or a time traveler. Also, clearly physicists are awful human beings for doing this to a cat. Poor cat.

I've been waiting to use this in some context for *years*

I’ve been waiting to use this in some context for *years*

But the point of this gruesome example is that once the box is sealed, we don’t know whether the cat is dead or alive.  We could assign a probability to each (i.e. the cat has a 50% chance of being alive), but we don’t know for sure until we open the box.  In quantum mechanical terms, until we open the box the cat is both dead and alive! Or more precisely, it’s in a “superposition state” where it is simultaneously dead and alive.  It’s only when we open the box that the cat “decides” which it is for sure.

Now that may seem ludicrous, and to be fair it is ludicrous for a cat for a few reasons.  But it’s not ludicrous for quantum-mechanical systems, which is what the principle really applies to.  A quantum-mechanical particle has a number of properties (spin, momentum, position, energy, etc.) that aren’t completely decided until it interacts with something in such a way that the property needs to have a fixed value.  For another analogy, assume the particle could be one of two colors: red or blue.  Until it interacts with another object in such a way that it’s color matters (for example, someone observing it), it isn’t one color or the other, it’s in a superposition state of being both red and blue.  Note that this isn’t the same as being purple!

This is what we mean by giving up “reality.”  We have this inherent notion that objects have fixed, well-defined properties – a tennis ball is yellow, my car is blue, and at any given point in time those two objects have a particular position and velocity.  We call that concept “reality” because we assume that each object has “real” properties – i.e. that the tennis ball really is a tennis ball and won’t suddenly become a baseball.  But on the quantum-mechanical level, some of that goes out the window.  If the ball could be a tennis ball or a baseball, it’s both until we make a measurement.  And when we measure it, we have a random chance of discovering that it’s either (i.e. it isn’t just that we don’t know which type of ball it is until we measure, it’s that it literally isn’t one or the other until we measure, at which point it randomly decides which one it is, as if it were flipping a coin).

The fun part of all of this is that giving up “reality” is a choice we make.  To be able to explain experimental results, specifically with regards to entanglement, we have to give up either reality or causality.  That means that, technically speaking, we could give up causality if we wanted to preserve the fixed nature of things.  Most scientists have decided that reality is the one we need to give up though.  There’s far more evidence that causality is preserved (both in quantum mechanics and other branches of physics) than the alternative, which is that our intuition based on macroscopic objects simply doesn’t apply at the quantum level.

Mother May I?

In addition to all of the paradoxes and concerns I’ve raised already, perhaps the biggest issue I have with time travel is the notion of free will.  If you assume that time travel exists, and that people can do so willy-nilly, then eventually you need to accept that the timeline you’ve experienced has already been altered in every conceivable way possible by every person that cared to interfere with it from all times in the future.  At which point, what’s the use in caring about anything? It’s hard to make it feel like your actions matter when there’s the ever-present threat of a time traveler erasing everything you did.  And if what you’re experiencing is already the result of those efforts, did you really have a say in how things turned out? Or are you just dancing to the tune of some time-traveling puppeteer?

Some of that can be explained away by making time travel difficult, expensive, or limiting it in some other way. If only a few select people can pull off such a feat, it’s a little more palatable.  Or so the reasoning goes, I guess? I don’t really buy it, because those arguments always assume that future technological advances will never reduce that cost. The concept of nearly-instant global communication between any two people would have been unfathomable to society even 100 years ago.  Yet today we have cell phones that let us do exactly that.  And when in the future, someone discovers the time-travel equivalent of cell phones, then what? Better yet, why haven’t they brought that technology back to us already?

I should also point out that the whole “limited” point of view falls sort of flat for WoW. We have a giant portal connecting two timelines now. And for years we’ve had countless adventurers skipping back and forth through the Caverns of Time as if they were on a day cruise to Lets-Take-A-Shit-All-Over-Continuity’s-ville.

Really, the only “good” variation of time travel I’ve ever seen in a video game is in the Assassin’s Creed series.  I’m sure that biologists and geneticists reel at the entire pseudo-scientific “genetic memory” concept that the game invokes.  But the mechanic works well for a lowly physicist like me.  By retrieving “memories” encoded deep in DNA, a modern-day protagonist can go back and re-live the experiences of one of their ancient ancestors through a virtual interface.  In other words, you’re playing a video game in which your character… plays a video game about their ancestors!

Yeah, it's sort of like that.

Yeah, it’s sort of like that.

Really though, the animus mechanic solves all of the major problems with time-travel in games, because it’s distinctly not time travel.  It puts strict causal constraints on the problem, because you can go back and re-live the environment and world, but you can’t do anything that alters the course of history.  While it’s more constricting from a story-telling point of view, it’s also a lot more sane.

Or like that.

Well, ok, mostly sane.  Just don’t take that guy’s word for it.

In Part 2, we’ll talk about some of the actual mechanics changes that were talked about at BlizzCon, and what I think about those.  Which is probably far more relevant given the nature of this blog.  Bet you never thought you’d see a 2000-word rant on game lore at Sacred Duty!  Maybe I should have saved this post for April Fools Day?

Posted in Humor, Theck's Pounding Headaches | Tagged , , , | 41 Comments

BlizzCon Wishlist/Predictions

With BlizzCon coming later this week, we’ll soon be inundated with information about the next expansion.  Or at least, I think most of us assume that Friday’s “World of Warcraft: What’s Next?” presentation will reveal the next expansion.  I guess it’s possible that they’ll do something completely different, like announce that the entire WoW dev team is being transferred to project Titan and that WoW will go free-to-play with user-generated raid content.  But that seems pretty unlikely.

So in the spirit of being able to look back at old posts and say “told you so,” it seemed like an appropriate time to make some predictions about what we’ll be seeing on Friday. I’m not going to speculate on the name or theme of the expansion, because frankly, lore isn’t exactly my wheelhouse.  Instead, I want to focus on mechanics.

I’ve split each main idea up into two sections: a Prediction and a Wish List.  The prediction is the general thing I think we’ll see, whereas the wish list is more of a “this is what I’d do if I were trying to address the issue.”

Hit & Expertise Changes

Prediction – I think we’ll see a change to either hit or expertise to alleviate the awkwardness of reaching both caps, and especially to try and minimize the need to use an optimizer like AskMrRobot to reconfigure your entire gear set every time you get an upgrade. It’s also just sort of weird from a systems point of view.  The best description of the problem I’ve seen can be attributed to Hamlet of EJ/Druid fame. To summarize his point: there are two systems in the game (gemming and reforging) whose primary job is to ensure that players always hit their target. In other words, these two mechanics are both trying to subvert/fix a third mechanic, which is the hit cap.

Blizzard sources have been offering up comments about this problem all expansion, so we know it’s on their minds.  It’s not a huge stretch in logic to guess that they’ll try to fix it in 6.0.

I don’t think it’s likely that both hit and expertise will go away, though.  There’s something to be said for the planning/preparation aspect of having to dance around hit and expertise cap.  But it’s far more painful than it has to be due to the way itemization is allocated.  Each item can have an essentially random amount of hit or expertise rating.  Sure, it’s constrained by a formula, but only mildly, and you can have almost any amount of hit on an item by adjusting the other stats to compensate.  That’s the reason it’s a problem – it’s not a trivial problem to figure out exactly what needs to change on other gear when you replace an upgrade.  As anyone who’s worked on optimization problems in the past will tell you, once you have multiple parameters and several caps to consider, the math gets really ugly.

Wish List - My solution to this problem would be to make two significant changes.  The first is to remove the expertise-capping problem.  Rather than requiring 7.5% hit and 7.5% expertise, I would just require 15% hit for melee.  The first 7.5% removes misses, the second 7.5% removes dodges, just like expertise works currently with dodges and parries.  This removes the “two-cap” part of the problem and vastly simplifies the solution space.

I wouldn’t remove expertise as a stat, though.  I would convert it into another combat benefit.  Potentially something like The Secret World’s ‘Crit Power,’ which increases the damage you do with a critical strike.  Instead of crits automatically doing double damage, they could do 150% damage baseline, and each point of expertise increases that by 1% (i.e. to 151%).  They’ve already laid the groundwork for this sort of effect with the crit amplification trinkets in Siege of Orgrimmar, which might be an indication that they’re testing the waters for this idea.

Finally, I’d make one slightly more radical change to the way hit is itemized – I would quantize it.  In other words, let’s say that we need 10,000 hit rating to cap (choosing a nice round number).  Items would never contain a random amount of hit rating.  There would be nothing in the game that gives 2751 hit rating, like there could be currently.  Instead, hit rating only ever shows up in multiples of 1000.  A piece of armor could have 1000 hit rating, 2000 hit rating, 3000 hit rating, and so on.  The stats on the piece would still be bound by the itemization formula, so the second stat would just soak up the rest of the item budget.  In other words, a pair of hit/crit legs with 3000 hit would have more crit than a pair that had 4000 hit.

Similarly, gems would have even multiples, maybe 1000 each.  Getting a new upgrade would then generally mean you need to swap a few hit gems around, but the math would be very easy – just replace N gems, where N*1000 is the amount of hit you need.  Reforging could work as-is, though it would probably be easier if the amount of reforge could be increased to 50% just so that you could reforge hit to other things without getting odd amounts of hit.  While you could reforge a non-hit piece (i.e. crit/mastery) into hit and get an odd number, in practice this shouldn’t be terribly necessary since you could just gem for it.  There could always be edge cases where it’s slightly more optimal to do so, but for the most part they’ll be insignificant enough that all but the very hardcore could ignore them.

 

Tanking Mechanics

Prediction – I think that we’ll see Warriors and Death Knights get the full “DPS tank” treatment that Monks and Druids, and to a lesser extent Paladins, have gotten.  It’s clear from Mists that tanks love this new model, especially when paired with active mitigation.  They opened a Pandora’s Box when they gave Paladins Sanctity of Battle, and rather than close the box they decided to embrace the new paradigm, even putting haste on our gear.  The success they’ve had with Paladins, Monks, and Druids will lead them to drive the remaining two “old-school” tanking classes in the same direction, fully embracing DPS stats like crit and haste as true tanking stats.

Wish List – There are lots of ways they can pull this off, so it’s not worth trying to go into too much detail.  But it’s clear that Riposte is just a band-aid for tank DPS, not a true active mitigation tie-in.  I would probably do something like tie critical strike rating into crit block chance, which indirectly ties it into rage generation, and a similar crit->resource conversion for Death Knights (maybe triggering Death Runes?).  But the sky’s the limit here, just because the problem is so open-ended.  The end goal is clear though – make all tanks value crit/haste/mastery gear so that DPS fluctuations over a tier or expansion are less significant.

As for Paladins, I think we’re pretty well-off already.  At most I might give us a more direct tie-in with crit.  Right now, it has some value via Eternal Flame, but it’s not a large amount.  If Seal of Insight and Sacred Shield could also crit, then it might have a reasonable (if not substantial) value to a tankadin.

Which leads us into our next section….

Dodge & Parry Changes

Prediction – I think we’ll see Dodge and Parry reduced in significance for tanks.  Passive mitigation and avoidance have never been all that interesting or dynamic for the tank, and that’s no better exemplified by the envy our Warrior and Death Knight brethren have been communicating to us with dagger stares all expansion.  I think that next expansion will have a stronger emphasis on “active” avoidance triggers like Grand Crusader while also reducing the amount of Dodge and Parry showing up on gear.

Wish List – Those last two thoughts may seem inconsistent, but they’re really not.  To explain: I think that avoidance should show up less on gear than it does now (and more haste, mastery, and crit in its place), but the avoidance that does show up should also be more powerful.  One of the big problems with avoidance is that we have so much of it on gear that we’re already feeling stung by the diminishing returns curves.  If we had far less of it itemized on gear, each of those rating points could be more powerful, and thus make it a competitive stat.

How would I go about doing this? Well, for starters, I would nerf the Strength-to-Parry conversion rate (and similarly the Agility-to-Dodge rate for Druids and Monks).  Free avoidance from gear is what we’re trying to mitigate, so having that giant source of it is detrimental to our goal.

The other thing I’d do is make sure that dodge and parry were mutually exclusive on gear.  In other words, you would never get a dodge/parry combination item.  Parry and dodge would always be paired with something else – hit, expertise, crit, haste, or mastery.  This effectively halves the possible amount of avoidance on gear, which means each point can be almost twice as effective.  Thus, the rating conversion could be brought back down on-par with the other secondary stats.  That would let dodge and parry feel like important stats again, because you’d really feel the difference between a low-avoidance build and a high-avoidance build.

Item Squish

Prediction – It’s not really a huge surprise, since we know this is coming.  Hopefully we’ll learn more about the actual details at BlizzCon.  But in any event, I predict we’ll get that information on Friday.

Wish List – There’s a huge parameter space here, so it’s not really worth speculating on exact mathematical details.  For example, they could just slash the item level increases for everything pre-MoP so that we’re back to something in the 200 range.  Or they could just completely re-tune the formula used for itemization (though that has its own side-effects).  Or they could do some sort of time-warp-esque trick where stepping into a new expansion automatically reduced the ilvl of previous-expansion gear, such that next expansion starts at ilvl 100 again.  Or a million other possible solutions.

My guess, though, is that it’ll be something permanent rather than a phased effect.  In other words, each item will get a new item level that’s significantly lower than the current value, and the tuning of all content in the game will be squished according to the same formula so that DPS and healing expectations are more or less unaffected.

Everything Else

I have lots of other expectations too, but most of them are pretty banal.  For example, I don’t expect an overhaul of our basic mechanics (holy power, active mitigation, etc.) or talents.  We’ve gone through a lot of iteration over the past two expansions, but the last few patches have seen very minor adjustments in terms of core class mechanics, so I expect we’re pretty much where the devs want us by now.  I expect we’ll get some new glyphs, possibly a new spell at 95/100 (or whatever the new cap will be), but that’s pretty bog-standard by this point.

I suspect we’ll finally see new character models, which is interesting, but not really a mechanics thing.  I don’t really have any idea if we’ll get a new class or new races, but my guess would be that new races are more likely than a new class since Blizz seems to alternate.  If they do add new races, I hope they take that opportunity to re-balance racial bonuses to be less significant in combat.  And I’d guess that we’ll see some new feature that utilizes the level-scaling tech that’s been observed in bugged instances over the past month or so.

That’s all I have time for now, gotta pack for BlizzCon.  If you’re going, be sure to plan to attend Palapalooza! on Saturday at 4PM at the Meeting Stone, where you’ll be able to meet myself, Anafielle, and Meloree, our friends Rhidach and Antigen (from the Righteous Defense blog), and a host of paladins that are a lot more famous than we are (Treck, Slootbag, Absallom, and Towelliee, and Kerriodos have all said they’d be there)!

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

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