Tombstone
Cauldron v2
Oct 2003 โ Nov 2006 ยท age 21โ24
What it was
The 2006 form of Jeff's game engine, and the three years of engine, demos and tools it grew out of. At its center sat a schema: 74 classes of scene data (nodes, meshes, skeletons, terrain, PhysX actors, shaders, lights, 26 kinds of particle system) described once and compiled by Jeff's own C# tool into C++ with two serializers, reflection, a C API, and a C# mirror for the editors. Scene files were memory images, loaded with a read and a fix-up pass. The renderer skinned characters in GLSL, drew SOAR terrain under a 3D-texture splat, and cooked PhysX collision to disk. Two C# editors worked over the generated classes. The proof was a demo: a skinned dwarf walking and jumping across a hillside with boids overhead. It compiled and ran when it stopped.
Wins, for the age
- At twenty-four, Jeff made the file the object graph: pointers written as offsets, vtables re-stamped from static prototypes at load. Zero-copy loading, seven years before Cap'n Proto made the idea famous in 2013.
- Reached for a schema compiler before the engine needed one, finding on their own what the CORBA IDL generators had already found, and so one mammal who needed sleep could own 74 data classes with serializers.
- Shipped a runnable demo at every stage, with frozen copies that still walked the dwarf.
- Brought the era's techniques together by hand: GLSL palette skinning, SOAR refinement, 3D-texture splatting, per-frame BSP transparency sorting, PhysX character control.
What it taught
- Generation changes what one person can own. The next engine put the compiler at the center from day one.
- Physics integration is mostly data: cooking, caching, controller flags, and one hot-patched keyframe to put feet on the ground.
- Do not let the view or the renderer mutate the model, and pass containers by reference.
- A project can die widening its schema. Particles, mirrors, virtual lights and a GUI were all modelled and none rendered, and copying the whole tree was not version control.
Genealogy
Ancestors: Cauldron v1: the math, animation, skinning and mesh tools, reorganized into a rewrite. Descendants: Inferno: the data-model compiler idea, with XML and flat-binary serialization. Kitchen: the next Cauldron, started fresh with the compiler at its center. Kitchen ZMLC2: the schema compiler, grown into the engine's generator. Parts: Cauldron v2 Butcher Block, Cauldron v2 Engine, Cauldron v2 Epic, Cauldron v2 Fork, Cauldron v2 Lineage, Cauldron v2 ZMLC.
Epitaph
Here lies Cauldron v2. It described seventy-four classes once, loaded them as memory, walked a dwarf across a hillside, and stopped with its particle system fully modelled and never lit.