Start here

Armies research notebook

Armies is a Stratego engine, a game server and a ladder of players. The engine plays the competitive rules at 84 million random moves per second on this workstation's 32 threads. The players climb from random play to the method of the 2025 Ataraxos paper, which beat the most decorated human player 15 to 1 with 4 draws after training on 16 H100s for a week. The question here is how far a single machine with one GPU can get along that path, and which ideas transfer: learned setups, advantage filtering, dynamic damping, learned beliefs, test-time search, or DeepNash's regularised dynamics instead.

The ladder

RungPlayerPromoted whenStatus
1random, greedyThe baseline arena runs and greedy beats randomComplete: greedy 90% against random
2expectimax over sampled hidden configurationsBeats greedy on 200 paired gamesComplete: 69.5%, promoted; the sweep keeps 16 worlds at depth 2, and belief rollouts (19% against it) stay a baseline
3ntuple learned leaf under the same searchBeats the hand-written leafPlanned
4Ataraxos pipeline: setup, move and belief transformers with damped self-play and searchSmoke run beats greedy, then scaled runs beat each lower rungSmoke complete: pipeline works, 60% against random, rule not met
5DeepNash's R-NaD update under equal computeCompared head-to-head with rung 4Planned
6kluss subgame solving without common knowledge, then an opponent portfolio and a learned beliefBeats expectimax at equal time per move; the portfolio's crossing budget; the belief's likelihood and matchProposed, delegated
7A NashDreamer infoset model as a beliefWithin 5% of the belief decoder's held-out likelihoodProposed, bounded

Research ladder standings

PlayerEloIntervalGamesW / D / L
Expectimaxexpectimax15351 to 1460343 / 7 / 110
Greedygreedy13931 to 1540303 / 8 / 229
Rolloutrollout12830 to 010019 / 0 / 81
Ataraxos smokeataraxos-smoke10900 to 08018 / 26 / 36
Randomrandom10000 to 0700127 / 219 / 354
N-tuple leafntuple00 to 000 / 0 / 0
Games, wins, draws and losses over every registered game of September 18, 2026 (the 16-world depth-2 cell of the sweep counts for the expectimax rung) plus a 60-game random-expectimax pairing; Elo is a logistic fit over the pairwise effective scores with random anchored at 1000; rungs with zero games are unmeasured; built by scripts/build_second_pass_assets.py.

Read the concepts

Start with why Stratego is hard and the rules the engine enforces, then the engine. The search rungs are determinization and expectimax and n-tuple evaluation. The paper's method runs from information states through self-play reinforcement learning, dynamic damping, the setup, move and belief networks, and test-time search. The alternative is DeepNash, and evaluation explains how both papers and this ladder are scored.

Approaches

Each rung has a page with its question, plan and decision rule: baselines, expectimax, n-tuple, Ataraxos, DeepNash, subgame solving without common knowledge, world models, the pipeline on one machine and initial placements. The research program orders these into theories with decision rules and a compute plan, and the evidence boundary says what is measured today, and game records and replays explains the replay library the site plays back.

  1. 2026-09-18complete

    Belief rollouts against expectimax

  2. 2026-09-18complete

    Expectimax samples-by-depth sweep

  3. 2026-09-18complete

    Self-play smoke run

  4. 2026-09-18complete

    Expectimax against greedy

  5. 2026-09-18complete

    Baseline arena: greedy against random

Five registrations frozen and run on September 18, 2026; each links to its report and has a run record.

Run experiments and contribute

Build and test the engine with cargo test --workspace in ../server. Play a registered match with the arena, for example cargo run --release -p armies-arena --bin matchup -- --red greedy --blue random --games 200 --rules training --out ../research/runs/baseline.json, then write the record and report as described in filing an experiment. Training commands are in the quickstart. Validate pages and assets with python3 scripts/check_content.py before handing over.