DEVLOG | April 20, 2026
World scale and terrain palette
This was a research-and-implementation day: less about ceremony, more about tightening the shape of the thing until it behaved a little more like itself. 10 commits landed or were available locally. There was also a decent amount of local conversation around the work, but the useful part is the trail it leaves: questions asked, decisions narrowed, and a few assumptions made explicit. The center of gravity was world, terrain, bundle, airfield.
What moved
research moved through recover source-backed airfield layout truth, document the recovered airfield scale passes, scale the terrain world grid from source units, and expose terrain palette data in the bundle.
implementation moved through add world scale contract loading and client integration, shade terrain from recovered palette bytes, accept legacy terrain byte file roles, clip projected triangles at the camera near plane, fix macos sdl2 library path for rustc and pre-commit hooks, and stabilize terrian color and fix rendering flicker.
What I learned
The world work is mostly about boundaries: what can be treated as reference, what needs a replacement contract, and what has to be rebuilt as new implementation truth.
Source trail
- Local conversation signal: 21 working sessions.
- research ad1d5a9: recover source-backed airfield layout truth
- research 2f24ac6: document the recovered airfield scale passes
- research 1feaae1: scale the terrain world grid from source units
- research 262d6f2: expose terrain palette data in the bundle
- implementation 03cc2d0: add world scale contract loading and client integration
- implementation 3e0152b: shade terrain from recovered palette bytes
- implementation ab298a1: accept legacy terrain byte file roles
- implementation 5987026: clip projected triangles at the camera near plane
- implementation 7847455: fix macos sdl2 library path for rustc and pre-commit hooks
- implementation c7a3207: stabilize terrian color and fix rendering flicker
The research lane stays research, and the implementation lane stays implementation. This post is a narrative summary of local work, not a publication of raw originals.