Jeffrey M. Barber

Tombstone

Goat

Late 2018 โ€“ mid 2019 ยท age 36โ€“37

What it was

A monorepo of twelve C# projects and a Node.js game master, all named after goat breeds and Battlestar characters, with one goal: put a board game on every screen in the room. At its centre is Lamancha, a declarative XML screen language rendered with SkiaSharp, in which any property can be a live expression over JSON state. A game master on a laptop holds the game and pushes JSON to every tablet over a 12-byte binary frame protocol shared by C# and Node; each screen redraws itself from the variables. Around that sit a schema-driven generator that wrote about forty thousand lines of the engine and its tests, a visual editor with undo as JSON deltas, Windows and Android players, and UDP beacons so the tablets could find the laptop. The game being built was Battlestar Galactica. The engine worked. The rules never finished, and the readme is one word: "Hello".

Wins, for the age

What it taught

Genealogy

Ancestors: Oldskool: values that are expressions over other values. World Bootstrap: editor tooling and generated code, from the CAD program. Z Multicast Toolbox: finding peers on a LAN without a server. Descendants: Adama Net: framed binary messages between machines, grown up. BSG Prototype: the Battlestar game, rebuilt and finally played. Lamancha I: the screen engine, carried into its next attempt. Parts: Goat BSG, Goat Lamancha.

Epitaph

Here lies Goat: a language, a generator, three editors and four players, all so five friends could play one board game, and the rules were the part never finished.