hdgame.me
Personal Project — Full-Stack Multiplayer Game
- Next.js
- TypeScript
- Three.js
- Node.js
- Colyseus
- Docker
- Problem
- Real-time multiplayer games need the client to feel instant while staying consistent with an authoritative server — any divergence between the two shows up immediately as rubber-banding.
- Solution
- A monorepo for a multi-title 3D game platform: one authoritative Node.js game server and one Next.js/Three.js client, both stepping the identical deterministic physics simulation from a package they share, deployed as containers.
- Architecture
- A `packages/shared` module holds every constant and the physics simulation step, imported by both the Colyseus game server and the Next.js client — so client-side prediction and server reconciliation run the same physics rather than an approximation of it. Docker containerises both halves for deployment.
- Challenge
- Keeping client and server physics identical. The shared-package structure exists specifically because a second copy of any force or constant, drifting even slightly, is what makes a client and server disagree about where something is.
- Result
- A live, playable multiplayer platform with client-server synchronisation, physics simulation, and WebSocket networking running end to end.