Back to Work
Real-Time Multiplayer Board Game Private Play Build

Market District

A private, synchronous 3–5 player negotiation board game for remote game nights, built as an unofficial non-commercial web adaptation inspired by Chinatown.

Market District interface preview

Overview

Market District is a private, synchronous negotiation board game for 3–5 players. It recreates the social tension of trading properties, money, and shop permits across a shared district while moving hidden information and rule enforcement into a server-authoritative online experience. It is an unofficial, non-commercial project with original branding, writing, board art, and shop art.

Verified evidence

UAT players
5
Rounds completed
6
Feedback fixes retested
4

Problem

Physical negotiation board games are difficult to play across different homes because their hidden information, simultaneous deals, shared board state, and turn transitions do not translate cleanly to a video call.

Target Users

Small groups of friends playing private online board-game sessions

My Role

Solo full-stack developer and game systems designer

Designed the original product identity and responsive game table, implemented the six-round rules engine, built private-room multiplayer and atomic trade flows, and connected the React client to a stateful Cloudflare Worker backend.

My exact contribution

  • Modeled the complete six-round game loop as a reusable TypeScript engine covering property selection, trading, placement, income, pause/resume, and final scoring.
  • Built password-protected rooms, signed player sessions, reconnectable WebSocket state, per-player hidden views, and host-only room controls on Cloudflare Workers and Durable Objects.
  • Designed the dense desktop game table, responsive player drawers, ledger, shop reference, board interactions, trade desk, and final-results experience.

Key Features

  • Private password-protected rooms for 3–5 players
  • Real-time WebSocket synchronization and reconnectable sessions
  • Server-authoritative six-round game engine
  • Hidden property and shop hands projected per player
  • Atomic money, property, and shop-tile trade offers
  • Interactive district board with shop placement and ownership states
  • Automatic shop income, ledger history, and final ranking
  • Site access gate and host-only pause, resume, and room controls

Challenges & Trade-offs

  • Preserving hidden information while keeping every browser synchronized to one authoritative match
  • Making multi-asset trades atomic so money, lots, and shop tiles cannot partially transfer
  • Translating a dense physical board and reference tables into a readable responsive interface
  • Handling reconnects, duplicate commands, stale versions, and host controls without desynchronizing the room

Lessons Learned

  • Multiplayer game UI must expose server state clearly without leaking private player information
  • A pure rules engine makes complex turn transitions easier to test than logic embedded in React components
  • Multiplayer playtesting exposed rule and visual-discoverability gaps that automated coverage could not reveal
  • Temporary tunnels are useful for private validation but should not be represented as durable production hosting

Results

Delivered a complete six-round multiplayer flow and validated it through a five-player UAT that reached final scoring. Four feedback-driven interface and rule-clarity fixes were implemented and retested. Shared privately through temporary Cloudflare Quick Tunnels rather than a permanent public deployment.

Proof Artifacts

Technologies

React TypeScript Vite Cloudflare Workers Durable Objects WebSockets SQLite Zod Vitest Playwright