Hey all, I'm Swol, the main theorycrafter at AMR. I wanted to stop by and post some information regarding S2M simulation and the new gearing strategy that we are recommending for shadow after the Nov 14th hotfix.
First I'll talk about the gearing strategy. You can find our new weights for Ursoc-style fights here:
http://www.askmrrobot.com/wow/simula...3?weights=true
As you can see, I'm finding Crit, Haste, Intellect, and Mastery to all be very close in value. Crit is slightly edging out Haste right now, which is really the big change/surprise. I've spent about two full days now doing almost nothing besides shadow priest simulations over and over again... and we are in a situation where stat "weights" don't really describe what we want all that well. Lets take a very brief moment to remind ourselves what stat weights really are:
The idea behind stat weights is that your DPS will scale more or less linearly with stats. You can create stat weights a number of different ways. AMR does this by collecting 1000 data points randomly sampled from sets of gear with varying stat allocations, and then we use multiple linear regression to find the actual weights. This generates a linear function that we use to predict DPS in the form of:
weight1 * stat1 + weight2 * stat2 + ...
But, what about a spec like shadow that has a definite non-linear scaling for haste and crit? This predictive model will not do very well across a wide range of gear. So, you will often see TC'ers try to use "soft caps" on the weights to band-aid the results and make them a bit better. In the case of shadow right now... just one soft cap won't help us. There is a constantly varying relationship between crit/haste. Sometimes you will do more damage with them equal, sometimes more by favoring haste, sometimes more by favoring crit. In order to really score a set of gear well, we would need a non-linear function that describes this relationship over a range of values. We're actually working on that at AMR, but, it's not ready yet, so, we need to make due with good old stat weights for now.
Many TC'ers have posted about how the value of Haste drops off dramatically for S2M somewhere in the 11-12k rating on gear range. I'm finding this to still be true. One of the benefits of these latest weights is that by valuing Crit ever so slightly above Haste... you really don't need to worry about a Haste "cap" - you'll realistically never reach it if you are following this gearing advice. But, if you do find yourself swimming in Haste gear, I do suggest that you still keep it below 12k.
My best advice right now is to aim for gear with equal amounts of Crit and Haste. If you are doing more fights where you use bloodlust at the end of the fight during S2M, favor Crit a bit more. If you are doing fights where you lust on the pull more often, favor Haste a bit more. Our default single-target weights are for the Ursoc (H) script, which uses bloodlust during the enrage at the end of the fight, which is why you see us recommending Crit slightly above Haste.
We also have a set of weights for Mythic+ now, which favors Haste heavily:
http://www.askmrrobot.com/wow/simula...4?weights=true
Mythic+ weights are a discussion all to themselves, though.
Now lets talk about S2M simulation itself. First off, I have incorporated numerous optimizations to the shadow rotation for S2M in the past two days. If you have been unhappy with the simulation results for shadow in the past on AMR, give it another try - the DPS is substantially higher now.
The first thing a lot of people will say is: "Hey, I know I can get longer S2M durations than what the simulation shows." This is true. But, your average damage will decrease in a simulator by attempting to go for the longest S2M possible. I'll try to explain, and I apologize if I fail horribly.
The duration of your last voidform can be highly variable, especially as you push it longer and longer. A stretch of zero shadowy apparition procs can create an insanity deficit that drops you out earlier than usual. The slightly fluctuation or delay in your rotation can screw it up, etc. In a simulator, we could set it up to attempt to find the longest possible S2M duration you could get. Lets say it is possible to get up to 150 seconds on a god-like lucky parse. But, then the average duration is, say, 125 seconds and the minimum is 100 seconds. Most of the iterations will be around 125 seconds +/- 5 seconds or so. You'll get a few bad ones that are shorter, and a few really good ones that are longer. But, on average, you are dying 25 seconds before the fight ends... which is awful. So, in a simulator, you want the average S2M duration to be as close as possible to the maximum. This means that, on average, you die just as the fight ends. Being a bit conservative results in much higher average DPS.
In-game, you have no way to guess the end of the fight at 120+ seconds out with accuracy greater than +/- 10 seconds (or more really). The game is too random. So, your DPS can vary greatly from fight to fight. You can get great parses that are better than what a simulator shows.
I purposefully limit the simulator to a more conservative S2M duration. This increases the average DPS, but, it also cuts out the really high-end (and really low-end) iterations. Besides increasing average simulated DPS, the other reason I do this is because introducing large volatility into simulations makes them ridiculously slow. Slow to the point that it is prohibitive to even do any theorycraft with the results.
Below is a link to my latest rotation and I'll give a few notes on it for those who are interested.
http://www.askmrrobot.com/wow/theory...w&version=live
1.) If you expand the "Learned Variables" you will see two learned values. Those track how long our non-surrender voidforms are and also how long our surrender phase is. Note that the SurrenderDuration variable only learns the minimum and average values. The rotation has to specify a maximum.
2.) There is a function called S2MStartTime that is used to tell the rotation when to start S2M. If you click on that function you can see what it is doing, and it is ugly. What I did was I ran hundreds of simulations at varying levels of stats and found the optimal S2M start times. I stored those in a matrix that I reference from this function, and then layered some rules of thumb on top of that to adjust the start time based on talents, legendaries, bloodlust, etc. I will continue to refine this function over time, but, this is a good start. I couldn't find some "smooth" function to predict when to start so I ended up just going with empirical data instead.
3.) I made improvements to when to use Power Infusion during Surrender. Previously, I had been keying this decision off of a certain number of voidform stacks, but, this really needs to vary with your stats. So, instead I am finding that the best time to use it is when you are about 2/3 of the way through your typical S2M duration.
4.) The logic for using SW: Death with Reaper of Souls is a lot better now - it will make sure you don't sit at max charges, but otherwise save it for times when you are in danger of dropping out of VF during a MB or MF cast.
Another couple of notes:
Some people who really dig into the simulations might ask why the minimum value for S2M duration is so low. I spent a lot of time trying to figure that one out... eventually I managed to get a log of one of these horrible iterations. Basically... it is just possible to have terrible luck and end up with a very short S2M duration, especially since the rotation is saving cooldowns like PI for later in S2M instead of using them to guard against the worst case scenarios. I went through the logs line by line to make sure the simulator was working. These really unlucky cases are very rare - so rare you will probably never encounter them in-game. But, they are possible, which is why you see the low minimum values.
The AMR simulator will have more fluctuation in S2M duration than if you were to use SimC. This is because we have built it to play more like a human (although an insanely good human), who is not perfectly consistent. The relevant piece of this for shadow is when you cast Mind Flay. During Surrender, you will cancel your mind flay when void bolt is ready. A typical pattern you see is like: VB, MB, MF (for 1 GCD/2 ticks), VB. You don't want to clip the second tick of that 1 GCD mind flay. In order to do this, it is not possible to cast VB exactly when the second mind flay tick happens. There is some human reaction time/delay involved because you can't "queue up" the Void Bolt without clipping the tick. We don't use a constant value for that, we use a random value within a realistic range. In a rotation like S2M, very small fluctuations in timing can lead to results that are noticeably different.
Hit me up anytime to talk theorycraft - I'm always open to suggestions for improvement.