Simulation: verifying results

by Tachyon on Fri. 09. July 2010, 19:31

Filed under: casting, simulation

Hi folks, sorry for the lack of posts lately. I have two articles in the pipe that address the damage problems some mages save, and tips for beginners and pros on how to improve the damage output, but they're not yet finished.

I'm also reading all the Cataclysm information that's flooding the web, but given the change rate of features announced, cancelled or replaced (talent trees revamp being the latest), it's stupid to do any projections yet on what we get on release day, or how we will play our mages.

News from the simulation front



I'm also continuing to develop my new casting simulation in my spare time, and hope to have it finished soon enough for Cataclysm, so I can adapt it to the new stats and spells, and have a tool to compare specs, stats and stuff for upcoming articles.

The basic simulation engine is more or less done, and now I'm verifying the results I get from the simulation runs. As combing through endless lines of combat log output in the hope of finding any discrepancies is a very dull task, I started programming some visual tools which can display the output of the simulation in a more pleasant way.

One visualization is a track lane view (resembles the tracks you see in audio or video editing software, and it's already looking neat! Of course this is only the beginning, I'm planning on adding more information, such as damage numbers, proc and buff uptimes and whateveryoucanthinkofs. Hell, this would also make a great tool to visualize combat logs, what do you think?

Cataclysm NDA lifted

by Tachyon on Thu. 01. July 2010, 11:27

Filed under: cataclysm, expansion, mage, beta



The Cataclysm NDA (non-disclosure agreement) has been lifted today, so we can expect to see new information from the beta flooding the internet, yay!

MMO-Champion already published a compilation of the mage talents/spells for the upcoming expansion, and it looks fine!

Some goodies I've found:
  • Spreading Chill spreads the chill effects to 1/2 additional targets on Frostbolt crits
  • Improved Cone of Cold freezes the targets for 2/4 seconds
  • Improved Polymorph delays damage taken by the target by 1.5/3 seconds
  • Arcane Repulsion gives all of your armor buffs the ability to knock back and slow an attacker, once per minute
  • Arcane Instability increases the damage of your next spell by 20/4/60% when one of your spells is pushed back or interrupted
  • Improved Mana Gem increases your damage by 1/2/3% of your maximum mana for the next 10 seconds after using a mana gem
  • Arcane Tactics is a raid-wide buff that increases damage

Links:

Simulation: Partial Resists

by Tachyon on Sun. 13. June 2010, 03:13

Filed under: dps, simulation, theorycrafting, fire, resists

The development of the new DPS-simulation engine is progressing as planned, and requires more and more time doing research of the spell mechanics, to find out how the spell effects work in detail. It's very hard to find any fundamental information on that topic, so I had to switch back to experimental mode and find it out myself.

One particular question I wanted to have aswered today:

How much of a spell is partially resisted (absorbed) by boss targets?
Bosses have a built in resistence mechanic that lets them absorb a part of the damage. The common knowledge is that bosses count as maxlvl+3 mobs (in the WotLK version: level 83), and that they gain 5 resistence per additional level (15 overall). But I have noticed before that the resists fluctuate, sometimes more is resisted, sometimes less, and in some cases nothing is resisted at all.

Partial Resists

To test the partial resists, I unequipped any items that have a +Spelldamage proc, and casted Arcane Missiles on a Heroic Training Dummy. To record the data, I used Fraps and viewed the video in slow motion to note down the damage and absorbs for each tick.
Here's an excerpt of the collected data (in brackets: partial resists)
1099 (275), 2147 (275), 2446 (137), 1374, 1236 (137), 1374, 1236 (137), 2684, 1374, 2147 (275), 1236 (137), 1099 (275), 2415 (137) ...
The resists were either 0, 137 or 275. In relation to the damage before resists, this was exactly 0%, 10% and 20%. The spell crit modifier for Arcane Missiles (with CSD and the AM Glyph) is 1.95375, and the critical spell hits show that the resistance happens before the crit factor is applied.

Now I needed more samples to quantify how many spells have 0%, 10% and 20% resists. For that I parsed the combat log from our raid tonight with a total of 487 samples on 3 bosses. Result:
  • 257x 0% resist (~ 1/2)
  • 152x 10% resist (~ 1/3)
  • 87x 20% resist (~ 1/6)
I have yet to verify these observations with other spells, but I assume for now that all spells are affected the same by partial resists.

EDIT 2010-06-14: Interesting side note
Ingite is affected by partial resists as well. Critical fire spells get thus taxed twice (once for the spell, once for the ignite DoT). This effect is known as Double Dipping.

Simulation: DPS Volatility

by Tachyon on Tue. 08. June 2010, 23:20

Filed under: simulation, theorycrafting, dps

Hey folks, it's been a while since my last post, sorry for that. I've been raiding with my new fire specs during the last weeks, and we managed to kill the Lich King in ICC 25, and are now working on the ICC 25 HC bosses (9/12 so far).



I've also been doing some research on stats scaling for the fire spec, but haven't drawn a conclusion yet. Some sources (like Rawr) state that crit rating is the best stat by far, but given the nature of the Ignite mechanics (ignite munching, losing a huge ignite bank when your target dies) I have some sincere doubts. Thaarsis (one of the other mages in my guild) pointed me to Greatschock <For the Horde>'s Armory profile (you remember, the first mage which participated in a 25 HC LK kill) who had replaced all his yellow gems with pure +20 crit rating gems. We both were puzzeled, but by now Greatschock went back to SP/crit gems, seems like too much crit was not that great after all.

Limits of the old simulation

For the Arcane posting series, I used a simulation program I wrote to observe and analyze the most interesting aspects of the arcane spec (spell rotations, the impact of the T10 boni, stats scaling).
Simulating arcane rotations was fairly easy, every spell does direct damage, and stuff procs on sucessful spell casts rather than on inpact, which was easy to model.

But now that I want to observe the Fire spec in detail, I have to rewrite the whole simulation from scratch. Fire has effects that proc on spell impact, so you have to take the flight time into consideration. Some effects even have a life of their own (hello Ignite!), so a radical new approach was necessary.

New simulation

The new casting simulation I'm writing is event driven, which eases dealing with concurrent effects (such as the Ignite proc still ticking, the player casting a new spell when the last spell is still on its flight to the target). Everything in the simulation is an Event, and can be scheduled for execution in the Simulation on a given time. Events can interact with the simulation, spawn and schedule new events and even reschedule themselves. Event execution can even be observed using Listeners, making it easy to modularize aspects of the simulation.

The simulation API is not yet complete, but it's growing more and more mature.
It may be a little late for the fire spec, regarding that the Cataclysm expansion is already in the beta, but when the simulation's done I think it will be quite easy to adapt it to the Cataclysm spell mechanics, so it's well worth developing it.

The simulation also doesn't use a fixed player stat model, but allows to take a character out of the armory, and take all individual stats and talent point distribution as well as glyph choices, raid buffs and temporary powerups into account.

I've only modelled arcane so far (so I can compare the outputs of the old and new simulation), but at least I can share some effects I'm dealing with at the moment, or rather one effect in particular: Volatility.

Volatility

As a great part of the logic and results depends on the RNG (random number generator), say whether your spell hits, crits or misses, and the procs involved, the outcome will vary each time the simulation is run. This variance is significant and tells a lot on how to interpret simulated results.

For testing purpose, I did 10 runs with my mage's stats, using an arcane rotation on a 5min fight (no raid buffs, no AP/IV etc). Here's the DPS numbers that came out:

10 Runs:


Once I had less than 6800 DPS, and another time over 7200 DPS, using the same rotation, same stats and same duration. When the outcome is so volatile, it's nigh impossible to draw any conclusions when you vary input parameters.
Any DPS tests you do ingame (be it on the target dummies, or in a raid) are rendered obsolete, as you just cannot obtain enough samples to observe what happens when you do something different. You could test on a target dummy, swap some gems to a useless stat (e.g. Agility), test again and have an increased DPS result.

I did some more runs with the simulation:

1'000 Runs:


Those of you with a background in statistics recognize a gaussian distribution in the samples, and if we do event more runs the bell shape of the distribution curve is obvious:

100'000 Runs:


Look at the x-scale to see how far the minimum and maximum value are apart!
What this means is that to be able to draw conclusions on the average DPS for a given situation, the simulation has to do serious number crunching and do lots and lots of runs to have a stable outcome.

Fascinating, isnt't it? I hope you just learned to not to trust any observations that are drawn out of a handful of samples

Stay tuned for more articles on the progress of the simulation!

EDIT 2010-06-12: Sorry, forgot to enable comments (was disabled by default), commenting is now allowed

Quick and Dirty Fire Guide

by Tachyon on Wed. 14. April 2010, 02:20

Filed under: fire, guide, raiding, spec, talents, featured

First and foremost, Fire was always my least favourite mage tree. Deep in my heart, I still am a Frost mage (/curses Blizzard for completely ruining it as a raid spec), and have fun raiding with an Arcane spec.
But as my guild is stuck in progress at the Lich King, I had to take desperate measures to optimize my contribution to this particular fight. In other words:
I'm raiding with fire and flames at the moment.



According to Kamigami Tools, Fire is now (since 3.3.3.) up to par with Arcane on some ICC 25 fights (especially Professor Putricide and Sindragosa), and even outperforms Arcane on the Lich King fight (and some other fights in heroic ICC too).

This quick and dirty written guide aims at experienced players who want (or have to) give Fire a try. I suggest reading my Arcane Mage Guide also, as all the stuff I don't mention here (gems, enchants, gear planning, faster casting) are mentioned there.

The Spec


(Click on the Image above to view the spec as PDF)
I pondered long about the spec, and only after I was convinced that every point sits where it belongs I cross-checked it with the fire specs of high end mages. The fire spec of the first mage participating in the heroic ICC Lich King kill only differs by one point, so I think there's not much room to negotiate

Endgame Fire Raiding Spec:
53/18/0 Fire/Arcane

Stats

As a fire mage, you have no talents to increase your hit rating. If you assume that you have 3% hit from raid buffs, you need to get the missing 14% (or 13% if spacegoats are in your raid) from your gear. That's 367 hit rating, which should not be hard to get.
Stats priority:
Hit Rating (until cap) > Spell Power > Haste | Crit (as far as I heard) > (Spirit or Int, seriously don't know, or even care)

Spell Priority System

Fire doesn't use dynamic rotations like Arcane. There's not even a fixed rotation, but rather you will decide what spell to use next using a priority system:
  • Priority 1: Keep Improved Scorch up
    Improved Scorch lasts 30 seconds, and increases the spell crit chance on the target by 5% for all casters. Warlocks' Improved Shadow Bolt has the same effect, and doesn't stack with Improved Scorch, so if warlocks in your raid have Shadow Bolt in their rotation, you can forget about applying the Scorch debuff.
  • Priority 2: Keep Living Bomb up
    Living bomb does great damage on your target, especially when other targets get hit by the splash damage at the end. Remember that the huge damage comes at the end, so when your target is likely to die within 12 seconds, it's not worth (re-)appying it.
  • Priority 3: Use your Hot Streak procs
    Hot Streak procs allow you to cast instant Pyros after two subsequent nonperiodic crits with fire spells. The biggest issue here is Ingite Munching, which causes the system to forget to bank the ignite of one spell if two fire spells crit more or less simultanousely. If you have at least two pieces of the Tier10 set, consuming the Hot Streak proc will give your 5 seconds of +12% spell haste (of which 1 global cooldown is wasted, at least 1 second), this makes it worth using at least when the haste buff isn't up. The pyros are mana consuming, if you ever run into mana problems you may want to use the instant pyros less often.
  • Priority 4: Fireball chaincasting
    Pretty straightforward.

Configuring TellMeWhen

If you use TellMeWhen, you might want to watch for following procs/debuffs/cooldowns:

BUFFS/PROCS:
  • Hot Streak: Buff, Player, When present, Timer
TARGET DEBUFFS:
  • Improved Scorch: Debuff, Target, When present, Timer
  • Living Bomb: Debuff, Target, When present, Timer, only if cast by self
  • Ignite: Debuff, Target, When present, Timer, only if cast by self
COOLDOWNS:
  • Combustion: Cooldown, Spell or Ability, When usable, Timer

Useful Macros

This macro lets you cast Living Bomb on the target under your mouse pointer, or if nothing there, on your selected target. Very handy to apply Living Bomb on multiple units without having to lose your current target!

#showtooltip Living Bomb
/cast [target=mouseover,harm,exists,nodead] Living Bomb; Living Bomb

Useful Addons

Keeping up Living Bomb on multiple targets isn't that easy, but fortunately there's a nice little addon that helps here:
Living Bomb Tracker shows a little tooltip when hovering with your mouse cursor over a target, showing whether Living Bomb is applied and how much time is left ticking before you can reapply it.

Understanding Ignite

Ignite is a core mechanic you are expected to understand if you raid with fire.
Whenever one of your fire spells crits, it will do 40% of that damage as DoT (Damage over Time). On a single crit, there will be two Ingite ticks, the first after 2sec, the second after 4sec, both doing 20% of the direct damage component of the spell that crit. If other spell crits happen when there's still Ignite damage to tick, the new Ingite damage is added to the amount that is left to tick, and the timer starts anew to tick after 2/4 seconds.

Example 1: Single crit
t=0sec, Fireball crits for 1000 damage. 400 damage (40%) is added to the Ignite bank.
t=2sec, Ignite ticks for 200 damage (half of what's on the bank)
t=4sec, Ignite ticks for 200 damage (the rest), Ignite debuff expires on the target.


Example 2: Multiple crits
t=0sec, Fireball crits for 1000 damage. 400 damage (40%) is added to the Ignite bank.
t=2sec, Ignite ticks for 200 damage (half of what's on the bank)
t=2.5 sec, Pyro crits for 1500 damage. 600 damage (40%) is added to the bank. Ignite timer is reset
t=4.5sec, Ignite ticks for 400 damage (half of what's on the bank)
t=5sec, Fireball crits for 1200 damage. 480 damage (40%) is added to the Ignite bank.
t=6sec, Fireball crits for 1000 damage. 400 damage (40%) is added to the Ignite bank.
t=8sec, Ignite ticks for 640 damage (half of what's on the bank)
t=10sec, Ignite ticks for 640 damage (the rest), Ignite debuff expires on the target.


This effect of banking Ignite damage is called 'Rolling Ignites'. Back in the classic days, there was only one Ignite bank per unit, so fire mages all added to the same pool. If their crit chance or number was high enough, Ignites could roll for a very long time, increasing the size of the ticks and causing aggro problems to the fire mage which caused the last crit. In vanilla WoW, once Ignite was applied it ticked every 2 seconds until it expired. The damage of the first tick was not substracted, but instead each tick was meant to do half of the banked damage. If rolling ignites occurred, the new Ignite damage was banked to the initial damage and the tick timer was reset to 2, so any damage from the first tick could tick again. This bug caused the banked damage to grow to massive dimensions sometimes, and was a hidden damage boost of fire mages. That had been fixed with patch 2.0, giving each player its own ignite bank slot, substracting any damage ticks and resetting the timer when a new crit occured.


Burning Kraken (not to scale)
What this means for you: be aware that not all your damage is unloaded directly, and subsequent crits can delay the dot damage (theoretically ad infinitum). Any Ignite damage still banked when your target dies is lost, this is part of the reason fire specs are atrocious for levelling or any target that doesn't live long enough (such as the Ice Spheres in the Lich King fight).

I hope you enjoyed this guide. If there's anything you think should be added, drop me a note in the comments. Now go and RELEASE THE BURNING KRAKEN!
Subscribe to Articles:
Subscribe to Comments: