Dev Logs
The world map: Mediterranean terrain generated from satellite elevation data, rivers earned from a rainfall simulation.
Race to the Iron Age is a solo-developed strategy game built alongside a full-time engineering career. It spans a world map generated from real satellite terrain, a turn-based tactical hex layer, and real-time battles. It is deliberately too big for one person: the project is a working laboratory for how far AI language models can multiply a single engineer's output — and how to keep the result trustworthy. Everything below is measured on this codebase, not toy examples.
Dev Logs
16 entries — one per shipped branch, newest first
2026-09-26Gap: Project rules kept only as written notes were skipped
Four written rules became checks the tooling enforces, and the docs usage study was found to have read none of its own log.
2026-09-24Gap: One grass kind covered the island at every distance
The grass was split into four kinds, drawn only within 100 m of the camera, and kept out of water and off ledges.
2026-09-21Gap: Mutation tests ran locally for the wrong reasons
A two-hour mutation-testing grid that ran on the developer's laptop before every merge is moved to a self-hosted machine that runs it after each merge instead.
2026-09-20Gap: The island had no trees
Four tree species were added to the world map at full detail, then rebuilt to hold a playable frame rate and stay visible toward the horizon.
2026-09-18Gap: Vegetation placed off outdated terrain and in water
Vegetation placement is rebuilt to match current terrain and exclude water, and shrub render cost is cut to raise a full scene above 30 frames per second.
2026-09-16Gap: Repository layout and pre-merge checks had grown ad hoc
The project's repository, its pre-merge checks, and its own public development record are each reorganized after drifting into disorder under fast iteration.
2026-09-15Gap: Development record not publishable
The project's internal development log is rebuilt for public reading, and its documentation and open issues are reconciled around one verified build.
2026-09-14Gap: SRTM unrealistic land artifacts
A more accurate elevation source, a statistical waterfall rule, and a corrected vertical scale land together in one branch.
2026-09-06Gap: Waterfall geometry didn't match the rock
A waterfall water sheet is rebuilt to match the rock beneath it, and a new shader effect adds white water along riverbanks.
2026-09-02Gap: World map frame rate too low
Terrain chunking, distance-based detail, and a rendering-path change bring the world map from single-digit frame rates to a stable 30-50 fps target.
2026-08-30Gap: Rapids rendered as flat white churn instead of spray
Stepped rapids rendered as flat white churn because they fell below every waterfall height threshold, so a physics-based spray-field model was built for them.
2026-08-28Gap: Waterfall body was a flat ribbon
A flat ribbon waterfall mesh and an ungrounded whitewater brightness clamp were replaced with a physics-based, three-stage waterfall body.
2026-08-27Gap: River bank turns too sharp
River banks turned too sharply and looked stair-stepped until the angle limit moved into carving and the carve grid was fined to half a meter.
2026-08-18Gap: River junctions had inconsistent water levels
Replacing per-river terrain carving with one network-wide solve fixes inconsistent junction water levels and completes every river in one build.
2026-08-15Gap: Coastal river mouth carved too wide
A coastal river mouth was carved roughly twice as wide as the channel needed; two fixes break the river before a third one holds.
2026-08-14Gap: Riverbank drop depth was a guessed setting
A guessed bank-drop-depth setting is replaced with a measured one; a playtest also finds a stale-geometry merge bug and an unchecked wedge defect.