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.
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.
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.
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.
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.
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.
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.
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!
Originally Posted by Suggestive
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.
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 ShockAndAweEnhancement 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.
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://simulationcraft.googlecode.co...51_00_258.simc
The action priority list would be something only understood at the module-level.
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.
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.
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.
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....
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.
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.
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.
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.
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).
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?
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.
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.
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.
You can add in the option for CL to only be cast when you have CC up, but it's not enabled by default. Over the course of 1000 iterations, assuming BIS gear, you do more dps spamming CL and possibly going oom at very end, then only using CL when CC is up.
Also, the sim knows your mana levels and knows the boss health percentage, so adding an option to only cast CL when your mana percentage is higher then the bosses is something that can be done.
Until then, I added an option to chain lightning called "conserve", which will only cast when your mana percentage is greater than the bosse's health percentage. It resulted in a net gain for simming my own character and no change, as expected, in the BIS profiles. It's not perfect, but it's the closest we have to player's intuition at the moment.
If you build SimC yourself, it's in 3859, otherwise you'll have to wait till dedmonwakeen releases the next build.