Open source is great
Greetings,
SimulationCraft is a simulator used by us to work on Elemental Shamans. It has a public repository, therefore everything we’re doing and discovering can be shared with other people quickly.
Other community tools like raidbots
and bloodmallet
use SimulationCraft to generate their data.
This means, whatever we find and improve will arrive at your simulating-doorsteps soon.
On the other hand this means, if anyone anywhere is working with SimulationCraft e.g. to improve our Action Priority List and notices something strange in the reports, we can figure the issue out together and occasionally find something.
On 21.02.2022 Amani
noticed a strangeness in Simulationcraft.
For some at the time unknown reason spamming Frost Shock was dealing more damage than casting Lightning Bolt if we’re ignoring Mastery: Elemental Overload.
This observation was quite puzzling because that math just doesn’t check out.
# We were working on PTR data at the time.
# Frost Shock
spell_power_mod = 0.63 # 63%
casttime = 1.5 # seconds
dpet = spell_power_mod / casttime = 0.42 # 42% spellpower per second
# Lightning Bolt
spell_power_mod = 0.95 # 95%
casttime = 2 # seconds
dpet = spell_power_mod / casttime = 0.475 # 47.5% spellpower per second
DPET is the abbreviation for “damage per execution time”. In this case it’s similar to DPS - “damage per second”. The higher the DPET of an ability usually the more important it is. In this case we can derive, that plain Lightning Bolt will always deal more damage than plain Frost Shock.
The gig was up.
We scattered to check the simulation for buffs that might’ve just been in one of them. Or comparing the used items to ensure similar contexts. They were similar. We were in a dead end.
But there is one additional thing we could check. Spell data used by SimulationCraft. When simulating locally each ability in the Abilities section offers some additional information. Sitting down and reading that is a tad bit tedious. But coming from the above calculation we checked spell_power_mod and casttime. We discovered SimulationCraft reported a base casttime of 2.5 seconds for Lightning Bolt. The body was found.
Each body has a story. Reconstructing it is necessary to figure out how to fix the underlying issue in SimulationCraft. Now. Are you aware about spell ranks? E.g.:
- Lava Burst autocrit effect is the result of Lava Burst Rank 2. Introduced in 7.2.0.
- Chain Lightning hitting 5 targets instead of its baseline 3 is the result of Chain Lightning Rank 2. Introduced in 7.2.0.
- Fire Elemental doubling the duration of freshly applied Flame Shock is the result of Fire Elemental Rank 2. Introduced in 9.0.1.
What if I told you Lightning Bolt has a Rank 2, too?
- It does. Lightning Bolt Rank 2. Introduced in 9.0.1.
It’s easy to forget or overlook. You probably leveled before 9.0.1 and therefore didn’t experience this. Or you just don’t remember gaining this Rank 2 at level 6.
This bares the question: didn’t we know it? No. We knew. The topic of the tooltip showing 2.5 seconds casttime instead of the ingame observed 2.0 time occasionally popped up and we referred to the Rank 2 spell. But…during the transition to Shadowlands we forgot to implement its existence.
What does this mean?
- All Shadowlands simulations up to this point used Lightning Bolt with a base casttime of 2.5 seconds.
- Echo of the Elements was slightly overvalued. This talent thrives off the DPET difference between Lightning Bolt and Lava Burst. The higher the difference the better this talent.
- Aftershock was slightly undervalued in single target, because our baseline Maelstrom generation was slightly better than the simulation knew. The more Maelstrom we generate the more powerful this talent becomes.
- Elemental Blast was slightly overvalued. It’s worth is a combination of having a higher DPET than Lightning Bolt, generating more Maelstrom, and generating buffs. The DPET difference was slightly overvalued.
- Storm Elemental was undervalued in single target. A higher Lightning Bolt DPET value makes Wind Gust buffs stronger.
- Surge of Power was slightly undervaluing its Lightning Bolt part.
- Unlimited Power was slightly undervalued because if our base cast finished quicker, on average we can get more casts into the 10 seconds buff window gaining more benefit from it and stacking is ever so slightly higher.
- Stormkeeper was slightly overvalued. This talent grants a damage increase and a casttime decrease by making Lightning Bolt instant. The difference between a 2.5s cast becoming instant (twice) and a 2.0s cast becoming instant is noticeable.
While this oversight is bothering it’s probably nothing major for the last two tiers.
But buckle up. 9.2.0 is coming.
Storm Elemental will thrive even more.
Surge of Power focusing solely on the Lightning Bolt part comes surprisingly close to Primal Elementalist.
MACHINE GUN
gains a casual 6% in simulations that were already present in the game.
Wrapping up, SimulationCraft has the base casttime now fixed.
Thanks to it being open source we could quickly identify and fix the underlying issue. Furthermore open source allows us to transparently work together to explore the potential of the game.
Yours sincerely,
Bloodmallet(EU)