For any frequent visitor at Altered Time, it is easily noticed that a lot of the Mage theorycrafting and analysis is based on SimulationCraft. This has not always been the case. As recent as early Mists of Pandari, Mage simulations were considered inaccurate, unreliable, correlate poorly to in-game results, and generally a poor source of information. Things have improved a lot since then, because the community decided to reach out and participate in SimC. We made sure that all Mage spells are modelled properly, and that the simulated Mage player, or "Robomage" as I like to call him, plays like we do.
The unfortunate side effect of fixing SimC, is that Robomage now has an extremely complicated Action Priority List (APL). To those of you new to the term, the APL is a list of actions that tells Robomage how to use his spells. It's a long list of rules that come together and form the rotation of the class, such as "use Arcane Missiles if at 4 Arcane Charges and below 93% mana" or "use Prismatic Crystal followed by Arcane Power and start the burn phase".
The problem with a complicated APL is that it gets harder and harder to maintain. As time goes on, only a tiny minority of players can really understand how it works. As these players start taking breaks or retiring from the game for whatever reason, all this knowledge is lost. This becomes a huge problem when a new expansion or big in-game patch hits, making it necessary to update the APL with new rotations due to items, talents, or other effects.
This isn't just a theoretical problem, because we've experienced it once before. When Altered Time decided to participate in the SimulationCraft project, we found the Robomage completely lacking in explanations for why and how things work (or more often, don't work). We've spent more than a few days completely reinventing wheels. On more than one occasion, we wished Kavan/Lhivera had left some personal notes to explain voodoo magic behind certain lines of code. However, we can't place any blame on them. They didn't have a Mage community to support them, or a place where they had an audience that could pick things up where they left off. That's very different from today, when Altered Time is virtually a "class hall" to host our information. Let's not make that same mistake again.
Over the next few weeks, we're going to publish a number of posts in each spec forum that explain how Robomage does his magic, along with explanations of why, what we tried, what doesn't work, and what we think can be done better. The goal is as I described above: anyone who cares enough to understand the magic behind Robomage, should be able to understand enough about the current APL design, to the point where they can feel comfortable tinkering with it and offering input on how to improve things. Be warned that these threads will contain otherworldly, absolutely absurd amounts of text. If understanding details behind Mage theory is not your thing, they're not for you.
Here is a list of links to the APL Deconstruction threads. I will keep this list up-to-date as we add more.
Arcane APL: APL Deconstruction: Arcane
APL Philosophy for the Inclined
Sidetracking a little bit, I feel it is worth making clear the purpose of an APL. Quoting from all default APLs,
My approach to APLs is to provide a basic level of support to all primary forms of raiding gameplay. Wide coverage means we will sometimes see unexpected discoveries. However, this also means we need to support a lot of combinations for common glyphs and talents with a single action list, which very challenging. How does Nether Tempest play with Prismatic Crystal? How does Frost Bomb interact with Thermal Void? All these are challenging questions that often get ignored by the community, generally regarded as "subpar" options. As recent as 6.2 though, we've seen how "subpar" talents such as Unstable Magic can suddenly rise to the top due to patch changes. If we had done the same as the community and ignored Unstable Magic as unworthy of attention, we would have been unable to discover how it would become strong, prior to the patch being launched.# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
Another frequently raised issue is when players ask us to support specific setups with tailor-made actions, either for openers, or interesting trinket combinations, or exotic spell combos with weird effects. A lot of these requests lose sight of what SimC is meant to do. SimC is meant to provide a meaningful and good simulation, which I define as generating useful output that is relevant to gameplay. Nearly all the time, these minor enhancements have little to no effect on the resulting information generated. On the other hand, adding fragile, tailor-made logic that may or may not work for all players, or complicated tricks that require exotic sequences, cause the sim to lose reliability and narrow the audience. In addition, players often fixate on RNG-dependent tricks that have a chance to generate ridiculous success, but don't do any evaluation of failure rates and expected payoffs, nor do they craft any contingency plan for when things fail. Just like any other form of programming, simulations must consider all possible paths of logic. You cannot simply discard bad RNG cases as "failed attempts". You cannot consider only the cases where you win a lottery ticket, and ignore the rest since they "don't count".
There are many pitfalls in APL development. These goals and principles helped me craft the current Mage APLs, and it is my hope that whoever decides to participate in the project will keep these same goals in mind.