Elitist Jerks In-Depth Mutilate Cycle Analysis

03/25/09, 4:07 PM   #1
chalon
Founder of the Chalonverse

Chalon
Night Elf Rogue

No WoW Account
In-Depth Mutilate Cycle Analysis

For quite some time we have been operating under the assumption that there is a large difference between the standard 4+r/4+n/(4+n) cycle and a cycle where we perform a fixed number of Mutilates between finishers. The purpose of this thread is both a discussion of how we can better model various cycles, and a discussion of results of said modeling to shed some light on how much of a difference it really makes.

For now, we'll talk about the cycles proposed by songster:

 Originally Posted by songster a) "Normal" 4+r/4+n/(4+n) cycling - i.e. always use 4+ finishers, and Envenom as many times as possible between ruptures. b) "Tight" degenerate cycles: Mutilate / Rupture / Mutilate / Envenom, paying no attention to combo points. This cycle never drops S'n'D and never clips Envenom buffs, but may have an issue overwriting Ruptures and wasting energy on low-point finishers. c) "Middle" degenerate cycles: Mutilatex2 / Rupture / Mutilate / Envenom or Mutilate / Rupture / Mutilatex2 / Envenom, once again paying no attention to combo points. This cycle will sometimes waste a combo point before the Rupture, and sometimes waste energy on a low-point Envenom. It is very unlikely to drop S'n'D, but may have an issue overwriting Ruptures. d) "Extended" degenerate cycles: Mutilatex2 / Rupture / Mutilatex2 / Envenom, paying no attention to combo points. This cycle will never waste energy on low poin finishers, but will waste combo points from good SF/Ruthlessness procs. It also runs a risk of dropping S'n'D.
For simplification in the rest of this post, I will refer to these as Normal, mNmR, mNmmR, and mmNmmR.

My first thought was based on existing tools, the best way to do a comparison would be to use Simulationcraft, as I figured it would be far easier to modify its action queue in order to mimic these various cycles. Of course, this assumes that there is a certain amount of veracity to the Simulationcraft rogue modeling. And while it may not yet be 100% accurate, it does seem to be sufficiently peer-reviewed and mature that it's worth at least checking it out.

So, my initial attempt at modeling the four cycles showed that mNmR was only ~1% less than Normal, mmNmmR was ~2% less than Normal, and mNmmR was the biggest difference, about ~5% less than Normal.

Looking more closely at the numbers, it seems like the reason mNmR is so close to the Normal cycle is quite simply, you perform substantially more Envenoms (~37% more!). And as a result the Envenom uptime is actually higher for mNmR. And even though the energy regen and DPE of each of those Envenoms are lower than in the normal cycle, you actually do enough additional finishers such that your energy gain from Relentless Strikes is almost identical.

At first I thought this might be an error in the way I set something up, but after further thought I suppose it makes sense. If you assume ~45% of the time you will be at <4 CP when doing a Mutilate after your finisher, then it's really not that hard to see that if you decide to do a finisher there instead of another Mutilate, your number of finishers will go up. Basically mNmR compresses the cycle and although there are some damage losses, the damage gains from the compressed cycle seem to make up most of the ground.

However, there's one big question mark regarding the mNmR cycle. Namely, what do you do if you can't overwrite your Rupture due to AP procs, which will happen multiple times even in a short fight. Do you wait until Rupture fades before reapplying it? Or should you just do another Envenom? To be honest, I'm not entirely sure how Simulationcraft is handling that case, so that would have some effect on the numbers. One other thing I can't quite figure out is why mmNmmR has the highest Envenom uptime of all the builds.

Last edited by chalon : 06/01/11 at 11:48 PM.

 03/25/09, 4:27 PM #2 Ticia Piston Honda   Ticia Undead Rogue   Shattered Hand I also modified the Simcraft to attempt to model the "Simple" DPS rotation case, and saw similar results. Surprisingly, using the T7 BiS rogue profile that comes default with SimCraft, I found that the MNMR setup actually produced a very slight dps gain. Looking at all the numbers, I think I see what SimCraft is doing that is causing this (and also why it has higher Envenom Uptime than the "Normal" setup). If you take a look at number of finishers performed for the MNMR case, you see 13.6 Ruptures fired, and 35.8 Envenoms. This means that while the Action queue is forcing 1 mutilate per finisher, it is doing multiple Envenoms per Rupture, so instead of being a simple MN-MR case, it is more like MN-MN-MR and sometimes even MN-MN-MN-MR. This makes a lot of sense, since with a Glyphed Rupture, assuming you get an average of 3.5 CPs after doing 1 Mutilate, you will be firing a rupture that lasts 17 seconds on average. With Mutilate Glyph and T7 4-Piece bonus, Mutilate costs 52 energy. Rupture costs (on average) 7.5, and Envenom 17.5. Therefore, a basic MNMR cycle will need 129 Energy. With Focused Attacks providing ~2.5 energy per second, this cycle will last 10.3 seconds. If you do MN-MN-MR then you have a total of 198.5 Energy, lasting 15.9 seconds, so even with this cycle you will end up clipping rupture some of the time. If that is the case, then you can expand to MN-MN-MN-MR, which is what SimCraft is doing, resulting in 2.6 times as many Envenoms as Ruptures. I haven't yet figured out how to force a specific number of finishers, but it makes sense that the MNMR rotation is just too short, and it might have to be expanded to MN-MN-MR. Another interesting thing I noticed, for the MNMR input, I see a small (~10-15) dps gain by removing the energy pooling from the queue. I'm not sure if this is a bug, as Pooling shouldn't (in theory anyway) lower your DPS, as you are not capping and still using all of your energy eventually.
03/25/09, 4:29 PM   #3
songster
Chief Passenger

Gnome Rogue

Earthen Ring (EU)
 Originally Posted by chalon So, my initial attempt at modeling the four cycles showed that MNMR was only ~1% less than Normal, MMNMMR was ~2% less than Normal, and MNMMR was the biggest difference, about ~5% less than Normal.
Interesting. I'm really surprised by the MMNMMR result, as there's a real risk of dropping S'n'D with that cycle. The comparison of MNME to MNMMR suggests that the Envenom buff uptime factor is more important than I realised. Or it may simply be that in MNMMR, you consistently have problems overlapping Ruptures and losing ticks. Straight MNMR is also at risk of overlapping Rupture uptimes and possibly having trouble refreshing due to AP procs etc.

Could you therefore also take a look at MMNMR and MNMNMR cycles?

 03/25/09, 4:33 PM #4 kwinto Von Kaiser   Kwinto Human Rogue   Shadowsong (EU) Just a suggestion for the sake of readability: MNMNMNMN etc. is unreadable as an acronym, maybe use lowercase "m" for mutilates? Like mNmNmR, mmNmR etc?
 03/25/09, 4:44 PM #5 Ticia Piston Honda   Ticia Undead Rogue   Shattered Hand For mmNmR, I get this: ```DPS Ranking: 6597 100.0% Raid 6601 100.0% Rogue_T8_51_13_07_MMNMR Player=Rogue_T8_51_13_07_MMNMR DPS=6601.2 (Error=+/-10.2 Range=+/-536) DPR=419.8 RPS=15.7/15.5 (energy) Core Stats: strength=123 agility=1271 stamina=1051 intellect=47 spirit=75 health=18022 mana=0 Spell Stats: power=0 hit=9.5% crit=11.8% penetration=0 haste=8.5% mp5=0 Attack Stats: power=3651 hit=7.6% crit=26.8% expertise=6.4 penetration=7.6 haste=8.5% Actions: deadly_poison Count= 0.0| 0.0sec DPE= 1| 9% DPET= 1 DPR= 0.0 Miss=-1.\$% TickCount=83 Tick=2156 envenom Count= 22.7|13.1sec DPE= 8759|10% DPET= 7617 DPR= 250.2 Miss=0.0% Hit=5718 Crit=12224|14965|46.8% Dodge=0.1% instant_poison Count=199.1| 1.5sec DPE= 1874|19% DPET= 1 DPR= 0.0 Miss=0.0% Hit=1629 Crit= 2618| 3177|24.8% melee_main_hand Count=323.6| 0.9sec DPE= 1310|21% DPET= 1418 DPR= 0.0 Miss=14.4% Hit=1017 Crit= 2186| 2675|42.9% Glance= 765|23.9% Dodge=0.1% melee_off_hand Count=416.4| 0.7sec DPE= 748|16% DPET= 1042 DPR= 0.0 Miss=14.4% Hit= 581 Crit= 1249| 1530|42.9% Glance= 437|24.0% Dodge=0.1% mutilate Count=126.4| 4.8sec DPE= 2894|19% DPET= 5031 DPR= 110.7 Miss=0.0% Hit=1556 Crit= 3870| 5182|57.9% Dodge=0.1% rupture Count= 14.3|20.1sec DPE= 8718| 6% DPET= 7579 DPR= 348.7 Miss=0.0% Dodge=0.1% TickCount=120 Tick=1037 Gains: Rogue_T8_51_13_07_MMNMR: energy_regen=2995.2 focused_attacks=814.9 relentless_strikes=834.7 Procs: Rogue_T8_51_13_07_MMNMR: combo_points=170.2|1.8sec darkmoon_greatness=7.0|42.8sec deadly_poisons=280.5|1.1sec ruthlessness=22.8|13.1sec seal_fate=52.0|5.8sec Up-Times: Global: 100.0% : blood_frenzy 100.0% : improved_scorch 100.0% : improved_shadow_bolt 100.0% : mangle 100.0% : master_poisoner 100.0% : savage_combat 100.0% : totem_of_wrath 100.0% : winters_chill Rogue_T8_51_13_07_MMNMR: 36.0% : berserking_mh 29.5% : berserking_oh 46.9% : envenom 100.0% : hunger_for_blood 100.0% : poisoned 80.4% : rupture 99.5% : slice_and_dice 19.2% : tricks_of_the_trade``` So worse than the mNmR (which as I posted earlier is actually expanding into mNmNmR and beyond), but better than the other two.
 03/25/09, 5:02 PM #6 • Aldriana Mike Tyson   Aldriana Night Elf Rogue   Doomhammer So, fundamentally, I think there's two questions that need to be answered here, and as they're somewhat orthogonal, I'm going to address them independently. First, there's the question - largely addressed by Chalon - of what moves we actually want to do. How big a finishers do we actually want to use? Should we use 4+ point finishers? 3+ finishers? 1-Mutilate finishers? Historically the answer has been 4+ (and note that the answer may be different for envenoms and ruptures) - but I don't believe we've actually done much recent analysis of that to verify that it has not changed. Fundamentally, there's, by my count, 7 different sizes of finishers that can arise in Mutilate cycles - we can use n+ finishers (that is, finish at n or more CP) for each of the 5 values of N, or we can use k-Mutilate finishers - that is, always perform a finisher after k Mutilates, regardless of CP - with the only two reasonable values of k being 1 and 2. It's also worth noting that, for instance, a 5-pt finisher and a 2-Mut finisher are in practice very similar, but there is a theoretical difference between them. Historically, 4+ finishers have been the best, with 2M being the usually proposed alternative. This is not necessarily optimal, but it frequently has been during prior investigations. But it is probably worth verifying that that is still the case. There may be value in utilizing an approach akin to the one found here in terms of breaking down the efficiency of finishers of various sizes, as doing an exhaustive breakdown of all possible finisher patterns in a simulator is likely inefficient. It's also perhaps worth noting that as a relatively less mature tool, the simulator may yet contain bugs, and it is thus worth externally verifying it's findings before accepting them as fact. The second issue, which frankly I'm far more interested as I think it's something we haven't paid nearly enough attention to historically is the notion of *when* moves are performed. There's always been this notion that energy pooling can be used to optimize DPS, but there's never been a lot of analysis as to how much of an influence this actually is. Consider, for the moment, the constraints on our cycle that, in an ideal world, would always be true: 0) SnD never drops. Well, obviously. 1) Maximal rupture uptime. Particularly with the 4/5 T8 set bonus being what it is, rupture is just a lot better finisher than any other save SnD; thus, it is reasonable to posit that one gets maximal DPS by increasing rupture uptime - pooling such that ruptures can be cast end to end with only minimal space between them. 2) Maximal Envenom buff uptime. In particular, it is natural to assume that by having one's Envenoms be nonoverlapping, one has a higher uptime of the buff and thus gets more Instant Poison damage out of cycles. 3) Maximal number of Mutilates performed during Envenom buff uptime. This is related to point 2, but it it subtly different; for instance, one can maximize mutilates during envenom by always pooling up to 60-70 energy before each Envenom, so you can perform 2 Mutilates before the buff drops. But this may not be optimal given the other considerations. 4) Envenoms should occur immediately after a DP tick. Doing otherwise basically causes implicit DP downtime, which, particularly with the 2/5 T8 set bonus, seems likely to be a significant DPS loss. 5) Pooling energy to do extra moves during temporary buffs - i.e., Reflection of Torment, Berserking, Greatness, etc. So: all these factors increase DPS, but they sometimes work at cross purposes. Which are most important? Which should we focus on doing? Is it worth accepting concessions in terms of *which* moves we're doing to gain more flexibility in when we do them? Is there ever a situation where these timing considerations make it optimal to cap out on energy? I think we can make reasonable guesses at most of these questions, but we honestly don't know. We've never really modeled this. And I think it's time we do so, as even if each of those is only a 1% DPS boost (as has been estimated for #4), that's still 200 DPS when all 4 are taken as a group. And when compared with the differences we see in terms of changing finisher size - which are of the same order - it seems to me that we can no longer ignore these considerations if we truly wish to optimize our DPS.
03/25/09, 5:26 PM   #7
chalon
Founder of the Chalonverse

Chalon
Night Elf Rogue

No WoW Account
 Originally Posted by Ticia If you take a look at number of finishers performed for the MNMR case, you see 13.6 Ruptures fired, and 35.8 Envenoms. This means that while the Action queue is forcing 1 mutilate per finisher, it is doing multiple Envenoms per Rupture, so instead of being a simple MN-MR case, it is more like MN-MN-MR and sometimes even MN-MN-MN-MR. This makes a lot of sense, since with a Glyphed Rupture, assuming you get an average of 3.5 CPs after doing 1 Mutilate, you will be firing a rupture that lasts 17 seconds on average. With Mutilate Glyph and T7 4-Piece bonus, Mutilate costs 52 energy. Rupture costs (on average) 7.5, and Envenom 17.5. Therefore, a basic MNMR cycle will need 129 Energy. With Focused Attacks providing ~2.5 energy per second, this cycle will last 10.3 seconds.
Hmm. Well, I tried to account for this in the action queue, but it's very well likely that's actually what's happening. My understanding is Simulationcraft in its current form cannot just absolutely force a cycle to occur in a certain way. You have to use conditions to try to force it to get into that behavior. However, it should be possible to modify the Simulationcraft code to add additional conditions to provide that fixed cycle functionality.

 Originally Posted by Aldriana So: all these factors increase DPS, but they sometimes work at cross purposes. Which are most important? Which should we focus on doing? Is it worth accepting concessions in terms of *which* moves we're doing to gain more flexibility in when we do them? Is there ever a situation where these timing considerations make it optimal to cap out on energy? I think we can make reasonable guesses at most of these questions, but we honestly don't know. We've never really modeled this. And I think it's time we do so, as even if each of those is only a 1% DPS boost (as has been estimated for #4), that's still 200 DPS when all 4 are taken as a group. And when compared with the differences we see in terms of changing finisher size - which are of the same order - it seems to me that we can no longer ignore these considerations if we truly wish to optimize our DPS.
I definitely agree there's a lot more questions to answer regarding the cycles than simply mNmR vs. Normal and so on. I kind of wonder how many of these questions cannot be reasonably solved with a formulation-based approach, though. How could a spreadsheet formulation take into account whether or not you're pooling energy and for how long and at what points?

Last edited by chalon : 03/25/09 at 5:49 PM.

03/25/09, 5:35 PM   #8
songster
Chief Passenger

Gnome Rogue

Earthen Ring (EU)
 Originally Posted by Aldriana So: all these factors increase DPS, but they sometimes work at cross purposes. Which are most important? Which should we focus on doing? Is it worth accepting concessions in terms of *which* moves we're doing to gain more flexibility in when we do them? Is there ever a situation where these timing considerations make it optimal to cap out on energy? I think we can make reasonable guesses at most of these questions, but we honestly don't know. We've never really modeled this. And I think it's time we do so, as even if each of those is only a 1% DPS boost (as has been estimated for #4), that's still 200 DPS when all 4 are taken as a group. And when compared with the differences we see in terms of changing finisher size - which are of the same order - it seems to me that we can no longer ignore these considerations if we truly wish to optimize our DPS.
I would agree with everything you've posted. I think it is certainly worth directing some modelling effort at estimating the DPS gains from points (1) to (5), to see if any of them are worth it.

However, I do think you're putting an overly optimistic gloss on the endeavour. I've bolded a couple of contradictory statements in your summary. I would rather say that since the factors work at cross purposes, it is not possible to take them all as a group, and we can therefore conclude that the combined effect of all the factors will be very substantially less than the sum of the parts. For example, timing Envenoms to maximise Envenom buff uptime will make it difficult to time it to DP ticks. Timing an Envenom to a DP tick constrains the timing to a window of at most a second, which will almost totally preclude timing it to other temporary buffs.

This being so, if the individual optimisations are themselves only worth 1% damage, the combined effect will be no more than a couple of percent.

Coupled with the observation that (if the above simulations are accurate) you can use an mNmNmR fixed cycle with next to no DPS loss, this means that the difference between a perfectly played rogue and a mousewheel macro may well be less than 5%, perhaps as little as 2%. Yes, optimising for that is "worth it" in the abstract, but it's also profoundly depressing that so much effort buys so little gain.

 03/25/09, 5:43 PM #9 • Aldriana Mike Tyson   Aldriana Night Elf Rogue   Doomhammer Thing is, while they do at times work at cross purposes, they're not mutually exclusive either. While it may not be as simple as 1% + 1% + 1% + 1% = 4%, I don't think they're entirely mutual exclusive either - I think 2.5 to 3% is totally within reason. And given our DPS is approaching 6000, that puts the DPS benefit around 150-200 DPS, as I asserted. In terms of modeling this: yes, it's going to be hard. But hard doesn't mean impossible - it's just a matter of finding the right approach.
 03/25/09, 6:20 PM #10 dedmonwakeen Bald Bull   dedmonwakeen Undead Priest   No WoW Account This may sound absurd...... but supporting fixed cycles would actually represent a significant coding investment. That being said..... if the Rogue theorycrafting community think it really is imperative, then I will take a serious look. I'm assuming you would still need a "priority list"..... but there would be composite actions that represent a cycle: actions+=/action1 actions+=/cycle(action2/action3/action4) actions+=/action5 This essentially amounts to switching between the following action lists as one of action 2/3/4 get executed: actions=.../action1/action2/action5/... actions=.../action1/action3/action5/... actions=.../action1/action4/action5/... This has been on my list for a long time, but at relative low priority. If it is deemed necessary, I will elevate the priority.
 03/25/09, 7:22 PM #11 chalon Founder of the Chalonverse   Chalon Night Elf Rogue   No WoW Account Well, while rewriting it to take into account a fixed cycle may be difficult, what I was thinking moreso was adding some additional conditional variables for the purposes of emulating a fixed cycle.
 03/25/09, 9:03 PM #12 Tinwhisker Bald Bull     Tinwhisker Dwarf Rogue   Scarlet Crusade In regards to SimulationCraft supporting fixed cycles. What is the possibility of supporting a "trail" conditional? Basically keeping a trail of the last 3 moves performed and basing the next move on that? You could keep the conditionals for something like trinket usage, HfB and other things that are not expressly cycle related and create a conditional whose result is Mutilate, Rupture, or Envenom based on the order of the past 3 occurrences of those moves. I really haven't looked into the working of SimulationCraft except for a cursory glance so I'm not even sure this is possible, but I thought I'd throw it out there. Rather than creating a new code base to support fixed cycles, that may be one way to work around it.
03/25/09, 9:27 PM   #13
dedmonwakeen
Bald Bull

dedmonwakeen

No WoW Account
 Originally Posted by chalon Well, while rewriting it to take into account a fixed cycle may be difficult, what I was thinking moreso was adding some additional conditional variables for the purposes of emulating a fixed cycle.
 Originally Posted by Tinwhisker In regards to SimulationCraft supporting fixed cycles. What is the possibility of supporting a "trail" conditional? Basically keeping a trail of the last 3 moves performed and basing the next move on that? You could keep the conditionals for something like trinket usage, HfB and other things that are not expressly cycle related and create a conditional whose result is Mutilate, Rupture, or Envenom based on the order of the past 3 occurrences of those moves. I really haven't looked into the working of SimulationCraft except for a cursory glance so I'm not even sure this is possible, but I thought I'd throw it out there. Rather than creating a new code base to support fixed cycles, that may be one way to work around it.
I like these ideas very much..... They actually provide more flexible functionality than a fixed cycle. I have a work project peaking at the moment, but I should be able to add trail conditionals in about a week. Thanks for the very constructive feedback. If I have any other questions, I'll PM them directly so as not to clutter this thread.

 03/26/09, 12:24 AM #14 chalon Founder of the Chalonverse   Chalon Night Elf Rogue   No WoW Account So after trying it out on Patchwerk today, I really don't see how it would be viable to do a strict mNmR cycle. There's simply too many occurrences of being unable to overwrite the Rupture, and too much remaining time to just pool on every rotation. If we can then assume that you need to do a variable number of Envenoms with either cycle, the question then really becomes should the cycle be 3+n/3+r/(3+n) or if it should be 4+n/4+r/(4+n).
 03/26/09, 1:15 AM #15 Wodahs Don Flamenco   Wodahs Human Rogue   Lightbringer I really wish rupture would get looked at by the devs, and this is one example of why. The inability to refresh/overwrite/downgrade rupture is terrible, when working it into a cycle. I dont care if the rupture that has 3 seconds left will tick for less than the 5 point rupture Im ready to drop for a full duration. I dont understand the logic, this should have been changed back when hot stacking was put in in 1.12.

 Elitist Jerks In-Depth Mutilate Cycle Analysis