This is the long view of the game project, written for someone who has not followed it. The individual posts in this section each take one slice; this one tells the order things happened in, what each step was for, and what we learned when a step did not work. The cast is named by role throughout: the hero, the Smith, the Elder, the uncle, the mother, the father, the grandmother and the grandfather.
The goal
The game started in July 2026 as a present for the kids: a 2D platformer with a village hub, where the whole cast is the family, and where winning a battle means making a friend. The first commit was coloured circles on a blue sky and a level that was just a JSON file. The decision that mattered most was made in that first fortnight without anyone calling it a decision: the levels are data, and every renderer that came later reads them.


In late August the goal grew a second half. The village would also be built in three dimensions, as a tech demo for the character and prop pipeline we were building at the same time, and it would read the 2D game’s story data rather than carry its own. The stated goal for the 3D side was written down then and has not changed since: the village is a tech demo for generated assets and the game flow, and every character on screen has to read as who they are. “Done” was defined later and more strictly: the nightly checks are green two nights running, and the face work closes on evidence a reviewer and the playtester both accept.
What we tested, and what the numbers said
One game, two presentations. The 3D game was born on one August day as a village of boxes and a fox battle on a sand square, with one stand-in model playing every part. It read the same dialogue, places and battles as the 2D game from the first hour, and 2.5D became a camera key rather than a third renderer. The post One story rendered in two and three dimensions tells the first disagreement: the square had a fountain in one game and a well in the other, and nothing caught it until a shared manifest existed. By October the shared layer carried 120 files and 28 dialogue scripts, and both games pulled from it.
Faces. The first 3D heads had nothing behind the eyes. Over two days the Smith went from version 1 to version 6 (real eyeballs, then eyelids, then a grafted likeness head), and version 7 blinked. Two experiments ruled out lighting and ambient occlusion as the cause of the dead stare. Version 8 fixed the seam and the eye rims and was signed off for the Smith and the uncle; version 10 showed a horizontal cut through the beard that was reduced but not removed, and became the first entry on a long seam ledger. When the hero arrived in September, his hands were white because the drawing’s were, and the fix was in the drawing, not the shader. Measuring the Smith’s eyes found them sitting 12 mm too high because two detectors had only ever agreed with each other; declaring the eye centres fixed it.
The hero, measured. The hero still did not read as himself at the end of September. A bake-off put a parametric template body and a photo graft side by side in three registers, measured against the reference with one shared detector. The template’s jaw was 8 % too wide; the reference’s smile read as a frown on a closed mouth; and a hair tint applied in the wrong colour space had turned auburn to near-black. Then a week of single features: the paint drew its own mouth 8 mm above the modelled one, so there were two lips until a card warp put it back on the cleft. About seventy numbered rounds went into the hair edge alone. Round 75 became the baseline on 5 October, and on the same day the lesson that reshaped the tooling arrived: round 75 looked right on a sheet and read as an old man in the real village, because the probe camera stood in front of him while the game’s camera is 5 m behind.
Performance. A frame-cost gate had been red since 30 September and nobody had asked why. One prop, the spawn tree, carried 2.06 million triangles. It was made cheaper, and the gate now judges cost against the GPU’s memory clock rather than a fixed triangle cap.
Judging on reels, not stills. Stills had been hiding things. A play-reel tool now films the real game played with injected input (walk, run, jump, orbit, talk) through the real camera, and the playtester reviews reels. The first reel with a face-and-neck track caught neck artifacts a full-frame review had missed. Same-boot A/B tools toggle a feature inside one run so a comparison is fair; on that evidence the sky-lit skin stack went on by default on 10 October.
The world. Terrain replaced a flat plane at the end of August. The pond read as a blue sheet until flow in metres per second and a Fresnel-driven alpha made it water; screen-space reflections were measured, found useless here, and left out. Six interiors across four house types got ceilings, beams and lamps. Every platformer crossing (seaside, cliffs, cave, observatory, sky-top) is derived from its own 2D level, so the 3D jumps match the 2D ones. Progression arrived in October: a gill charm to swim to the drowned chapel, a hatchet for timber, a pick for field stones, from one table both games read.
Shipping it to the family. The 3D build was put on the family site on 23 September as 26 media files (34 MB) and three vote questions, because a playable web export came to 1.61 GB and was not shippable. Two days earlier, a security pass had found a real network token committed since July, blanked it, added a secret scan, and wrote the first two-process network test.
A world editor. A 10 October spike added an in-game edit mode on an overrides layer: drag a house plot onto the pond and the 2D game silently drops the plot while the 3D game moves it. Both scripts reported success. Rebuild and check took under 0.2 s; the silent drop is the open item.
Where we are
The 2D game is a complete chapter with a town square, shops, a battle menu that no longer hides its items, swaying plants, hens and a ginger cat. The 3D village has worn paths, five townsfolk, a lived-in light keyed to four hours of the day, a follow camera that stays out of the walls and frames dialogue as a two-shot, a procedural motion layer (gaze, lean, foot lock, breath, a child’s carriage for the hero) under every clip, and the whole party on the battle stage. The mother, the father, the grandmother and the grandfather are built from the 2D drawings with tailored garments. The grandmother’s bob ships; the other grooms are opt-in because the reviewer said not to ship them yet.

Faces are the open front. The playtester said the cast read as claymation and that the mother read as masculine; measurement put the cause in the grade, the geometry, the hair and the paint, and found pores and eyes near zero. In October a deeper cause surfaced: every one of the 49 face presets carried a child-like eye spacing, so no adult face had an adult anchor. Hair defects turned out to be cast-wide, not per character, which moved the fix into the shared pipeline with a gate per cast member.
On 21 October two fixes landed. The mother’s face got a real mouth, with teeth, gums and a tongue that follow the jaw, a painted lip that no longer doubles over the modelled one, and speech shapes so she can talk. And the hair-round outfits, which had been committed without their import settings, now import as people again: without them the mother stood in a T-pose with her strand hair loose, and a gate now fails if an outfit lands without them. The credits name the strand-hair library the 3D game uses.
What is next
Close the face ledger on evidence, not opinion: each named defect becomes a code check that fails, and no A/B runs until the baseline is green. Finish the nightly gates (two were red in mid-October). Decide the village look, which has a painted sky and a coastal hedgerow waiting behind flags. Then the open world: the first road from the square’s north gate to the meadow was laid on 8 October, and the rest of the map follows the same pattern.
Architectures we tried
Three ideas survived and three were dropped. Levels as data survived from day one. Shared authority survived once the manifest caught the fountain. The template body survived because one recipe makes the whole cast. Dropped: per-character hand-made bodies (each drifted differently); screen-space water reflections (measured, no gain); a clump groom and a sculpted shell for hair (kept as flags, judged no gain). Multiplayer was built and deferred. The detail, including the forge side, is in the forge journey and in the sub-articles tagged tested and architectures in this section.