Retribution Simulations, 7.2.5

Some people asked me to do a review of the simc and AMR rotations for Retribution, see if they are still holding up or need some work. Here is a summary of the two rotations and my tests.

I have created both rotations in both simulators:

#AMR Simulator
AMR rotation: Not Available
simc rotation: Not Available

#simc simulator
simc rotation: default rotation built into simc, importing a character will copy it into the input window, though note it will sometimes not have all the logic, you need to go into the class module C++ file to see all of it

AMR rotation:

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=flask_of_the_countless_armies
actions.precombat+=/food,type=lavish_suramar_feast
actions.precombat+=/augmentation,type=defiled
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=old_war

# Executed every time the actor is available.
actions=auto_attack
actions+=/holy_wrath,if=!raid_event.adds.exists|raid_event.adds.in>180
actions+=/judgment,if=holy_power>=3|(holy_power>=2&buff.the_fires_of_justice.up)|buff.divine_purpose.up
actions+=/call_action_list,name=cooldowns
actions+=/crusade,if=holy_power>=4|(equipped.137048&holy_power>=3)|target.time_to_die<=40
actions+=/avenging_wrath
actions+=/shield_of_vengeance
actions+=/blade_of_justice,if=set_bonus.tier20_2pc&holy_power<=3-set_bonus.tier20_4pc
actions+=/divine_hammer,if=set_bonus.tier20_2pc&holy_power<=3-set_bonus.tier20_4pc
actions+=/divine_storm,if=debuff.judgment.up&spell_targets.divine_storm>=2&(!talent.crusade.enabled|cooldown.crusade.remains>gcd*2)
actions+=/call_action_list,name=st_spenders,if=spell_targets.divine_storm<2&(!talent.crusade.enabled|cooldown.crusade.remains>gcd*2)
actions+=/wake_of_ashes,if=holy_power<=1
actions+=/arcane_torrent,if=holy_power<=4&(buff.crusade.up|buff.avenging_wrath.up|cooldown.crusade.remains=0|cooldown.avenging_wrath.remains=0)
actions+=/blade_of_justice,if=!set_bonus.tier20_2pc
actions+=/divine_hammer,if=!set_bonus.tier20_2pc
actions+=/hammer_of_justice,if=equipped.137065&target.health.pct>=75
actions+=/consecration
actions+=/zeal
actions+=/judgment
actions+=/crusader_strike

actions.st_spenders=execution_sentence
actions.st_spenders+=/justicars_vengeance,if=buff.divine_purpose.up&debuff.judgment.up&!talent.final_verdict.enabled&!equipped.137020
actions.st_spenders+=/divine_storm,if=debuff.judgment.up&buff.scarlet_inquisitors_expurgation.stack>=25
actions.st_spenders+=/templars_verdict,if=debuff.judgment.up

actions.cooldowns=potion,name=old_war,if=(buff.crusade.up&buff.crusade.remains<=25)|buff.avenging_wrath.up
actions.cooldowns+=/blood_fury
actions.cooldowns+=/berserking

The simc version of the AMR rotation above does not have specific lines for particular on-use trinkets, but they would be easy to add if you would like to try it out with different sets of gear. Add them to the actions.cooldowns sub-rotation. Usually the simc code injects lines for the on-use items via a hard-coded switch statement in the class module.

#Quick Summary
Now that you have the rotations for reference, and before we get into details, here’s a super quick summary of how these rotations perform:

in simc: both rotations are good, but the AMR rotation tends to get a tad more DPS in more cases (around 0.5-1%)

in AMR: both rotations are good, but the AMR rotation is significantly better for all cases (around 1-3%)

Feel free to test it out yourself. Be sure to exactly match the settings when comparing. It is very easy to overlook something.

I also did comparisons of the two simulators to each other using the same rotations, and got very similar results. Both simulators are executing all of the game mechanics identically (as far as I can tell), and getting nearly identical DPS numbers when configured similarly. (I’ll probably make another post about how to do this, for those who are interested. If you get wildly different results from the two simulators, the problem is your setup, not the simulators.)

#Rotation Review
The rest of this post will be an in-depth review of the two rotations, and some observations that I found interesting while going through the exercise of comparing them.

###SimC Default Rotation
It was interesting to look in more detail at the default simc rotation – it uses a very different style than my own rotations. I think this is in part because several authors have worked on it over a long period. You can definitely tell where things have been added on to the existing rotation in such a way as to not disturb the workings of what was already there.

What we have at this point is essentially a “laundry list” of specific rules that good players have come up with over time, and then through trial and error, the priority of this list has been tweaked.

The downside of this approach is that not much refactoring has been done. There are a lot of redundant conditions that could be removed, and other conditions that could be simplified. Here is a good example:

actions.priority+=/divine_storm,if=debuff.judgment.up&variable.ds_castable&buff.divine_purpose.react
actions.priority+=/divine_storm,if=debuff.judgment.up&variable.ds_castable&buff.the_fires_of_justice.react
actions.priority+=/divine_storm,if=debuff.judgment.up&variable.ds_castable

These three lines appear exactly like this in the default rotation. You only need the last one… whenever either of the other two are true, it will also be true. Whoops :wink:

Ultimately I found this rotation to be hard to modify. Most changes that I made resulted in slight DPS losses, and the overall “flow” of how retribution plays in-game was hard for me to map onto this set of rules.

Furthermore, this rotation does not lend itself very well to human execution. You would really need an addon to assist you. For example, there are 9 separate rules for when to use Templar’s Verdict… that’s a lot to remember! Also, some of the conditions require pretty specific timing (e.g. Execution Sentence). And in general, the rules are “mixed up” quite a bit… some rules for a spell are high in the list, then the same spell is lower in the list with different conditions… hard to keep it all straight when playing.

###AMR Rotation
The goal of the AMR rotation was to improve on existing rotations in three ways:

  1. Do more DPS
  2. Make something a human can perform without addon assistance
  3. Avoid unnecessary complexity

The goal of making a rotation human-friendly is a style choice. Some people don’t care about this – they are perfectly fine programming an addon to essentially tell them exactly which button to press and when. I prefer not to do this for several reasons: configuring such addons is a huge pain, they are of highly variable quality, some stuff doesn’t translate that well from a simulator to the game, and it’s a really boring way to play the game.

So my stance is this: if I can make a human-friendly rotation that does not sacrifice DPS, I do it. Then you get the best of both worlds.

####AMR Rotation Design Process
I design all of my rotations by starting from something extremely basic that captures the major design intent of the spec. For retribution, it is something like this:

  1. keep Judgment up
  2. use big cooldowns
  3. use holy power spenders
  4. use holy power generators

Here is an example of a ridiculously simple retribution rotation. It won’t try to do anything fancy to maximize any particular legendary or trinket or set bonus or talent:

simple rotation

This rotation gets hilariously close to the optimized AMR and simc rotations: within 3% DPS in most cases. I did a random test with 4T20, whisper, chain, and specter of betrayal, thinking all that special stuff would surely make such a simple rotation fall apart… nope, still within about 3%. To put that into perspective, if you are the #20 ret pally on mythic goroth right now, losing 3% DPS would drop you to #64. If you are in the 90th percentile on mythic goroth, it would drop you to the 86th percentile.

So this is the first big point I want to make: we’re really splitting hairs here. People seem to think that these super-complicated rotations will somehow magically increase their DPS by 50%, or catapult them into the highest ranks on WCL… nope. Sorry. We’re doing this more as a mini-game to satisfy ourselves than to realize any huge gains in-game.

From there, you can cut the difference in half with just two simple tweaks:

  1. Line up your potion with Crusade
  2. Wait until you have enough Holy Power to use a spender before popping Crusade

Now we’re within around 1.5%. That’s really close, and really simple.

From there, we tried out other simple tweaks that are easy to execute but make sense, and squeezed out another 1-2% DPS.

####Avoiding Complexity
If you look at the ability usage between the AMR rotation and the simc rotation, it is almost identical. The differences are extremely small… one rotation might get one more of spell A and one less of spell B, or vice versa. It really is that close.

But the AMR rotation achieves this with less than half the lines and about one third of the conditions. This flows from the design process that we use, where we start from the basics and then build on it, rather than starting from something that is already complex and tacking more onto it.

Nothing about the AMR rotation is a “revelation” to any good retribution player. I’m not trying to teach good players anything new here. What I am trying to do is show people how to write better rotations, which is a completely different skill than being a good WoW player. This is a better rotation in every way, and we highly recommend that simc use it as the new default.

And of course keep tweaking it! A rotation is never really “done”… somebody can always find a small tweak here or there to improve it. But we would also say that you should keep this in check: if a super complicated set of conditions results in a 0.2% DPS gain in 50% of tested cases… is it really worth it?

#Conclusion
The AMR retribution rotation, to our knowledge, is the best available in any simulator. Hopefully the simc translation above will help make it easy for the simc community to iterate on these improvements, and encourage some collaboration going forward.

Please feel free to respond to this post with discussion about retribution simulation, suggestions for improvement, whatever! I don’t care if you are new to this or a veteran, a good idea is a good idea and should be made available to all users of the simulator.

2 Likes