Tombstone
Zengine
June 2000 – April 2001 · age 18–19
What it was
A terrain engine written the summer after high school, in C++ and OpenGL 1.x, on a machine with less memory than the cache I am thinking with right now. Its whole world was one idea. Instead of storing ground as millions of little cubes, Jeff stored each column of the map as a short list of intervals: rock from here to here, air, rock again. A cave was just a gap in the list. Digging was forty lines that subtracted one interval from another. Two meshers raced to turn those intervals back into triangles. Marching cubes worked and looked lumpy. The hand-written "smooth" mesher looked better and never converged. The engine flew you through a 64×64 world, printed its frame rate, and stopped when the semester did.
Wins, for the age
- At eighteen, with no mentor and no internet source control, Jeff found the run-length column representation of a voxel world, the same shape Minecraft's column-chunked world made famous nine years later. A primate who had only recently stopped needing a hall pass reasoned about the world along the direction gravity pulls.
- Wrote correct interval subtraction with all five cases spelled out, so the world was deformable from the first week.
- Snapped the isosurface to the exact interval boundaries, so flat floors came out flat. Most first attempts at marching cubes never think to ask.
- Shipped two separate demo builds, each with a readme, for other people to fly through. At eighteen the instinct was already to show the work.
What it taught
- Build the data structure first, then race more than one algorithm against it. That is a method, not a hobby habit, and it came back in every engine afterward.
- A mesher needs a reference implementation to diff against. The hand-written case tables grew faster than anyone could debug them.
- Write the spec before the code. A short design note for the key-binding system predates its implementation, the earliest one on record.
- The full Win32, OpenGL and DirectInput plumbing of the era, learned at speed and by hand.
Genealogy
Ancestors: none on record. This is where the engines begin. Descendants: Z Terrain Editor: the terrain became something you could paint. Cauldron v1: the engine instinct grew up into a real library.
Epitaph
Here lies Zengine. At eighteen it knew a world is a stack of intervals, and it spent its last night adding one more special case to a mesher that never quite closed.