Before the Guns, There Were Pots
The engine's earliest public release, back when it was being built to grow plants rather than to fight. Harvest indicators, instant pot placement, and better console help.
An Honest Origin
This engine did not begin as an arena shooter. The early releases are about plants.
Not decorative foliage — a growth pipeline with stages, a BuildableSystem, pots as placeable objects, harvest indicators, and a water prompt UI that watched for events. v0.1.0 shipped map transitions, camera state persistence and world indicator scoping. v0.2.0 added a UI scaling system and a generic HUD framework.
Then v0.7.0 loaded textures out of Quake and Warsow PK3 archives, and the trajectory bent hard. By v0.8.0 the engine was loading BSP maps, and the plants were gone.
We are not quietly editing that out of the archive. The tools that made a shooter — PK3 indexing, the shader system, map-scoped indicators, a buildable-object system that would much later turn into moving platforms — mostly arrived while the engine still thought it was a gardening game.
Fixes In This Release
A small release by later standards, and still recognisably the same codebase:
- Harvest indicator never appeared. The
ready_to_harvestcondition was
hardcoded false.
- Pot action indicator never showed.
BuildingSystem.currentMapIdwas never
set, so every map ID mismatched.
- Water prompt UI was deaf. Event names disagreed between
PlantSystemand
WaterPromptUI.
- Instant builds emitted nothing. A
buildTime: 0pot placed fine and
then never fired its complete event, so the indicator it was waiting for never cleared.
- `BUILDABLE_ITEMS` was empty, courtesy of a circular dependency. A
satisfying one.
Better Console Help
Commands now sort alphabetically within categories, group themselves into System, Debug, Game and Other, print in colour, and put usage tips in the footer.
The implementation note is that formatMessage() detects pre-formatted HTML and skips escaping it. This is also the release that started converting \n into <br>, which is a sentence that would not mean anything to anyone reading it now, and rather a lot to anyone who was there.