Delve
The Delve (codename: YES-hybrid) pipeline treats game balance as an empirical systems problem, using D&D 4th Edition tactical roles as the functional heuristic for piece design. By mapping roles like the Defender, Striker, and Controller into Betza notation, a compact movement algebra, the project translates high-level RPG intent into precise, engine-native “atoms” of play. This allows a piece like the Defender to be encoded not by a stat block, but by a specific movement and capture radius that creates a mathematical zone of friction on the board. This formal rulespace is then locked via Forsyth–Edwards Notation (a standard board snapshot), ensuring that every experimental run starts from a canonical, reproducible state.
To validate these mappings, a C# harness executes depth-anchored match sweeps using the Fairy-Stockfish engine, running hundreds of engine-vs-engine games at a fixed search depth. This rigorous anchoring is vital because what appears balanced at a shallow glance often collapses once Stockfish is allowed to search deeper. Methodologically, each sweep acts as a structured perturbation study: by adjusting a single lever, such as a piece’s mobility, the board size and blocked squares, or the “monster” count, while keeping other factors constant, the system measures the resulting shifts in win rates and decisiveness. This process allows the design to move past “vibe-based” balancing, using automated optimization (SPSA) to converge on a shippable specification that is mathematically robust under high-level tactical search.
This rigorous analysis is no guarantee of “fun,” but it provides the essential tactical floor required for a game to be playable at all. Computational balance ensures that the game doesn’t collapse under its own weight, but it cannot dictate the tension of a near-miss or the satisfaction of a clever maneuver. By mathematically eliminating “solved” positions and game-breaking imbalances, the engine simply clears the field so that actual play can occur without being cut short by a broken ruleset.
https://github.com/mbutler/yes-hybrid
