Real Time Balls
A shared ball pit in the browser. Everyone online is a ball, one of them is it, and touching someone passes it on. A university game jam idea from 2015, rebuilt from scratch a decade later.
The game
Everyone who has the page open is a ball in the same pit. One of them is it and wears a flashing ring. Touch somebody and it becomes theirs.
The single rule that makes it work is that the catcher is faster than everyone else. Running away is not a strategy, so the pit stays in motion rather than settling into a stalemate where nobody can be caught. New arrivals get a brief grace period and appear faded while it lasts, so you cannot be tagged the instant you load the page.
Roll with the mouse or WASD. That is the entire control scheme.
The server is Go, with players connected over WebSockets, which is what lets a dozen balls share one pit without anybody waiting on a refresh.
Scores and badges
A HUD tracks tags made, how long you have gone untagged, and your best run. Behind it sit two leaderboards — most tags and survival — and a set of badges that reward the situations rather than the totals: First Blood, Hot Potato, Cornered, Chain Reaction. Others are long grinds, like staying untagged for five minutes.
You pick a ball colour from a set of twelve or mix your own hex, and three initials, which is the right amount of identity for a game you join by opening a URL.
None of that scorekeeping lives in the game server. The leaderboards and badges run on my own game services API, part of VCurl, so the Go server stays responsible for the pit and nothing else.
Two versions, eleven years apart
It started as a game jam idea at the University of Lincoln in 2015 and was rebuilt from scratch in 2026. The presentation leans into that: an arcade cabinet with an INSERT COIN button on the splash, a CRT bezel around the pit, and pixel type throughout.