Tombstone
bsg-prototype
Apr 2020 – Jul 2020 · age 38
What it was
The Battlestar Galactica board game, written in an early version of Adama, Jeff's own language, so friends who had moved away could play in their browsers. Every rule is straight-line code that stops and asks a person: decide().await() appears fifty-four times, and the wait itself is saved with the game. Crisis cards are rows of pointers to code. Hidden loyalty, hands and the quorum are guarded by the language's privacy rules and per-viewer projections instead of by trust. A lobby launches the game, a canvas client draws the board, and one checkbox answers every pending question at random. It was played. The last saved game stopped on July 16, 2020, mid-turn, waiting on a die roll.
Wins, for the age
- At thirty-eight, Jeff let a game with traitors, secret hands and votes design a language, then finished the game, every phase implemented and actually played.
- Rules as a coroutine that blocks on humans, with the wait persisted, arrived the same year as Temporal's human-in-the-loop signals (2020). A mammal who needs sleep built a narrator that does not.
- Privacy as a primitive: per-viewer projections, peeks retracted on acknowledgement, shuffled public votes. It found on its own what boardgame.io's playerView (2018) had already found.
- A random player hidden in a checkbox, a fuzzer in the spirit of Android's UI Exerciser Monkey (2008), rediscovered because a four-player game is hard to test alone.
What it taught
- The forcing example designs the language. Hidden hands, votes and a waiting narrator exercised what the platform would need for five years.
- Identity is a product problem. Four players needed four browser identities, and the platform later answered with principals.
- A language without local collections makes you write scratch tables, and every one of them became a feature request.
- Privacy in the compiler is not privacy on disk: the hidden Cylon was readable in the saved document. Nor is a finished rulebook a correct one; a jump added population.
Genealogy
Ancestors: Cardboard IO: the server owns the rules, the client only draws. Goat: the first attempt at this game across a room of screens. Goat BSG: rules as awaited commands, now on a new runtime. Lib Quest: outcomes that wait on events and can fail. Zen Risk: the oldest instinct here, a board game on a screen. Descendants: Adama Language: channels that await a person, privacy per viewer, labels as values. Hearth: state machines and questions that wait on people, for a ranch. RPG Spine: a whole game's state as one schema-defined document.
Epitaph
Here lies bsg-prototype, a narrator that waited patiently on four browsers. The last game paused for a die roll on a summer evening in 2020, and nobody rolled.