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.

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:

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

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.

15 Responses to Simulationcraft v540-5, Warcraft Logs, and BlizzCon

On the vengeance issue, maybe instead of adding a non-vengeance generating source of damage, if there was some command or feature (if there isn’t already) to completely clear your vengeance on-command. Sort of like how there are command line functions to instantly restore health/mana during a simulation. Or are we already able to simulate a /cancelaura Vengeance (can you click off vengeance? I’ve never tried), that then either make it so that we can periodically wipe our vengeance in the priority list, or just build it into the tanking model background. By resetting Vengeance every ~45 seconds that should sort of emulate a tank swap just without simulating the time that we’re not tanking.

Also, if the vengeance issue is causing small stat changes to become trivial and resulting in garbage stat-weights, wouldn’t a solution be to ramp up the stat-delta used to generate the weights? So that instead of adding 1000 haste you add like 5000 haste, etc. That should give bigger impacts on the results and help the stat changes stand out from the noise:

Not necessarily. First, there are limits to how well that works – if you’re near the haste cap, then adding 5000 haste won’t necessarily be any better than adding 1000 haste. More importantly, I think what it’s doing is making the first 10-15 seconds of the fight overly important, because you won’t have EF active. So part of what we’re seeing is just pure randomness, because most of the stats have little effect on just that first 15 seconds.

Well, the delta multiplier was just a thought for a temporary solution. I think periodically resetting vengeance would be a more appropriate approach as that should let use emulate the rise and falls of vengeance due to tank swaps like you show in that chart. Though instead of a gradual fall it would just drop off, but would probably still be more accurate than a constant peak. I just checked in-game and you can click-off vengeance early, so is it possible to put a /cancelaura macro into the priority list? And if so are we able to enforce a custom cooldown on macro commands? (I know simC supports enforcing artificial cds on abilities, just not sure if it can be done to macro commands, assuming we can use macros in simC).

I’m not sure if we have a way to /cancelaura a buff in SimC, but I’m sure we could add a way to reset Vengeance periodically if we wanted to. I’m just trying to decide what the best approach would be. I think the rising/falling Vengeance model would be a more accurate approximation to what happens in-game, but would also increase the randomness and thus variance of the results. Whereas simply making 25% of each attack not cause Vengeance would more reliable, if more artificial, results.

After some digging around, I’ve found that although we cannot use /cancelaura in simC, we can use cancel_buff in the action list in pretty much the same way, and the condition to enforce an artificial cooldown on abilities also works on it as well. So you could put something like the following at the top of the action priority list (I put it right after auto_attack) to periodically reset your vengeance:

actions+=/cancel_buff,name=vengeance,line_cd=30

This will reset vengeance every 30 seconds, which I just picked as a sample for how often tank swaps happen.

This definitely causes vengeance to reset, the timeline for it is no longer a single curve leading to a constant peak and is instead a series of upward curves. Though I’m still playing with it to try and get a feel for how often it needs to be reset to give more realistic results. My pally is currently 554 equipped, and I’m playing with the T16N10 boss, but even resetting vengeance every 10seconds still shows me as self-sufficient (my health timeline never touches zero, though it gets close) and only raises my TMI to about 1700. So I don’t know if the vengeance reset isn’t being as effective as we’d like, or if I’m just simply that overgeared for that boss. (also I am only running like 3k iterations, just to get a quick idea of the impact)

Did another serious of tests. This time they’re all at 5k iterations (still low, but I’m still more interested in getting fast results for comparisons). Though this time against the T16N25 boss to hopefully get more noticeable results. And again my pally is 554 equipped. First my TMI without the vengeance reset than the TMI I get by resetting it at various intervals:

ref 1266.6
50s 7147.5
40s 7756.5
30s 13173.4
20s 65504.3
10s 110.5k

Given how close the TMI values are for 50s and 40s compared to all the other gaps I’m probably seeing a decent amount of noise since I’m only doing 5k iterations. I also want to bring up that despite the increases in TMI, my health timeline is still showing me as self-sufficient for all of these except for the 10s reset (and even then, only barely, my hps is only about 3k less than my dtps). I think the self-sufficiency is more a factor of EF being the go-to talent this tier and not really a symptom of the vengeance issue.

Simulation noise aside, I think that using this workaround the 40s mark looks to be a decent place to reset vengeance. I’m at 554 ilevel which is pretty spot on for what normal mode should be expecting so a 7~8k TMI is probably what I should get. Or maybe not, all of our previous attempts at picking out a target range for TMI were with constant vengeance so maybe those ranges were all deceptively lower than they should be (ie maybe we were seeing a bit of this issue back then though far less pronounced). So maybe the 30s mark might be better?

I haven’t generated any stat weights with this workaround yet, but I would imagine that as long as the we get the TMI up to at least a few thousand we should get more reliable weights.

Theck, just a heads up on a potential bug/issue. I was getting a TMI approaching 1 million for T1610N bosses and knew it wasn’t right because I’ve been following this since you moved to simulationcraft from matlab with no issues in the past, Looked at if anything odd was on, etc, and noticed that I had Clemency talented and HW glyphed (3 tank strat for Dark Shamans, because, well, we can be fail sometimes and it’s just easier that way). I swapped for Unbreakable Spirit and WoAW, respectively, and saw the TMI fall to 4.4k. Gut tells me it’s Clemency. Figured you’d want to know. Toon is US/Zul’jin/Halocck, with pretty standard options chosen, nothing customized.

Also, enjoy Blizzcon, you deserve it for all the work you do for us tankadins. I’m being super fail despite living twenty minutes from it and not going this year, so somewhat jealous.

Replying to myself, bad form, I know. Got un-lazy and troubleshooted it myself. Swapped out the Talent and Glyph one at a time to see what it was. Turns out that issue does appear to be Clemency, with the caveat being that the combo of both is what caused the extreme surge in TMI.

Swapping back to just GoAW took TMI from 4.4k to a little over 5k, which could also be a function of just sheer randomness.

Swapping back to just Clemency took TMI from 4.4k to 14k. Is that because Unbreakable Spirit is just that good on a Patchwerk style boss?

Did note that i couldn’t replicate the 1 million TMI again, despite having gotten it 3x in a row the first go around (10k iterations). Weird. No clue why when those are the only two things being changed.

Also in case it helps: not using any set bonuses to get to these results.

Yeah, Unbreakable Spirit is pretty strong because you double your Divine Protection uptime (and once you have 2T16, double the uptime of the set bonus, even though it’s half-strength). So I’d expect a fairly significant change from swapping Clemency for US. I have to check my local data (I’ve almost finished the Talent Comparison sim, and have preliminary data for basically every logical talent combination), but I think that’s consistent with what I was seeing.

Not sure what caused the 1M values, though. It’s hard to troubleshoot without looking at the html output, though – there are just so many settings that could cause a sudden spike, it’s hard to guess which one it was.

That said, the set bonuses are pretty strong this tier, so they will also make a pretty big difference once you get them.

As far as the set bonuses go – I have 3 set, but don’t like two of the pieces better than the offset, so I was waiting for the 4th. Trying out the 2pc I was seeing roughly 3k hps output, it seemed awfully week, especially given the timing of the HoT. Is your experience with this different? It may just be that my guild is on T16N10, but I was not particularly impressed with the 2pc.

That’s probably 3k HPS over the entire fight though, not while it’s active. The point is that it’s another HoT ticking on you, which means steady healing input, which helps eliminate spikes. It’s certainly not an overly strong effect, but it is like having e.g. an extra enchant proc active.

With the change to Sacred Shield, how should I be working it into my rotation? It feels somewhat awkward now that the CD no longer benefits from haste. In fact, I’ve been having a distinctly difficult time keeping my DPS on-par with most other tanks. What can I do to change this?

I had assumed I was setting up Simcraft wrong but judging from this post I’m running up against this issue – basically I’d have situations where hit and expertise were being valued at ~70+ TMI and everything else sat in the neighborhood from .07 to -.1 or so. I[‘m reasonably certain that adding stamina and dodge are never actually going to make me MORE likely to die, and this doesn’t line up at all with my T15 sim results.

I guess my question is – am I still getting an accurate, if very compressed, stat value report? I.E. if simcraft says that stamina is worth .06 and haste is worth .05, can I at least assume that 5 points of haste roughly equals 6 points of stamina in the “real world”, or is my output being completely distorted by this issue?

It’s hard to say. This issue has the potential to distort stat weights pretty heavily. As a rule of thumb, I wouldn’t trust any result that had either (a) negative and positive stat weights or (b) suggested that dodge/parry were better than haste/mastery/stamina.