2010-12-15

Farm mode = on

New expansion, new stuff to farm, new reputations, new professions to level.

Overall: farm time.  Which I don't particularly like, with the exception of running instances.   Reputation dailies are still boring and idiotic and I'm avoiding them like the plague.  Luckily all the faction reputations can be raised via the appropriate tabard.  Of course one is missing: Tol Barad faction.  Which I've decided to ignore: sure the trinket is ilvl359, but I just hate the idiotic quests which I'm forced to do in a no-fly area (I don't even understand why, since I'm not PvP flagged in there....).
Strangely Herbalism/Mining farming is turning out nice: I like to fly around with my weak DK in Twilight Highlands.  One mob means instant death, but there are not many aggressives around, and I know how to avoid aggro.  I really like the new and revised world, flying around is not (yet) boring.  I've not yet touched archeology: when I'm on my main I usually run instances, but I'll (slowly) level it just to waste time.

RWF is not advancing, I'm waiting to see if the aura thing gets fixed, but from the logs of our first raid it's clear that they are not.  We didn't have a DK, but we had a hunter with Hunting Party.  It's nowhere to be seen in the log....
I don't know if to go for a workaround or just ignore the problem and focus on health tracking / tanking analysis.

Optimization has become easy: agi > mastery > everything else.  Considering that I play hybrid, I'm focusing on hit/experise as well (expertise in particular), they may be average for a cat (but not much worse than crit/haste), but they are a lot more useful when you're tanking.  Since I plan to test a "real full hybrid" build (same spec AND same stuff as much as possible), I'll try to be capped.  Of course people at EJ are working hard to see how to increase your dps by 0.01%, which will be completely useless in real fights, being swamped by positioning and RNG, but optimization is a game in itself, I can't blame them for trying to get the highest DPS in Mew/simulationcraft.  Overall, as much as I'm having a lot of fun playing cat DPS, I find that dps optimization right now is boring and mostly irrelevant.  Execution ruled in ICC and it does even more in Cataclysm.  Which is something that I actually like....

2010-12-04

Still no auras

Seems like Improved Icy Talons is still not in the log :(

I'll wait some more time before going for the messy workaround.  In the meantime, I'm deciding what kind of numerical data to show.  Duplicating what can already be seen on World of Logs (or similar) is useless, what I'd like to display are estimates of DPS loss due to errors, but while this may be doable in a single-target fight, it's very very complex in a multi-target scenario.
Something which I'll definitely add are scaling coefficients based on the actual damage distribution across abilities, this is easy.  Agi/Crit will be slightly underestimated due to ignoring the extra CP generation, but for small changes, the effect is irrelevant.

I also need to have a look at WoWCardioRaid, which does some nice visualization of events.  It's raid-oriented (contrary to RWF, which is player-oriented) and it looks like a WoL on steroids.  Too bad it only runs on windows....

2010-11-20

RWF 0.2.0 - with patch 4.0 support

Even if several problems are unresolved (most notably haste tracking for correct energy regeneration), here is the latest version, which has support for the patch 4.0 skill ids as well as changes to the DoT mechanics (refreshing dots just before the last tick is good, missing the refresh is bad).  I reported the missing haste auras to Blizzard and they said the info was forwarded to the devel team, so I'll wait before doing ugly hacks.  Hopefully it'll be fixed in one of the upcoming patches.
At the moment, the Warning/Error things are very arbitrary, but they still give an idea of what should/should not be done.  It also correctly handles Rip refreshes done by FB (not that simple to detect) and it's able to deal with the "rake-aura-up before the skill itself hits the mob" I mentioned a couple of messages ago.  It's also able to deal with a "shift out of cat form" moment.
The pie charts handle a window resize more gracefully and the log filename is stored, so that you don't need to re-type it every time if you keep your log always at the same place.
I also added another type of combat log split: a split on "pauses" which are longer than 4h, which is useful to split a big log into separate days (and don't have WoL complain if you forget uploading for sometime....).

Download from the usual place.  Ah, I learned to switch off debug mode for the windows build, so the executable is a whole lot smaller, I hope it still works ok :)

2010-11-03

Energy regeneration nightmare

After dealing with the Rake problem, here is a new one: energy regeneration.

On 3.3.5 it was simple: 100 energy in 10 seconds.  Now with haste coming into the picture, things are not even remotely as simple.  Expecially because all melee-haste affecting auras mess up with the energy regeneration (seen what happens with malleable goo on Festergut?).
This means that in order to build a reasonable energy profile, I need to take into account not only the basic haste (which comes from the stuff), but also all the auras which affect it.  And guess what: some of them don't appear in the combat log.  At least, Improved Icy Talons I never saw around, and Windfury totem does not apply/remove anything when it's invoked (not sure about Hunting Party).  This  means that the only approach is indirect: determine the life of the frost DK/Totem and assume that the aura application time matches the intervals where those players/guardians existed.  This means that when analyzing data for player "Helistar", I also need to keep track of stuff which is completely unrelated to "Helistar".... translation: deal with the entire combat log instead of just the events involving the player I want to track.

Time to change more internal stuff.....

For the rest things are advancing, as soon as I have a reasonable approximation of the energy profile, I'll post a new version, right now the error is enormous (almost 10% depending on fights).

2010-10-27

Combat Log inconsistencies

Ok, it looks like 4.0 and the change to the GCD checks have added some more special effects in the combat log.... you can now have an AURA_APPLIED for Rake which occurs before the SPELL_DAMAGE of the Rake which actually applied the aura.  This messes up my processing, as I always relied on SPELL_DAMAGE to perform error checking on aura refreshes, but since now it can arrive late, it ends up checking a refresh against the aura which was just applied.... so it will always report that the aura was refreshed too early.  Look:
  • 10/18 22:52:16.843  SPELL_CAST_SUCCESS,.....
  • 10/18 22:52:17.171  SPELL_AURA_APPLIED,.....
  • 10/18 22:52:17.343  SPELL_DAMAGE,.....
This is incredibly annoying, because it means that I have to add a separate event for the aura application/refresh (as I do for Rip), which will often end up superposed with Rake's initial damage.
What is weird is that in the combatlog I'm using for debugging this only happens on some bosses and not on others.  From the same log:

  • 10/18 22:17:16.031  SPELL_CAST_SUCCESS,.....
  • 10/18 22:17:16.265  SPELL_DAMAGE,.....
  • 10/18 22:17:16.265  SPELL_AURA_APPLIED,.....
This is the behaviour I'm used to having.  I'll have to code some weird workaround for this crap......

2010-10-26

RWF and 4.0

I'm advancing (slowly) towards the next release.

Apart from changes to all the skill IDs and other simple matters, there are a few things which are still a problem:
- I've not yet clearly understood how the Rip refresh from FB gets in the logs. Shred refreshes are clearly indicated together with the shred damage, but the FB ones no. I'll have to do some more controlled testing to see what's going on instead of relying on raid logs, which are messy.
- The impact of haste in energy regen is a not easy to manage, since this means taking into account all procs/buffs/debuffs which affect haste. For the moment I'll go for "fixed haste", but finally add the resyincing of energy performed by CAST_FAIL "Not enough energy".

I'm also trying to turn my small piechart widget into something which plays well inside a QLayout, but I'm having problems undestanding how the widget space requirements are communicated to the layout manager. I'll have to do some more learning and testing.

Not sure when I'll be able to finalize the thing, but at the same time it's not like DPS is critical right now. As for the "rotation", the sharp drop in crit going from 80 to 85 will change it quite hard. Practicing DoT refreshes will still be valuable, but Rip/FB/SR use will change radically.

2010-10-19

ICC 10 Full Drood (11/12, 8hm)

Ok, here is the promised report..... it's a bit late, as it was done before patch 4.0.  Whatever.

Apparently it's a tradition on our server, a "full-drood raid" is done at the end of every raid tier, abusing the fact that druids are the only class which can fill all the possible raid slots.  I've never found myself in one of the old raids (I remember something about one in Ulduar, but I was already tagged for the week).  In any case, on a saturday evening we ventured into ICC10 as a full druid raid group (with some unhappyness from the various guild's raid leaders which found themselves with a lot of unavailable druids for the current tag).

Standard composition: 2 tanks, 3 healers (one with moonkin spec), 5 DPS (3+2, I was one of the cats).

Now, even if the druids can fill the roles, it doesn't mean they are optimized to fill the role..... in particular there are some glaring holes in the abilities which are around.  For example, a lot of missing buffs: some of them can be replaced with drums/scrolls, but things like resistance auras are not that easily replaced.  It also means no MD/Tricks (= hard time for the tanks to keep aggro).  More serious: it means no slowing effects and NO DISPEL DISEASE.  This last one can be troublesome.....

The idea was "one long eveining, as much HM bosses as possible, but we want to get to Arthas".  So we started with Marrowgar, which was unsurprisingly one-shotted in HM.  We were not that sure about Deathwhisper HM, but it went well and we one-shotted it as well.  After all the only real trouble are the curse (we can dispel) and the mind control (cyclone says hello).  Gunship battle was a joke as usual.

The we got to Saurfang and things turned to be a bit harder.  In particular add management.... full druid means we have no slowing effects, unless someone goes around hitting them with Infected Wounds our stunning them with bash.  They both are hard and/or dangerous to place, since in HM there's the -80% movement speed debuff, so we kept losing people to the adds.  One mistake and we had one ranged dead.... The solution was for us cats to start spamming Roots on the adds as soon as it was safe (= not in melee range of anything).  Sure, Roots breaks fast, but it turns out that if you frantically press the "cast Roots" button, the mob is almost unable to move, as it's re-rooted as soon as the damage frees it.  Add to this some ferals (ahem ahem) taking aggro and dying and in a few tries we had it down.  4/4 HM!

Next step: Blood Wing.  No trouble, I think we did one wipe on Princes due to the Keleseth tank getting gibbed, but the two fights don't have any mechanics that a druid can't handle.  6/6 HM.

Next: Plague Wing.  We get Festergut down fast (one or two wipes due to some mess at range, I think), then on to Rotface.  As it turns out, Rotface without dispel disease is not the same thing as the Rotface Achievement....  The disease does a lot of damage and places a healing debuff, so we ended up losing people.  Now, with 10 battle-rez in the group this is not too much of an issue, but you end up with blobs all over and while the fight started always well, it always ended bad.  After a few tries and a wipe at 1%, we decided to pass it in normal mode, not to waste too much time.  Normal mode was a joke, of course.   Putricide: we forgot to switch HM on and with the fight running and the few Rotface wipes still in our thoughts, we decided to pass it in normal mode, having no trouble whatsoever.  9/7 HM.

Finally Frost Wing.  HM Valithria posed more problem that it should have, healing was taking too long and we were overrun by adds a few times.  Still, we kept going and after a few tries we managed it.  Sindragosa HM was too much.  Too much damage?  Not really.  Too much DPS taking aggro and having her breath on the raid?  Nope.  It was just too late in the night (after 1am), we had been raiding since the end of the afternoon, and mistakes started to pile up.  And when the mistake is that one tomb "disappears" 1 second before the last blast takes place, that's "BOOM half-raid-dead"-time. After a few tries we gave up and wanting to do some tries on Arthas we downed her in normal mode. 11/8 HM.

Arthas turned out to be a problem bigger than expected.  Apart from being almost 2am, with everyone tired, Arthas without dispel disease is an Hard Mode by itself.  We decided not to spread the plague to the adds, to avoid the risk of having it kill the add tank, which would result in an instant wipe.  We cannot set-up a ton of tanks for the adds, otherwise we end up with no DPS on the boss.  We tried some gimmicks (like potions), but there's no realiable way to deal with the plague except death+battle rez.  We managed to reach the transition once, but it was somewhat unplanned, so we ended up with three Horrors (and no easy way to stun or dis-enrage them), being forced to AoE them down since we didn't have the plague to kill them reliably.

Unfortunately we were unable to find another everning when everyone was available, so we stopped after these few tries.  The conclusion is that it's probably doable, with some luck in phase 1.  Of corse now, with the 30 min CD on battle rez some tricks will be a lot less easy to do (BTW worst idea ever, since it won't stop people from waiting, they should have just made it "once per combat" end of story).

Obligatory screen of the last boss we managed:

2010-10-16

Brace for nerf....

Ok, after some playing around with the Mew cat simulator, I've decided how to change my stuff and did some testing.  I'm sitting at 11k self-buffed on the dummy.  My guess is that it won't last... it's almost +4k compared pre-patch.

I went with a very unorignal spec, some 0/33/3 thing, skipping nothing fundamental and using a single point in Stampede (to help a bit when doing target switches), whatever DPS increase it can provide on a raid boss is a complete joke, definitely not worth the points.

Damage distribution is nice: I went the "reforge to as much mastery as possible", gem to hit/exp cap then agi + agi/haste.  The last is the wrong choice, agi/crit is better.  Number-wise, even hit/exp cap is an error as full agi anywere beats anything, but I like the comfort of being able to chain-click without being constantly forced to make sure that my hits have landed.

Stat weights for cats have become very simple now: agi rules.  Mastery rules almost as much as agi.  Str is good, but who cares about that.  Crit is better than haste since 50-60% of the damage is DoTs, and haste does nothing for them.  Hit/Expertise are for comfort, since the big damage source is DoTs, they are irrelevant.

Cycle-wise: synching TF and Rip/Rake is a pain in the ass, so I suggest that you ignore it, UNLESS the occasion props up.  If an extra "random shred" allows you to put up both dots with the +15% TF bonus, definitely do it, but going out of your way to synch them will be a big headache for a little gain (and maybe even loss, depending on the scenario).  I think that synching TF with trinket procs/tricks/berserk (which does not cancel it anymore) is more reliable and effective.

The other thing is dot-clipping.  If before it was anathema, now in 4.0 it's recommended behaviour:  you should refresh the dot between the last two ticks: this has the effect of extending it without making you lose any tick.  Unfortunately, the addon I use, EventHorizon Continued has some issues with the correct tracking of Rip refreshes, making it hard to correctly refresh it at the end.

At the same time, it looks like everyone is holding his breath, waiting for Cataclysm.  When I go raiding, I feel people are more around to do/test something than really focus on progression.  And seeing how much better things are getting and will become with Cataclysm..... I agree.

Ok, next time a short report of our 11/12 ICC full-druid which we had just before the patch.

2010-10-14

Stop DPS

My cat just died after some months of (incurable) illness. I'll definitely miss his lessons on the correct use of FB....

Together with the continued Cataclysm changes, it's also the reason I was not very active in RWF developement lately.

2010-10-05

Cataclysm: DPS still low

I've not yet started any serious thinking about cat DPS in 4.x.  On beta I'm at 5.4k (on dummy, MotW, not using berserk in the rotation), which is a sick joke considering that I can do 7+k dps on live being 5 levels and 50 ilvls lower.  For me, this means that a lot of work must still go into feral.  I'll wait and see.

I hope that we don't end up with the "refresh Rip during TF only" which seems to be the current trend.  I find interesting to manage DoT uptimes, and this just takes it out of the picture.

BTW napkin math shows that in the current scenario synching TF and rip is a loss:  Rip lasts 16+6 = 22 secs, TF has a CD of 27s with the glyph.

If you synch you end up with 11 rip ticks every 27 seconds.  If you assume that your rip ticks do D damage and you have 30% crit your total damage every 27 seconds is: D * 11 * 1.3 * 1.15 = 16.445 * D.

If you don't sync and keep 100% uptime you end up with 13.5 rip ticks every 27 seconds: D * 13.5 * 1.3 = 17.55 * D.  So a constant Rip is better then a TF-synched Rip.  Of course it costs you CP to refresh, so it'll be a matter of seeing if you have something better to do with those CP.

I'm continuing developement of RWF, with a big twist: since 4.0 will be going live soon, I'm killing WotLK compatibility and the next version (0.2.0) will be 4.0-compatible only.  Since there's not much theorycrafting around I'm removing most of the "error" indicators until the situation settles (I'll keep the "melee without SR" and "Rip/FB not at 5CP", mostly).  One big change is energy regen being haste-linked: this means that unless I have the haste rating + all haste proc info, energy regen wil be incorrect.

I'm taking advantage of the time to also clean up the code a bit.  After cat Cataclysm compatibility I want to add tanking, which means tank health tracking, which is a mess. But I already wrote it once, I should be able to survive a rewrite :)

2010-09-28

Play time OMG

Ok, having turned on the parental control to kill the realID thing, I now have an easy way to keep an eye on my play time.  Problem is: it's not play time which is measured, it's connection time.  And when you have the habit of leaving your character logged in when eating/cleaning the apartment/etc. the two can diverge.  But how much?

So I decided to do a test: instead of leaving my character around, for one week I decided to log out immediately every time I do nothing.  Of course dungeon finder queue time, which I spend doing something else, will still be there, but that's small compared to the rest of the afk time.  I also had some AH afk going on, but less than usual.
The result was surprising.  I usually hover at 30-33 hours/week (1800-2000 minutes), this week I was at 1520.... That's 6.35 hours less "playing" than what I thought (even without parental control I always considered 30h/week).

It looks that I'm more distant from the "heavy duty hardcore" threshold (45-48h/week) than I thought!  I'll have to play more :)

2010-09-27

Some Fundamental Reading

Begin quote:

If it's a talent that provides a 10% dps increase or offers an ability you'll use constantly, fine. It's hard to argue that won't benefit most players. But when I see players obsess over talents that provide a theoretical 1% dps increase that is vastly overshadowed by the noise of their own performance, I shake my head a bit. Want to see what I mean? Compare a parse of yours on the same boss from week to week. You'll probably see a dps variance of 5-10% or more. That's the role of your skill, latency, bad luck, lacking the perfect raid comp or whatever else. Worrying about that 1% dps talent was a rounding error. Let's not forget that what may be 1% on one boss probably is not on another.
[.....]

End quote.

This is something that all min-maxers know: all optimization models used to calculate stat/talent weights are approximations.  And as all approximations they have a domain of applicability and they have limits.
This is where simulationceraft is a nice tool: it doesn't only give you only the "magical" average DPS value, it provides also a distribution.  And from that distribution you can see the +-5% deviation.  And that 5% deviation is in an ideal simulation where everything is perfect.  In a real fight, which is never identical to a simulation (except for Patchwerk with 0 latency), there are a lot more variables which come into play. That 1% is a drop in the ocean.  Sure, it adds water, but good luck if you expect the level to rise.

So, next time someone goes "OMG you have one wrong gem!!!  OMG with another enchant you could gain 0.1% DPS!!!" show them that message.  And if the guy says that he knows better than whoever wrote it, tell him you found it HERE, and that the author is Ghostcrawler and that if he knows better than either he should go and apply for a position at Blizzard, or (a lot more likely) he's an idiot.

2010-09-21

RWF release 0.1.2

New version available!  Notable changes:

- energy reconstruction takes into account Revitalize
- CP spent on SR are now indicated
- added a total value for the pie charts
- CP wasted for target switching and end of combat are now correctly taken into account
- the energy cost of FB has been fixed (OOC / Berserk interaction)
- it is now possible to analyze multiple combats/logs without restarting the program
- added tracking of OOC-equivalent energy generation

As usual, you can download from the RWF place.

From an user's point of view, the big one is that you can now analyze all the combats in a log without being forced to restart every time.
Energy reconstruction is still approximate and somewhat wrong (in the totals, you always have a lot more regen than used, which should not happen -- actually since RWF assumes 100 energy at start, the regen total should be lower....).  There still are some events I don't take into account, notably shapeshifting/Furor.  I'll add tracking of SPELL_CAST_FAILED due to "Energy too low." to improve the quality of the energy tracking.

2010-09-20

Cataclysm: bear 12984

The last Cataclysm patch has brought good things to the bear.  Apart from some numerical changes (Mangle = massive damage, Lacerate = more upfront, less bleed), the big change is the second effect of Berserk: Lacerate ticks now have a 30% chance of resetting the mangle CD and providing a 6-second buff which makes the next mangle cost 0 rage.
This means that:
- the rotation is not static anymore: Mangle does so much damage than using the Berserk procs ASAP is a priority,
- keeping up Pulverize is not as expensive as before, since you'll still get decent TPS from reapplying Lacerate,
- we have more rage to spend on Maul.

What I don't like is that apart from the crit boost helping with SD, threat and survival are still very much separated with "skills/cycle = threat" and "CDs = survival".

I'm thinking about resurrecting my tanking simulator and updating it for Cataclysm to see what are the numbers.... but it would take a lot of time.  Maybe.

The next version of RWF is advancing, I've fixed some CP errors and added some more stuff.  I'm still unable to reexecute the analysis without crashing the program, I'll see if I can fix it during the week and release.

2010-09-12

RWF release 0.1.1

A new version of my log analyzer is available for download!

As usual: sources ready for compilation on linux or windows (requires Qt 4.6), or a windows executable + the required dll files.

Download from the RWF place.

If you have no idea what I'm talking about then check the README, or have a look at the example pictures.