- 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
103 lines
No EOL
3.1 KiB
Markdown
103 lines
No EOL
3.1 KiB
Markdown
# 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 |