Tombstone
ZTerrainEditor
Jul 2001 · age 19
What it was
A one-week heightmap sculptor in C++, MFC and OpenGL. The window split three ways: a control panel, a 3D preview, and a 2D map of a 129×129 grid of heights drawn as grey squares. Clicking the map stamped a brush, and the brush was the clever part: a sum of named equations you could tick on and off, "bent sphere", "gradient", "constant", "noise", "cone", "paraboloid", each shaped by two numbers A and B, with an "Invert" box that negated the sum. Gradient plus noise made a rough slope; paraboloid plus invert dug a bowl. A right-drag on the map set where the camera stood and where it looked, and the 3D view looked along that sightline. It saved, loaded, and shipped as version 1.0 with a "textured" mode that ran the flat-shaded code.
Wins, for the age
- At nineteen, Jeff made the brush a tiny language instead of the usual raise, lower and smooth. Nine checkboxes and two scalars made a small node graph in disguise, the same model procedural terrain tools and shader graphs use.
- Invented a one-gesture camera: press where you stand, release where you look. A primate who wanted to walk the map found the shortest way to ask.
- Drew each cell as a grey level of its own height, so the editor's display was itself a valid heightmap image, the convention Comanche's voxel terrain had used in 1992, arrived at by following the data.
- Three synchronised views, save and load, and a version number, in seven days.
What it taught
- Expressing an operation as composable, parameterised functions beats a fixed menu. The same instinct shows up in every larger tool after it.
- Three views, one document: the framework's own pattern, used as intended, is the cheapest way to keep panes in sync.
- Camera pitch and yaw from two points, with the quadrants handled by sign.
- Clicking is not testing. A cone labelled one formula computed another, noise divided by zero for small A, and loading trusted a count from the file over a fixed-size array.
Genealogy
Ancestors: Zengine: the terrain engine whose ground this editor made paintable. Descendants: Zenerd: the engine libraries and editor views that followed. Cauldron v1: a real engine with its own tool chain. World Bootstrap: a CAD program for game levels, fifteen years later.
Epitaph
Here lies ZTerrainEditor, which let you sculpt a world by ticking equations and then stand on the map and look across it, and which shipped version 1.0 in a week with its textured mode still flat shading in disguise.