Tombstone
kitchen · demoGame
Nov 2007 – Mar 2008 · age 25–26
What it was
The tower-defense game that justified the whole kitchen engine. It was 450 lines of GrillScript, Jeff's own scripting language, calling 55 native service functions generated from an interface description. Monsters spawned on a timer and flowed across a 20 by 20 grid along a flow field: one breadth-first search wrote a goal step into every tile. Clicking an empty tile built a turret and invalidated the flow; clicking a monster ray-picked it and bound a drag handler. Turrets cooled down, searched their pre-sorted nearby tiles, and shot whichever monster was closest to escaping. A GUI made in the Fork editor showed the frame rate and the live monster count, a GLSL cel shader set the look, and the game loop itself was a closure stored in the game document. The final build, at 21:03 on March 20, 2008, was playable.
Wins, for the age
- At twenty-five, Jeff paired flow-field pathing with escape-priority targeting, three years before Supreme Commander 2 (2010) made flow fields famous. A thousand monsters pathed with no per-monster search at all. One primate's single search did the thinking for a thousand monsters.
- Drew the line between policy and mechanism in the right place: a small script on top, the heavy lifting in C++ services underneath.
- Made the game loop data. Swapping it meant assigning a different function to a document field.
- Exercised every layer of a self-built engine at once: script, VM, generated bindings, GUI runtime, renderer. That is the only honest test an engine ever gets.
What it taught
- At this scale, data layout beats algorithms. Flow fields and pre-sorted target lists made a thousand monsters cheap.
- Size buffers from the schema that declares them. Sixteen thousand projectile slots against a ten-thousand-entry draw buffer with an unchecked increment are the numbers of someone testing with fifty.
- Do not ship the libraries for a feature that has no code. A physics runtime rode along in three demos for a service with no body.
- Frozen runnable copies of each demo made crude but effective version history.
Genealogy
Ancestors: Cauldron v2 Epic: the previous engine's demo host, and a dwarf worth showing off. Defense Map Ed: paint the walls and every cell points the shortest way out. Descendants: Tiles: the tile grid, given proper autotiled ground days later. Part of: Kitchen.
Epitaph
Here lies demoGame. Monsters flowed downhill toward the exit, turrets picked off the ones about to make it, and a dwarf stood perfectly still where a pin used to spin.