rusty_marvin/docs/ROADMAP.md
Jan-Peter v. Hunnius 17d0440c86 feat: refactor AlgorithmicEvaluator to stateless, add game engine module and holdem_sim CLI
- Refactor AlgorithmicEvaluator from stateful Arc<Evaluator> wrapper to
  pure stateless evaluator with zero-allocation construction
- Extract shared evaluation logic into pub(crate) methods, eliminating
  ~220 lines of duplicated code from Evaluator
- Add game module: table, hand runner, tournament, bots, config, stats
- Add holdem_sim CLI binary crate for running simulations
- Convert MathEvaluator to thread-safe singleton with Arc<Inner> pattern
- Replace heap-allocated combination generation with const-generics
  stack-based approach in AlgorithmicEvaluator::evaluate_n_card_hand
- Add thiserror 2 dependency for GameError derive
- Update docs: README, ACHIEVEMENTS, ROADMAP
2026-05-18 15:12:34 +02:00

3.1 KiB
Raw Blame History

Poker AI Testbed & Live Server Roadmap

Step-by-Step Implementation Plan

Phase 1: Foundation

Basic poker engine

  • Game state management
  • Game Info and Player Info traits
  • Event reporting and action scheme
  • Basic game rules (NL/FL/PL)

Configuration system

  • TOML configuration structures
  • Bot parameter configuration
  • Game type configurations (Cash/SNG/MTT, buyins, blinds, hands per level, etc.)
  • Simulation parameters (hands/tournaments count, buyin thresholds for bots, etc.)

Phase 2: Simulation Testbed ✅

Goal: Mass simulation capability

Testbed core ✅

  • Tournament/cash game runners ✅
  • Result collection and analysis ✅
  • Bot interface with early folding capability ✅
  • Bot performance metrics & summary ✅
  • Simulation and game factories ✅
  • Configuration-driven experiment runner ✅
  • Seed control for reproducibility ✅

Remaining for mass simulation

  • Parallel simulation engine (multi-threading)
  • Result visualization (charts/graphs)
  • Rebuy/addon support for tournaments

Phase 3: Bot Framework

Goal: All bot types with playability enhancement

Bot core implementations (partially complete — basic bots exist)

  • Generic helper functions for strategies (basic bots done: CallBot, FoldBot, RaiseBot, RandomBot)
  • Modular Strategy per stage and game situation
  • Rule-based bot with configurable thresholds – port from Java
  • Nash equilibrium calculator for SNG endgame – port from Java
  • Statistical tracking bot – port from Java
  • Logging of decision-making process

Advanced bots

  • GPU acceleration for mass rollouts
  • Hand-reading opponent modeling (possibly with GPU integration)
  • Flop playability precomputation & score integration
  • Basic reinforcement learning skeleton
  • Hybrid bot combining multiple approaches
  • Factory for bot and sub-strategy composition
  • Genetic algorithm for bot evolution (via configuration files)

Phase 4: "Unit Test" Framework

Goal: Bot behavior can be tested against predefined hands

Hand Replayer

  • Poker Tracker style hands
  • Action comparison to expected outcome
  • Selection of hands from different sources (books)
  • Action likelihoods (multiple replays)

Phase 5: Live Server Infrastructure

Goal: Real-time bot deployment

Server core

  • Network protocol design (TBD: WebSocket, JSON, MQ, etc.)
  • Actions (incl. early fold and table selection), events (incl. table switches and available tables)
  • Client registration and management
  • Game state synchronization
  • Action dispatch system
  • Event logging for analysis of problems

Client adapter system

  • Client factory for different poker environments
  • Screen / protocol scraping adapters
  • Table selection logic
  • Configuration-driven game selection

Phase 6: Integration & Polish

Goal: Production-ready system

Advanced features

  • Real-time strategy adaptation
  • Multi-table coordination
  • Bankroll management
  • Risk adjustment based on results

Optimization and deployment

  • Performance profiling and optimization
  • Error handling and recovery
  • Documentation and examples
  • Deployment scripts and configuration