Tombstone
Cauldron v2 · ButcherBlock
May 2006 – Oct 2006 · age 24
What it was
The C# asset editor of the 2006 Cauldron, and the first tool written over the engine's generated data model. A Windows Forms shell held a scene-graph tree, a property grid, camera modes and an OpenGL viewport. Because the schema compiler emitted C# classes with descriptions attached, any of the 45 scene classes could be edited with no UI code, and the schema's comments showed up as tooltips. It imported MilkShape models, raw meshes and terrain from heightmap images, split skinned surfaces to fit the engine's bone budget, previewed skeletons in red and green, tagged nodes for PhysX, ray-picked anything renderable, and saved the scenes the Epic demo loaded. It worked. Undo had two operations and no redo, and the last builds were ten weeks newer than the only source that survived.
Wins, for the age
- At twenty-four, Jeff let the schema be the user interface: comments written once in the data model became the editor's documentation, and a whole editor appeared with no form code per class.
- Enforced the runtime's 50-bone palette at import, so the data was valid by construction, finding on their own what Direct3D's bone partitioning had already found.
- Wrote the skeleton math twice, in C# and C++, and drew both, so the editor and the engine had to agree where anyone could see it.
- Made import and actions pluggable through small interfaces, with a menagerie of free monsters to test on. A lone primate staffing both sides of the tools team.
What it taught
- Put the documentation in the schema, and the tool inherits it.
- The editor must compute what the engine computes. Preview parity is a verification habit.
- Keep the source of what you ship. Two and a half months of changes survive only as an executable.
- Name outputs deterministically and use the framework's loop. Random mesh names and a hand-spun message loop were both regrets.
Genealogy
Ancestors: Z Character Exhibitor: the earlier skeleton-posing editor, now skinning as well as posing. Descendants: none on record. Later tools kept its patterns and dropped the code. Part of: Cauldron v2.
Epitaph
Here lies ButcherBlock. It made forty-five classes editable because the schema had comments, skinned a dwarf in C# to check the C++, and kept working after its source stopped being kept.