Back to Devlog
    v0.1.0
    EngineDecember 2025Release notes

    The First Thing the Engine Watched Was a Plant

    Map transitions, camera state persistence, and an indicator system whose entire job was telling you whether a plant needed water.

    The Whole Feature List Fits in a Sentence

    text
    - Map transition system with fade effects
    - Camera state persistence across map changes
    - World indicator system with map-specific scoping
    - Plant status indicators (water, harvest, pot action)

    Four bullets. Read them again with the knowledge of what this codebase became and you can see every Quake-shaped hole in it: nothing is server-authoritative because there is no server, nothing is replayable because there is no tick, and "map transition" means a fade and a rebuild rather than a snapshot baseline.

    The Indicators Were the Point

    v0.1.0 is a release about three states — water, harvest, pot action — and a WorldIndicatorSystem with map-specific scoping so a pot on one map never lit up an icon on another.

    The fixes in this same release are the part worth keeping:

    • Camera target position was not saved during a map transition.
    • Alpha and beta angles were not reset when loading a new map.
    • Plant indicators leaked across maps, so they were filtered by current map.
    • World indicators were never cleared on map change.
    • Trigger positions used the mesh origin instead of its bounding box centre.

    That last one is the classic bug that makes an object look like it is standing two metres to the left of where it is standing.

    Why It Is Worth Keeping

    Because the release after this one added weather, and the release after that added a HUD framework, and within nine weeks the engine was loading textures out of Quake archives. The indicators are still there in a sense that matters: a world indicator is just a scoped projection of state onto a 2D surface, and that is exactly what a HUD element, a damage arrow and a pickup prompt turn out to be.

    The plants did not survive. The scoping did.