Related Work
History of WoW simulation tools and the two fundamental approaches to gear optimization
2 min de lecture
The history of WoW combat simulation, the two fundamentally different approaches that emerged, and why it matters for understanding the design decisions behind WoW Lab.
The Two Schools
- Two fundamentally different approaches to answering "what gear should I wear": discrete event simulation and stat weighting
- Both try to solve the same problem but make very different trade-offs in accuracy, speed, and complexity
- Understanding the difference is essential context for why WoW Lab exists and the choices it makes
Discrete Event Simulation
- Simulate combat second by second (or more precisely, event by event), tracking every spell cast, buff tick, proc trigger, and cooldown
- No shortcuts. Model the actual game loop. Roll the dice. Let mechanics interact naturally
- Inherently accurate when modeled correctly because it mirrors what actually happens in-game
- Downside: computationally expensive, requires thousands of iterations for statistical significance
- This is what SimulationCraft pioneered and what WoW Lab does
SimulationCraft
- The gold standard for years. Open source C++ engine, community maintained
- Action Priority Lists (APL) for rotation logic, same concept WoW Lab uses
- Raidbots made it accessible by wrapping SimC in a web UI with cloud compute
- Limitations: single-threaded C++ codebase, difficult to extend, no browser execution, aging architecture
- SimC proved the approach works. The question was whether the tooling around it could be modernized
Early Ask Mr. Robot
- Early versions used a discrete simulation approach similar to SimC
- Provided gear optimization on top of simulation results
- Later pivoted away from discrete simulation entirely (covered below)
Stat Weights and Weighted Engines
- The alternative approach: instead of simulating combat, assign a numerical weight to each stat point
- "1 point of Crit is worth 0.8 DPS, 1 point of Haste is worth 0.95 DPS" and so on
- Score gear by multiplying each stat by its weight and summing. Higher score means better gear
- Fast. Trivially fast. No simulation needed at all once you have the weights
- The problem: weights are only accurate at the exact gear level they were computed for
Where Stat Weights Break Down
- Stat interactions are non-linear. Haste makes Crit better because you cast more spells. Crit makes Haste better because each spell hits harder on crit
- At different gear levels the relative value of stats shifts, sometimes dramatically
- Stat weights are a linear approximation of a non-linear system. Works okay near the measurement point, gets worse the further you move from it
- Breakpoints, tier set interactions, trinket procs, and talent synergies make this even messier
- You end up needing to re-simulate to get new weights anyway, which defeats the purpose
QE Live
- Stat weight based optimization tool for WoW
- Fast results, no waiting for simulation runs
- Trade-off: accuracy suffers in exactly the situations where players need the most help (comparing very different gear sets, evaluating tier pieces, trinkets with procs)
Newer Ask Mr. Robot
- Pivoted to a stat weight and analytical model approach
- Faster than discrete simulation but inherits the fundamental accuracy limitations of the approach
- Made the deliberate trade-off of speed over simulation fidelity
Why Discrete Simulation Wins
- When specs have 10+ interacting buffs, procs, and cooldowns, there is no closed-form solution
- The only way to know for sure is to simulate it and let the mechanics play out
- Stat weights can lie. Simulation results converge to truth given enough iterations
- The real challenge is not whether to simulate but how to make simulation fast and accessible enough that players don't need to settle for approximations
- That is the problem WoW Lab sets out to solve
Étapes suivantes
