01 — The worldDesigned on paper, then grown from code
The archipelago was laid out in metres before a single polygon existed. Every island has a stated radius and plateau height; every connection has a stated span; the player has a stated walk speed, jump height and step-up limit.
A layout validator checks the numbers against each other — that the bridge deck doesn't ask for a step taller than the player can climb, that the stepping stones don't float above the seabed, that no two islands overlap. It caught two real errors before anything was built.
The result is a world that is dimensionally coherent rather than eyeballed: 99 m across, 117 m deep, water at zero, a 1.70 m player as the ruler for everything.
02 — The lookStylized, not photoreal
Flat plateaus with hard cliff edges — not domes. Pale limestone, fresh mint foliage, turquoise shallows, vermilion and gold accents. Simplified chunky forms with clean silhouettes, painted soft-edged shading.
Getting there took real correction. The first terrain attempt produced smooth green buns; the second gave the cliffs a cream band because the material heights were absolute instead of relative to each island's own top. The fix was ring density — most of the mesh's rings now sit on the cliff face, where the silhouette actually lives.
03 — The buildSix parts, five agents, one shared contract
The world is assembled from six independently-built parts: terrain, ruins, torii shrine, cottage, connections and nature. They were written in parallel against a shared library that defines the layout, the palette and every geometry helper — so parts built in isolation still fit together exactly, with no coordinate negotiation.
That contract is also where the interesting bug lived. The shared box helper produced geometry at half the requested size, and four agents independently discovered it and wrote their own workarounds. The right fix was at the source: one line, and the four compensations deleted.
04 — The proofIt is actually playable
Not "it loads" — playable, and tested. A headless integration test spawns the player, lands them, and walks them across the sandbank. A traversal suite then runs eight legs through the world: the ruin platform, down the grand staircase, across the bridge, into the bamboo grove, along the garden path, and wading through the lagoon.
Those tests found three bugs no amount of looking would have caught. Two islands had inverted collision normals, so rays fired from above fell straight through them into the seabed. The cottage door was swung across its own doorway at 96° — dimensionally perfect, physically impassable. And the porch roof had three centimetres of head clearance.
05 — StillsThe world, in frames
06 — Playing itControls
Third-person, camera-relative movement. WASD moves relative to where you are looking, and the knight turns to face his direction of travel.
- W A S D
- Move, relative to the camera
- Mouse
- Look around — push up to look up
- Shift
- Sprint
- Space
- Jump — or ascend while flying
- Ctrl
- Descend while flying
- F
- Toggle flight — survey the whole world from the air
- Esc
- Release the mouse
07 — By the numbersWhat it costs
Visual and collision geometry are exported as separate files, so collision can be decimated hard without touching the look — and the world never pays for collision on grass, ferns or distant sea stacks. Decimating the vegetation alone removed 220,000 triangles.
08 — PipelineHow it was made
- Layout in metres
Islands, connections and player capabilities defined as numbers, then validated against each other.
- Shared library
One source of truth for coordinates, palette and geometry helpers, so parallel work cannot drift.
- Six parts, built in parallel
Terrain, ruins, shrine, cottage, connections and nature, each rendering its own preview shots.
- Assembly
Parts merged into one world, triangle budget reported, lighting and water unified.
- Export
Two GLBs — visual and collision — with vegetation decimated to fit budget.
- Godot
Collision built at load, third-person controller, flight, and a headless test suite that proves it works.