Poker Website

Full-stack multiplayer Texas Hold'em engine with a C++17 WebSocket server, Monte Carlo AI opponents, and an animated browser frontend — deployed live

🎮game⚙️systems🌐web📅 May 2026💻 C/C++⭐ Featured

Technologies Used

C++17Crownlohmann/jsonOMPEvalGSAPHTML/CSS/JavaScriptCatch2DockerFly.io

About This Project

A from-scratch Texas Hold'em engine built in C++17, served over WebSocket to a browser frontend with no install required for guests. The backend implements complete no-limit Hold'em mechanics including side pots, all-in run-outs, and showdown evaluation. A heuristic AI was replaced mid-project with a Monte Carlo equity engine using OMPEval, running rollouts against randomized opponent ranges to make real poker decisions. The lobby supports up to 10 seats with configurable human/AI mixes, blind sizes, and starting stacks. Multi-room support allows up to 5 simultaneous games with a live room list on the home screen. Reconnect tokens stored in localStorage let players rejoin on refresh without disrupting the game. The frontend is a fixed-coordinate canvas scaled uniformly by CSS transform, animated with GSAP for card deals, chip movements, and a win overlay that highlights the exact best-five cards. Deployed on Fly.io via a multi-stage Docker build with automatic WSS/HTTPS at the edge.

Key Features

  • Complete no-limit Texas Hold'em engine in C++17 — side pots, all-in run-outs, full showdown evaluation
  • Monte Carlo equity AI using OMPEval: runs rollouts against randomized opponent ranges; AA≈85%, 72o≈34% — matches known poker math
  • Three AI difficulty levels (Easy/Normal/Hard) with pot odds, positional bonuses, bluff rates, and randomized think delays
  • Browser multiplayer over WebSocket (Crow server) — zero install for guests, up to 10 players per room
  • Multi-room support: up to 5 simultaneous games with a live room list and one-click join
  • Reconnect via localStorage token — refresh mid-game and automatically rejoin your seat
  • GSAP-animated frontend: card deals, chip movements, fold animations, and a win overlay highlighting the exact best-five cards
  • 880+ passing Catch2 unit tests across model, controller, evaluator, AI, and network layers
  • Deployed live on Fly.io via multi-stage Docker build with automatic HTTPS/WSS

Project Gallery

Images

Game Play with Help Menu Open

Game Play with Help Menu Open

Setup Game Menu

Setup Game Menu

Game Play with Raise Controls Open

Game Play with Raise Controls Open

Game Play (not your turn)

Game Play (not your turn)

Create/Join Game Screen and Main Menu

Create/Join Game Screen and Main Menu

Videos

Full gameplay demonstration

Project Info

Primary Language
C/C++
Categories
gamesystemsweb
Completion Date
May 2026
Aidan Sabatini - Portfolio