Jeffrey M. Barber

Tombstone

Goat: Lamancha and Maketree

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

What it was

Lamancha is an XML language for screens, and Maketree is the generator that wrote almost all of it. A document holds roots of layout, paint, shape, shader and touch nodes, rendered with SkiaSharp, and a single variable can switch which root is on screen. Every attribute is a plain value or, with .E on the end, a live expression in a small Lisp over a JSON variable tree that the game server fills. The node tree was not written by hand: a fluent C# schema described about a hundred node kinds, and the generator emitted parsers, deep copy, visitors, JSON export, tests and documentation, with hand code kept safe in partial classes. Animations told the host when they next needed a frame, and tests drove a captured clock so a moving screen could be compared, pixel for pixel, against gold images.

Wins, for the age

What it taught

Genealogy

Ancestors: Farm Cron: the schema written as code, generating the rest. Kitchen ZMLC2: a schema compiler emitting data classes and serializers. Descendants: Lamancha I: the same engine and bindings, carried into the next attempt. Part of: Goat.

Epitaph

Here lies Lamancha: a hundred node kinds, one schema, and a .E on every attribute that wanted to move.