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

103 lines
No EOL
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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