Jump to content


Photo

SimulationCraft for Shamans


  • Please log in to reply
135 replies to this topic

#1 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 17 November 2009 - 04:57 PM

Recent Shaman Changes
  • Not Yet Implemented
    • None that we know of....
  • Code Updated
    • All updates released
  • Released
    • Option to restrict Chain Lightning usage to when mana pct greater than boss health pct.
    • Elemental Mastery provides 15% Haste
    • Tier 9 4-Piece bonus changed to DoT
    • Black Bruise
    • Fire Elemental
    • Fire Nova
    • Tier 10 set bonuses

Simulation Output including links to profiles


#2 Zamir

Zamir

    Piston Honda

  • Members
  • 197 posts

Posted 17 November 2009 - 05:11 PM

Unfortunately I've not yet personally taken the time to poke about SimulationCraft and understand it properly, partly because it does indeed seem like a bit of a mission. But I'd be very interested in regularly updated conclusions from the Sim for Elemental. It'd also be useful if the methods and assumptions used were included in any analysis as it's much harder for the casual observer to figure those out from the Sim than from, say, a spreadsheet.

As far as I'm concerned there's no issue of "competition": The more tools like this we have available and the more discussion they generate, the more we will be able to learn about our class/specs. I had wondered why there was no thread like this for shamans before.
Zamir's Blog // Cataclysm Elemental Primer // TotemSpot Community

Every one of us is, in the cosmic perspective, precious. If a human disagrees with you, let him live. In a hundred billion galaxies you will not find another.

-- Carl Sagan


#3 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 17 November 2009 - 05:32 PM

Zamir, I'm afraid that it is certainly much harder to "look under the hood" in SimC.

Obviously, Shaman-specific mechanics are confined to: http://simulationcra...e/sc_shaman.cpp

However, core mechanics are spread around sc_action, sc_attack, and sc_spell. While sc_shaman SHOULD be easy to read even for those not versed in C++, digging around in the core could certainly prove difficult. I like the idea of a wiki page that details high-level assumptions, etc.

#4 Rouncer

Rouncer

    Deeper Shade of Blue

  • Allied Members
  • 4,132 posts

Posted 17 November 2009 - 05:36 PM

Dedmon, why are you using that spec for enhancement post 3.3 changes? Improved Fire Nova is definitely going to be more dps then 2 points in reverb and 1 point in Elemental Focus is likely to fit in there somewhere as well.

The World of Warcraft Armory

That's the build I am planning on using when 3.3 hits, is that build something that I can test in Simulationcraft? I'm currently at work so can't play with the program too much right now.

#5 Curved

Curved

    Can't test for fun

  • Members
  • 647 posts

Posted 17 November 2009 - 05:51 PM

Zamir, I'm afraid that it is certainly much harder to "look under the hood" in SimC.

Obviously, Shaman-specific mechanics are confined to: http://simulationcra...e/sc_shaman.cpp

However, core mechanics are spread around sc_action, sc_attack, and sc_spell. While sc_shaman SHOULD be easy to read even for those not versed in C++, digging around in the core could certainly prove difficult. I like the idea of a wiki page that details high-level assumptions, etc.

One thing i'd like to see on the GUI (its possible i missed it), is the option to change the values used to calculate scaling factors. Its not particularly hard going into the code to change it, but being able to do it on the fly would be nice. The addition of graphs obviates the need for that to an extent.

Edit: I ask because i remember bellyaching over the difference in scale factors between Bink's sheet/Rawr (which were fairly close), and simulcraft (i got scale factors that put haste at 1/4 of the value of spellpower at one point). Shifting the scale factors around helped, and the graphs made what was happening clearer, but it was a bit confusing for a while.

#6 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 17 November 2009 - 05:57 PM

Dedmon, why are you using that spec for enhancement post 3.3 changes? Improved Fire Nova is definitely going to be more dps then 2 points in reverb and 1 point in Elemental Focus is likely to fit in there somewhere as well.

The World of Warcraft Armory

That's the build I am planning on using when 3.3 hits, is that build something that I can test in Simulationcraft? I'm currently at work so can't play with the program too much right now.


Mostly because I was too lazy to construct entirely new profiles for the Raid_PTR.simc runs. All I did was swap out T9 bonuses for T10 bonuses. For Shaman, I also swapped around some glyphs so we could take advantage of the Fire Elemental.

I should have also overridden some of the talents: The talents are set via an http talent link (both Armory and Wowhead links work). However, that is a bit of a pain just to change a few talents. At its heart SimC is just a CLI app that takes parm=value options in which the "last one wins". While glyphs= is set in the profile, we override it in Raid_PTR.simc. Talents can all be referred to by name: Simply remove punctuation/apostrophes/etc and convert spaces to underscores. So I can add reverbation=x improved_fire_nova=y elemental_focus=z where x/y/z are the number of ranks chosen.

The easiest thing to do is to create a wowhead account because then you can copy the profile, make customizations, and then import/run it, all from the gui. When you bring up the gui there is some documentation on the initial screen that explains (most) of this.

If you don't feel like creating a wowhead account, an alternative is to simply import your Armory as-is and then just cheat a bit.

So....
Bring up the GUI.
Options tab - change patch level to 3.3.0
Import tab
Armory tab - search for your char, select it
Import button (at lower right)
In the Simulation text replace the talents= line with yours above. (or use your existing talents= and override specific talents AFTER the talents= line)
Also in Simulation text you may wish to change the glyphs.
Simulate!

One thing i'd like to see on the GUI (its possible i missed it), is the option to change the values used to calculate scaling factors. Its not particularly hard going into the code to change it, but being able to do it on the fly would be nice. The addition of graphs obviates the need for that to an extent.


Rats. I didn't include docs for that in the Examples tab. The format is basically scale_STAT_NAME=value. I was reluctant to add specific GUI options for the delta-stat values because they are so easy to screw up.

These are the values used if not explicitly set:

scale_strength=150
scale_agility=150
scale_stamina=150
scale_intellect=150
scale_spirit=150
scale_spell_power=150
scale_attack_power=150
scale_expertise_rating=-100
scale_armor_penetration_rating=150
scale_hit_rating=-100
scale_crit_rating=150
scale_haste_rating=150
scale_armor=6000
scale_weapon_dps=50
scale_weapon_offhand_dps=50

Note that when smooth_scale_factors=1 the defaults are half what is displayed above.

Also note that center_scale_delta=1 will perform two runs (at twice the cost) and compare -delta/2 vs +delta/2.

The next release will include these in Examples.simc.

#7 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 18 November 2009 - 12:22 AM

Mostly because I was too lazy to construct entirely new profiles for the Raid_PTR.simc runs. All I did was swap out T9 bonuses for T10 bonuses. For Shaman, I also swapped around some glyphs so we could take advantage of the Fire Elemental.

I should have also overridden some of the talents: The talents are set via an http talent link (both Armory and Wowhead links work). However, that is a bit of a pain just to change a few talents. At its heart SimC is just a CLI app that takes parm=value options in which the "last one wins". While glyphs= is set in the profile, we override it in Raid_PTR.simc. Talents can all be referred to by name: Simply remove punctuation/apostrophes/etc and convert spaces to underscores. So I can add reverbation=x improved_fire_nova=y elemental_focus=z where x/y/z are the number of ranks chosen.

The easiest thing to do is to create a wowhead account because then you can copy the profile, make customizations, and then import/run it, all from the gui. When you bring up the gui there is some documentation on the initial screen that explains (most) of this.

If you don't feel like creating a wowhead account, an alternative is to simply import your Armory as-is and then just cheat a bit.

So....
Bring up the GUI.
Options tab - change patch level to 3.3.0
Import tab
Armory tab - search for your char, select it
Import button (at lower right)
In the Simulation text replace the talents= line with yours above. (or use your existing talents= and override specific talents AFTER the talents= line)
Also in Simulation text you may wish to change the glyphs.
Simulate!


If it would be useful to have an Export to SimulationCraft in Rawr I'd be happy to add that. Just tell me what needs setup. Being able to compare and contrast Rawr with Enhsim has been invaluable, being able to do the same for Simulation craft could be equally valuable.

It may also be that as SimulationCraft covers all classes that I could add that function to Rawr.Base so it was available regardless of class. Would this be helpful?
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#8 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 18 November 2009 - 02:36 AM

If it would be useful to have an Export to SimulationCraft in Rawr I'd be happy to add that. Just tell me what needs setup. Being able to compare and contrast Rawr with Enhsim has been invaluable, being able to do the same for Simulation craft could be equally valuable.

It may also be that as SimulationCraft covers all classes that I could add that function to Rawr.Base so it was available regardless of class. Would this be helpful?


That would be exceptionally helpful. There exists a path right now through character-save to xml. SimC will load Rawr save files when it encounters an option "rawr=character.xml". However, it only extracts the core info: class, talents, glyphs, gear, gems, enchants. Any buffs, debuffs, or module-specific options are ignored.

Clicking through character save and then constructing a config to load the xml is possible, just tedious. An automated launch would certainly be helpful in comparing the underlying models. One drawback of a more generic approach is that there are no controls over the action priority list. SimC will construct a default setup based upon talents/glyphs during character import, and then let users customize it as they see fit. If you wished to setup explicit ability priorities, then you would have to construct a config file such as: http://simulationcra..._51_00_258.simc

The action priority list would be something only understood at the module-level.

#9 Toppers

Toppers

    Glass Joe

  • Members
  • 3 posts

Posted 18 November 2009 - 01:28 PM

I tried yesterday to download Simc and calculate scalefactors for both my own elemental shaman and a standard T9.245 elemental shaman. The values were way off. Intellect and crit is valued by far too much and haste by far too little, why I just don't thrust it at this point.

Int=1.2290 SP=1.5814 Hit=3.9504 Crit=1.4734 Haste=0.3414 Lag=0.0000

#10 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 18 November 2009 - 01:38 PM

I tried yesterday to download Simc and calculate scalefactors for both my own elemental shaman and a standard T9.245 elemental shaman. The values were way off. Intellect and crit is valued by far too much and haste by far too little, why I just don't thrust it at this point.

Int=1.2290 SP=1.5814 Hit=3.9504 Crit=1.4734 Haste=0.3414 Lag=0.0000


I don't get scale factors anywhere near those....... How exactly did you run the tool? How many iterations? What buffs, etc? Spikes in crit/intellect and drops in haste usually mean that you are mana-limited. There is a "waiting" percentage that is reported in the very first table. Was this non-zero? (implying mana-limited)

EDIT: By the way..... Whenever you see a result you don't trust, run without scale factors and set log=1 at the command line. This will run the sim with just one iteration and generate a combat log. That is usually the easiest way to catch bizarre behavior.

#11 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 18 November 2009 - 03:30 PM

Fire Elemental Usage

While the Shaman action lists are certainly easy enough to edit, I do try to come up with reasonable priority systems based upon talents, glyphs, etc.

I am struggling with the Fire Elemental: Should it always be part of the standard default action list? Or should I key off the Fire Elemental glyph? Opinions very welcome....

#12 Zimeron

Zimeron

    Cookies!

  • Members
  • 423 posts

Posted 18 November 2009 - 03:44 PM

Fire Elemental Usage

While the Shaman action lists are certainly easy enough to edit, I do try to come up with reasonable priority systems based upon talents, glyphs, etc.

I am struggling with the Fire Elemental: Should it always be part of the standard default action list? Or should I key off the Fire Elemental glyph? Opinions very welcome....


The change to the cooldown should allow for it to be used on nearly every boss fight now, especially with the reintroduction of trash in ICC. Since SimC is about finding the highest dps, I'd vote to throw it in there. The other option is to treat it how the warlocks did with the Doomguard and have a separate profile for it, but you're looking at adding three more profiles then.

I'd add the three extra profiles to Shaman_TX.simc and replace the current SimCs in the Raid_TX.simc, so we don't have extra bloat in the wikis.

#13 Zamir

Zamir

    Piston Honda

  • Members
  • 197 posts

Posted 18 November 2009 - 03:45 PM

Either way we won't be using the Glyph.
Zamir's Blog // Cataclysm Elemental Primer // TotemSpot Community

Every one of us is, in the cosmic perspective, precious. If a human disagrees with you, let him live. In a hundred billion galaxies you will not find another.

-- Carl Sagan


#14 Rouncer

Rouncer

    Deeper Shade of Blue

  • Allied Members
  • 4,132 posts

Posted 18 November 2009 - 04:05 PM

Either way we won't be using the Glyph.


I wouldn't be so sure about that yet till there is more information on the fights in ICC. Glyphing it means you get to use it on every attempt while learning an encounter which could be a significant boost in dps if the fights mechanics make it so you could drop the elemental's totem and not have to worry about the totems position for Nova purposes.

#15 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 18 November 2009 - 04:32 PM

Speaking of Fire Elemental positioning.

In SimC right now, the Fire Elemental spawns at the Shaman's position. Ele-Shamans default to distance=30 and Enh-Shaman default to distance=3. The very first action the Fire Elemental takes is "travel". I have it moving at 10 meters per second and will not start attacking until it reaches distance=1.

#16 Curved

Curved

    Can't test for fun

  • Members
  • 647 posts

Posted 18 November 2009 - 06:34 PM

I don't get scale factors anywhere near those....... How exactly did you run the tool? How many iterations? What buffs, etc? Spikes in crit/intellect and drops in haste usually mean that you are mana-limited. There is a "waiting" percentage that is reported in the very first table. Was this non-zero? (implying mana-limited)

EDIT: By the way..... Whenever you see a result you don't trust, run without scale factors and set log=1 at the command line. This will run the sim with just one iteration and generate a combat log. That is usually the easiest way to catch bizarre behavior.

This explained a few things (though my scale factors were never quite that bad), so i decided to run a few different simulations to see if i could locate a problem. Running at 10,000 iterations and with all raid buffs active, i always get 0.1% waiting, with a range in results of 4.9%. 50 ApM.
Int	    SP	 Hit	  Crit Haste
Scale Factors	0.0000	1.8961	3.0357	1.3706	0.8723

The odd thing was, setting log=1 with scale factors turned off, i never get the 0.1% waiting, the sim is active 100% of the time, 50.3 ApM. Out of curiosity, i tagged a 500 intel enchant onto my gear, in an attempt to get rid of the wait time (10,000 iterations again). This dropped the range to 3.0%, and clocked 50.1 ApM.

Int	  SP	 Hit      Crit	Haste
Scale Factors	0.0000	1.7877	3.1103	1.1255	0.9941

Edit: I think it would be better to have the elemental shaman between 15 and 20 yards away. We tend to stay in that range for searing, and will need to move to drop searing in range if we start out at 30 yards (after the fire elemental dies).

#17 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 18 November 2009 - 07:03 PM

The first iteration is usually faster than all the others: The time limit is not a hard limit, but rather a target. The sim does not end until the target is dead. Halfway through the first iteration, I examine the damage done and extrapolate the target health.

However....... Bloodlust gets triggered in the last minute which means that 50%->0% goes faster than 100%->50%. (If I use Bloodlust early, then the first iteration is longer than expected.) After every iteration I refine the target health (with a dampening factor). After 100 iterations the target health is usually locked down pretty hard. You can see the distribution of fight lengths at the bottom of the html report.

The larger question: Does it make sense that you are riding the edge of being resource-constrained? Does that track poorly with your in-game experiences?

#18 Moshne

Moshne

    Soda Popinski

  •  Patrons
  • 2,656 posts

Posted 18 November 2009 - 10:11 PM

One issue I'm running into is the Simulation is using a static rotation, while we do not. This is causing the simulation to run me out of mana, when in practice that wouldn't happen.

As ele, we basically are casting CL as part of our rotation until mana becomes a concern. We all have a different way of doing this, but no responsible shaman would run themselves out of mana with a minute left in the fight without first cutting CL out.

The end result of this is that the simulator is giving too much weight to Int at the expense of haste, and overvaluing crit to a small degree. I'm not sure if there is a simple way to do this, but some of the modeling options shaman have come up with are:

Cast CL only after a Lava Burst - probably underuses CL if we aren't OOM at exactly 0% health on the boss
Cast CL on cooldown - unrestrained we run out of mana at some point in any given fight along the way
Cast CL on cooldown, using Thunderstorm on CD -

A more dynamic solution, like my personal one, using CL until my mana drops to below the mobs health percentage is (if my mana is at 25%, and the mobs health is 30%, I stop using CL until the mob drops below me again.) This is extremely difficult to code, but very easy to use in practice and helps me gauge my mana near zero at the end of most fights.

- 13/13 HM -25m - W/Th/Sun 8-12 CST LF Mistweaver
www.somethingwickedguild.com


#19 Curved

Curved

    Can't test for fun

  • Members
  • 647 posts

Posted 18 November 2009 - 10:22 PM

That's not really a question i can give a straight Yes/No answer to. I imagine if i had to cast continuously for 5 minutes, this would track with my experiences. I recall having mana issues when i first swapped from resto to elemental, and didn't really abuse thunderstorm during combat breaks.

However, the only encounter i recall having any mana issues on recently would be a Faction Champions heroic kill that went on for something like 12 minutes. Generally, on say Beasts, i thunderstorm everytime the worms burrow, and right before the stun on icehowl's knockback applies so i never have mana issues. Similar behaviour on jaraxus if i have to move to a target (and its a short encounter anyway). Twins is so short that i finish with a decent amount of mana even with 0 movement, and anub has decent breaks as well.

So yes, the sims resource calculations are very accurate if i played the way its sims, but i generally don't. Its probably just a factor the user has to account for on their own.

Edit: Last time i looked through the coding on shaman.cpp, i believe the sim only cast CL if you have at least 1 charge of Clearcasting up.

#20 Moshne

Moshne

    Soda Popinski

  •  Patrons
  • 2,656 posts

Posted 18 November 2009 - 10:25 PM

I suppose the way I said it wasn't very articulate. That is exactly my problem, I rarely have mana issues. Most of that is because I can think about what I'm doing and the Sim can't, but as a result, the output of the Sim is marginally useful. I can more or less eyeball when an item is an upgrade, but the point of these Sims is for the fine tuning of our gearing. If the Sim only tells me what anyone should be able to see reasonably on their own, I'm not sure it serves any purpose.

I also realize I'm using the GUI version of the Sim, which is not quite as flexible as if I made my own.

EDIT: If it is true that it is only casting when I have a charge of EM up, I am seriously questioning it running me out of mana on a 5 minute fight. I guess I have some more digging to do.

- 13/13 HM -25m - W/Th/Sun 8-12 CST LF Mistweaver
www.somethingwickedguild.com





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users