Welcome to the AlphaSettler wiki
The feature-by-feature encyclopedia of AlphaSettler, generated from commit
baf5f69. 12 articles.
About AlphaSettler
AlphaSettler is a Settlers of Catan bot project that simulates the board game in Rust and uses Information-set Monte Carlo tree search to find strong moves. It is designed for researchers and bot developers who want to benchmark Catan-playing strategies and compare them against other implementations. The project decomposes into a core game engine with complete rule enforcement, a tree search subsystem that samples hidden information, and a match system that evaluates bots across multiple games with common random numbers. Python bindings and a command-line interface expose these components to the research layer. AlphaSettler includes a subsystem for dice rolls and development cards, a rules engine tracking road and army awards, and integration with Catanatron for differential testing and cross-engine validation.
From the featured article
Project documentation is the collection of design specifications and implementation plans for AlphaSettler, a Settlers of Catan bot project decomposed into sub-projects for a Rust game engine, benchmark harness, search-based bot, and Colonist platform integration. The specifications define the architecture, correctness testing strategy, and done criteria for each sub-project, with plans documenting implementation timelines and decision rationales.
Did you know...
- ... that the rules engine tracks the longest road and largest army awards, which grant victory points only when held, and updates these awards incrementally as players build and their roads are cut by opponent settlements? (Game rules)
- ... that it powers the arena system where AlphaSettler bots face Catanatron baselines, importing Catanatron's position into the AlphaSettler engine, asking the bot to choose, and mapping the choice back to a Catanatron action? (Oracle translation)
- ... that property tests verify that random games finish, maintain game invariants, and detect violations of victory point rules? (Performance testing)
- ... that the engine specification covers the fixed-size game state, a fixed action space of roughly 700 actions, randomness model with independent RNG streams for dice and steals, and three-layer correctness testing: rule unit tests, property tests, and differential testing against Catanatron? (Project documentation)
- ... that the 3a search bot specification describes a single-observer ISMCTS tree keyed by the bot's information set, an exact belief tracker over joint hands based on public events, and a heuristic evaluator with features including victory points, production pips, hand size, and progress toward awards? (Project documentation)
Recently updated
- Action space 2 October 2026
- Bot arena 2 October 2026
- CLI interface 2 October 2026
- Game engine 2 October 2026
- Game outcomes 2 October 2026
Feature map
flowchart LR n0["Action space"] n1["Bot arena"] n2["CLI interface"] n3["Game engine"] n4["Game outcomes"] n5["Game rules"] n6["Oracle translation"] n7["Performance testing"] n8["Project documentation"] n9["Python bindings"] n10["Random bot"] n11["Search algorithm"] n0 --- n1 n0 --- n11 n0 --- n3 n0 --- n4 n0 --- n5 n0 --- n7 n1 --- n10 n1 --- n11 n1 --- n3 n1 --- n4 n1 --- n5 n1 --- n9 n10 --- n11 n2 --- n6 n3 --- n10 n3 --- n11 n3 --- n4 n3 --- n5 n3 --- n7 n3 --- n9 n4 --- n10 n4 --- n11 n4 --- n5 n4 --- n7 n4 --- n9 n5 --- n11 n5 --- n9 n7 --- n11 n9 --- n11 click n0 "/wiki/alphasettler/wiki/action-space/" click n1 "/wiki/alphasettler/wiki/bot-arena/" click n2 "/wiki/alphasettler/wiki/cli-interface/" click n3 "/wiki/alphasettler/wiki/game-engine/" click n4 "/wiki/alphasettler/wiki/game-outcomes/" click n5 "/wiki/alphasettler/wiki/game-rules/" click n6 "/wiki/alphasettler/wiki/oracle-translation/" click n7 "/wiki/alphasettler/wiki/performance-testing/" click n8 "/wiki/alphasettler/wiki/project-docs/" click n9 "/wiki/alphasettler/wiki/python-bindings/" click n10 "/wiki/alphasettler/wiki/random-bot/" click n11 "/wiki/alphasettler/wiki/search-algorithm/"
All articles lists every article as text.