Why simulate WoW combat at all, what value does it provide to players, the gap between theorycrafting spreadsheets and full discrete simulation, history of WoW simulation tools (SimulationCraft, Raidbots), what WoW Lab aims to do differently (open source, community-driven, sustainable).
Problem Statement
The core challenges: extracting and maintaining game data from undocumented DBC files across patches, accurately modeling combat mechanics with thousands of interacting spells/auras/procs, achieving statistical significance in reasonable time (performance), making simulation accessible to non-technical players, distributing computation across community-contributed nodes.
Solution Approach
High-level overview of the solution: a Rust-based discrete event simulation engine compiled to both native (for distributed nodes) and WASM (for browser), a data pipeline from DBC files through transformation to Postgres, a Next.js portal for configuration and visualization, distributed computing via volunteer nodes, real-time coordination through Centrifugo.
flowchart TB
subgraph data [Game Data]
DBC[WoW DBC Files] --> Parse[Rust Parser]
Parse --> Transform[Transform Layer]
Transform --> DB[(Supabase Postgres)]
end
subgraph engine [Simulation Engine]
Engine[Rust Engine] --> WASM[WASM Build]
Engine --> Native[Native Build]
end
subgraph portal [Portal]
DB --> App[Next.js App]
WASM --> App
App --> Config[Simulation Config]
end
subgraph compute [Distributed Computing]
Config --> Sentinel[Sentinel Scheduler]
Sentinel --> Nodes[Worker Nodes]
Nodes --> Native
Nodes --> Results[Results]
Results --> App
endNext steps