CASE STUDY / 03 PLAY.GANBATE.IO · ALPHA Active Public Alpha · Sep 2026 – Present

Multiplayer Hold’em & game platform (Alpha)

Founder & Sole Engineer · Active Alpha

Server-authoritative Rust multiplayer sessions, auditable fairness, and 2D/3D tables.

Role & contribution

Founder & sole engineer owning the 62-crate Rust authoritative server, reusable game-core / realtime-core crates, PostgreSQL persistence, and React/TypeScript 2D & 3D clients.

Current status & real usage

Live public alpha at play.ganbate.io supporting 2–11 player private Hold’em invite rooms, solo/shared table modes, and instant 2D/3D switching; core session/replay crates published on GitHub.

Engineering & product case study

Problem & workflow context

Real-time multiplayer card games break player trust if clients can observe unrevealed cards, if transient WebSocket drops corrupt table state, or if heavy 3D scenes block low-power devices from joining an invite link.

Decision & rejected alternative

Separated pure deterministic state transitions and monotonic GameVersion optimistic concurrency into a zero-I/O Rust library (game-core) paired with commit-reveal seeded RNG checkpoints and bounded cursor replay (realtime-core). Rejected stateful Node.js timers/floating-point pot math and rejected client-side state reconciliation so rejected actions never mutate state or consume randomness.

Failure encountered & diagnosis

Under simulated packet loss and rapid tab reconnects, returning clients occasionally re-applied a turn event twice or missed an action when a reconnect raced an in-flight room broadcast. Diagnosed with sequence-numbered envelope traces and resolved using epoch-bound DeliveryCursor recovery that atomically falls back to a player-filtered snapshot whenever a client cursor trails the ring buffer.

Verification, role & current status

Verified with Rust property tests, per-seat serialization privacy audits (proving opponent hole cards never enter wire envelopes prior to showdown), and golden-hand replay fixtures where SeededRandom checkpoints reproduce identical pot settlements.

Architecture & reproducible evidence

  • Reproducible core contract: Current state + validated action + deterministic rules + injected SeededRandom → next versioned state + ordered events.
  • Exact integer minor-unit chip accounting (value-core) prevents rounding drift across side-pot splits.
  • Dual 3D table + instant 2D Performance mode so players on non-WebGPU browsers can join the same live Rust session.

Technology stack

RustReactTypeScriptPostgreSQLWebSockets
Evaluating Abe for an engineering role?

See all 9 roles, Penn M.A.S. status, U.S. citizenship/relocation logistics, and printable résumé on one page.

Open Recruiter View & Public Résumé →