Building a Server‑Authoritative Poker Engine: Phase 1 of 3
I'm a high school student developer, and for the past few months I've been building a real‑time multiplayer Texas Hold'em game from scratch. This is Phase 1: a fully functional local prototype that runs on Node.js + Socket.IO.
Important: This is not deployable yet. It's a local‑only testing prototype. I have two more major phases planned before it's ready for public release on platforms like Itch.io, CrazyGames, and Poki.
🛠️ What's Built So Far
- Real‑time multiplayer: up to 12 players per table
- Full game logic: side pots, rebuys, all‑in, showdown
- Spectator mode: watch games and request to join (host approved)
- 20‑second turn timer: auto‑fold on timeout with visual countdown
- Floating emojis: YouTube‑live style reactions
- Sound effects: synthesised via Web Audio API (no external files yet)
- Host controls: kick players, edit chips, change password, toggle rebuys, change max players
- Responsive UI: works on desktop and mobile
🧠 Technical Highlights
The entire game state is managed server‑side to prevent cheating. Some of the more interesting parts I had to figure out:
- Side‑pot algorithm: calculating multiple pots when players go all‑in
- Hand evaluator: ranking 5‑card hands from 7 cards (with kickers)
- Turn timer: server‑enforced 20s limit with auto‑fold
- Spectator flow: separate chat, request‑to‑join with host approval
🔮 What's Coming (Phases 2 & 3)
- Phase 2: major content and mechanics additions (the fun stuff).
- Phase 3: complete aesthetic overhaul and UI polish, making it ready for public platforms.
💬 Why I'm Sharing Now
I want early feedback on the core logic, UX, and any bugs before I build more on top of it.
Since I'm a student doing this in my free time, I'll respond to feedback and fix reported issues within 2 weeks (best case). If I can't make that window, I'll reply to let you know when I can, and ping you again once the fix is live.
🚀 Try It Yourself
git clone https://github.com/zihanlei/hokus-pokers
cd hokus-pokers
npm install
npm start
Visit http://localhost:3000 in your browser, host a game, and open a second tab to join as a player.
📦 Repo
https://github.com/zihanlei/hokus-pokers
Open to all feedback – feel free to open an issue, start a discussion, or email me directly at zihanlei0512@gmail.com. Thanks for reading!
Top comments (0)