All work / Personal
Leadlight Online stained-glass board game for 2–4 players
An original tile-drafting board game: draft glass from kiln plates and set it into your arched window. Play against bots, on one screen, or online with friends from a shared link.
What it is
Leadlight is a board game I designed and built for playing with friends in the breaks. Each player is a glazier: on your turn you take all the glass of one colour from a kiln plate, and the leftovers slide to the centre. Glass waits on a 3×3 light table until the end of the round, when you lift straight lines of it as panels and drop them into the columns of your arched window. Long connected runs score, glass may never sit on its own colour, and jewel panes reward the colour they ask for.
One rules engine everywhere
The rules, the turn clock and the bots live in one TypeScript module shared by the server and the browser. Every move is an action the engine validates before it touches the state, and it answers with events that the table animates. Bot and same-device games run entirely in the browser; online rooms run the same engine on the server, which stays authoritative. A simulator plays hundreds of bot games through the engine and checks its invariants on every move.
Rooms and hosting
Online play is a single Node process: Next.js serves the pages and a WebSocket server holds the rooms in memory, with rate limiting, idle-room cleanup and a token-protected admin dashboard. It ships as a Docker image.