Álvaro 3D / GAMES
← BACK TO DEVLOG

24 JUL 2026 · DEVLOG · 1 min read

Terrarium Debt — the growth sim, attempt three

Two rewrites in and the plants finally grow at a rate that feels like pressure rather than punishment.

The first version simulated every plant every tick. At forty plants the day-advance took two seconds and the whole feel of the game collapsed into waiting.

The second version batched growth into a queue but let debt compound off-screen, which meant players who explored got quietly ruined. Correct simulation, terrible game.

Attempt three simulates on demand: a plant computes its state from the last time it was observed. Cheap, deterministic, and it made the interest mechanic legible for the first time.

The ledger is the only HUD element in the game.
func state_at(day: int) -> Growth:
    var elapsed := day - last_seen
    return _project(cached, elapsed)  # no per-tick loop

Next post: what happens when the terrarium reclaims a room you were standing in.