Yahtzee: Real-Time Multiplayer Game

React & TypeScript  //  Django Channels  //  WebSockets  //  PostgreSQL  //  Redis

01. Overview

A full-stack, real-time multiplayer implementation of the classic dice game, built around a server-authoritative architecture rather than a trusting client. Every roll, hold, and scoring decision is validated and computed on the backend, with the server acting as the single source of truth for game state; the client never decides what happened, only what it's asking to happen next.

The app supports three modes from one shared engine: offline pass-and-play on a single device, live private lobbies where friends join over a room code and play in real time over WebSockets, and a ranked mode with a working Elo rating system laying the groundwork for competitive matchmaking.

02. Real-Time Multiplayer Engineering

The core challenge was keeping every connected player's view of the game consistent and cheat-proof without a client ever holding authority over the outcome.

03. Game Engine & Frontend

The frontend had to support two very different data sources, local state and a live server, behind one identical UI.

04. Data Model & Ranked Groundwork

Beyond gameplay, the project includes a schema and rating system designed to support competitive play without needing to be re-architected later.

View Source on GitHub