Jeffrey M. Barber

Tombstone

kitchen · Cauldron runtime

Jul 2007 – Mar 2008 · age 25–26

What it was

The C++ engine underneath the 2007 to 2008 Cauldron: a platform layer, the core, an OpenGL driver, a stalled Direct3D 9 driver, and the data model generated from a schema. Its heart was a render queue that was just a sort. Every draw request was a plain struct, sorted once per frame by shader, texture and mesh, and handed out as contiguous runs so GPU state changed once per level, with a stats line counting the binds that actually happened. The OpenGL driver was a family of "painters" over hardware buffers, with Phong and GLSL shaders, render-to-texture, picking and a z-sorted GUI shader. Scene data loaded either from a hand-rolled XML format or from a flat memory image. Static meshes, the GUI and picking all worked. Skeletal animation was the last day's work, and its hardware path was stubbed.

Wins, for the age

What it taught

Genealogy

Ancestors: Cauldron v2 Engine: the generated scene model loaded as memory, and GLSL skinning. Inferno: the XML and flat-image runtime with its vtable-restoring loader. Descendants: none on record. The runtime ended with the engine it carried. Part of: Kitchen.

Epitaph

Here lies the Cauldron runtime. It sorted every frame, bound each texture once and counted it, and drew crates beautifully and a dwarf only standing still.