A multi-agent poker simulation platform built to study and compare different poker bot behaviors through real Texas Hold'em gameplay.
The system supports:
- Human vs Bots gameplay – Play live against multiple poker bots
- Full bot-vs-bot arena simulations – Run hundreds of hands automatically
- Statistical performance comparison – Compare different bot strategies
- Real poker mechanics – Betting rounds, blinds, pots, and showdown resolution
- Modern 2D poker table frontend – Interactive arena interface
The goal of the project is not to create an unbeatable poker AI, but rather to engineer a complete poker engine and experimentally compare different strategic approaches such as probability-based play and bluff-oriented behavior.
The platform was designed around three main objectives:
Implement the complete backend logic required for Texas Hold'em:
- Deck and card management
- Dealer and blind rotation
- Betting rounds
- Pot management
- Turn progression
- Fold / call / raise / all-in actions
- Community card dealing
- Hand evaluation
- Winner determination
- Multi-hand arena progression
The backend acts as a true game engine rather than a simple mock simulation.
The system includes four distinct poker bots with different behavioral models. The objective is to simulate hundreds or thousands of hands and observe:
- Win rates
- Aggression effectiveness
- Bluffing performance
- Risk-reward balance
- Long-term survivability
The frontend allows users to:
Human Games
- Play against up to 9 bots
- Fold / call / raise / all-in
- Continue hands automatically
- Watch showdown results
- See winning hands and community cards
Simulation Arena
- Run bot-only simulations
- Choose bot compositions
- Compare strategies statistically
- Observe long-term performance trends
Core Poker Engine
- Texas Hold'em rules
- Dealer rotation
- Small blind / big blind posting
- Betting round progression
- Pot tracking
- Side-action management
- Automatic showdown resolution
Game Modes
- Human vs Bots
- Bot Simulation Arena
Action System
- Fold
- Check
- Call
- Raise
- All-In
Hand Resolution
- Best hand evaluation
- Winner selection
- Pot distribution
- Arena continuation after each hand
Simulation System
- Multi-hand simulation runner
- Win-rate statistics
- Total winnings tracking
- Comparative bot performance output
The project currently contains four bot archetypes. These are intentionally different behavioral models rather than perfect poker solvers.
Philosophy: A semi-chaotic bot with randomized behavioral tendencies.
Behavior:
- Uses loose probabilistic logic
- Random aggression
- Random bluff frequency
- Inconsistent decision making
Purpose: Acts as a baseline bot, noisy opponent, and comparison reference
Characteristics: Unpredictable, volatile, sometimes irrational, occasionally dangerous
Philosophy: A logic-first poker bot focused on probability and expected value.
Behavior:
- Evaluates estimated hand strength
- Makes conservative betting decisions
- Rarely bluffs
- Avoids unnecessary risk
Purpose: Represents rational poker play and controlled long-term consistency
Characteristics: Stable, defensive, consistent, lower bluff frequency
Philosophy: An aggressive pressure-based bot.
Behavior:
- High bluff frequency
- Large raises
- Attempts to force folds
- Applies psychological pressure
Purpose: Tests whether aggressive bluff-heavy play can outperform rational approaches
Characteristics: Highly aggressive, risky, unstable, can dominate weak tables, can collapse quickly
Philosophy: A hybrid between probability-based play and controlled bluffing.
Behavior:
- Uses probabilistic evaluation
- Introduces calculated bluffing
- Adapts aggression more carefully
- Attempts balanced risk management
Purpose: Acts as the "best overall strategy" candidate
Characteristics: Balanced aggression, moderate bluffing, more adaptive, strong long-term performance
- Language: Java 25
- Framework: Spring Boot
- Architecture: Layered backend architecture
Main Components:
- Game Engine – Turn progression, betting round management, hand lifecycle
- Dealer Service – Deck creation, shuffling, card dealing
- Betting Manager – Action validation, pot contributions
- Showdown Service – Hand evaluation, winner determination, pot distribution
- Bot Engine – Decision making, strategy execution, automated turns
- Framework: Vue 3
- Language: TypeScript
- Build Tool: Vite
Features:
- Clean 2D poker arena
- Simulation dashboard
- Visual comparison tool
- Focus on readability, fast interaction, real-time state visibility
{
"handsRequested": 100,
"handsCompleted": 100,
"botStats": [
{
"botType": "RANDOM_PARAMETER",
"winRate": 0.12
},
{
"botType": "PROBABILISTIC",
"winRate": 0.21
},
{
"botType": "BLUFFING",
"winRate": 0.25
},
{
"botType": "BALANCED",
"winRate": 0.34
}
]
}poker-bot-arena/
│
├── poker-arena-backend/
│ ├── api/
│ ├── bot/
│ ├── cards/
│ ├── dealer/
│ ├── dto/
│ ├── engine/
│ ├── game/
│ ├── hand/
│ ├── player/
│ ├── service/
│ └── simulation/
│
├── frontend/
│ ├── components/
│ ├── pages/
│ ├── api/
│ ├── router/
│ ├── styles/
│ └── types/
│
└── README.md
cd poker-arena-backend
./mvnw spring-boot:runBackend runs at: http://localhost:8080
cd frontend
npm install
npm run devFrontend runs at: http://localhost:5173
Potential future extensions:
- Smarter statistical hand evaluation
- Monte Carlo simulation bots
- Reinforcement learning experiments
- Real multiplayer networking
- Persistent game storage
- Tournament brackets
- Spectator mode
- Real-time websocket updates
- Advanced bot analytics
- Poker replay system
Current state:
- Fully playable poker engine
- Functional simulation arena
- Multi-bot support
- Human gameplay support
- Frontend UI operational
- Statistical simulations operational
This project is currently focused on experimentation, gameplay simulation, and software engineering architecture rather than production-grade online