Catan, searched 700k times a second
AlphaSettler
Sep 2026 – Present
AlphaSettler simulates Settlers of Catan in Rust with every rule enforced, then searches it with information-set Monte Carlo tree search. Catan hides information, from opponents' hands to the development-card deck, so each decision samples worlds consistent with what the bot has actually seen and searches across them. A seat-rotating arena over common random numbers compares bots without seat luck, and PyO3 bindings expose the engine to Python.
the engine takes 68 ns per step with trades off, against Catanatron's 20,691 ns on the same machine
ISMCTS that samples hidden hands consistent with each player's observations, at about 700,000 simulations a second
an arena that rotates each bot through all four seats over common random numbers, so a comparison is not decided by seat order
what i built
- a Rust Catan engine with full rule enforcement and every legal move encoded as an integer from 0 to 664
- ISMCTS with belief-state sampling, PUCT selection and batched leaf evaluation
- a bot arena with seat rotation, common random numbers and multi-threaded matches
- PyO3 bindings and a CLI for matches, statistical comparisons and self-play
- an adapter to Catanatron 3.3, so both engines can be tested against each other