Files
gig-line/ROADMAP.md
T
zwitschi 12272d6b96 release: v0.2.0 — third-person body, animation, stride capture
Writes the 0.2.0 changelog entry with the measured numbers, removes the completed
section from TODO.md (its goal stays in ROADMAP.md) and updates the roadmap status.

Release checks: 8/8 shots verify with 6, 7 and 8 approved; 1440p at 2.64 ms average
(379 fps); -qaselftest passes walk, reset, pause, transect, wall and facade probes;
82 tool tests pass. Known limitations are listed rather than hidden: splayed fingers,
a swept base rotation and unproven camera collision, all marked for later patches.
2026-11-09 12:30:49 +01:00

15 KiB
Raw Blame History

ROADMAP.md

Development roadmap for this project: milestone goals, scope, decisions, and release gates. Actionable tasks, claims, and progress marks live in TODO.md.

Quality priority

Realism leads; performance is a floor. Façade identity, proportion, material and light are judged against the reference photographs and drive design decisions. Performance closes the quality list: 60 FPS at 1440p without frame generation is a budget every release must meet, and if realism cannot fit inside it the realism scope is cut deliberately and recorded — never the frame rate.

Status at a glance — 2026-11-08 15:30

Workstation, geo pipeline, and engine validation are done. The art pipeline has a first blockout, terrain, and street in metres, in one shared coordinate frame. Project bootstrap is complete: Game/GigLine builds, packages, and both content-acceptance tests (static-mesh scale, MPFB skeletal character) pass. v0.1.0 released 2026-11-08: the walkable demo, hero façade, verified block frontage, first-person controls, ODbL attribution, and every release check pass (traversal, placement, collision, 60 fps at 1440p, fresh-checkout build, packaged build with controls). Next: the 0.1.1–0.1.4 patch series (collision detail, scale/façade corrections, packaging fixes, real building façades), v0.1.6 released 2026-11-09: retail frontage for 6800 Lee Drug and 6806–6820 modelled from their own photograph; 6822 Budget deferred (no reference) and the lettering/parapet detail moved to 0.9.0. v0.2.0 released 2026-11-09: visible animated body, third-person camera with a V toggle, idle and walk clips, and a deterministic stride capture. Two cosmetic character defects (splayed fingers, a swept-not-derived base rotation) are deferred to 0.2.2. Next: 0.3.0 (Chaos vehicle, enter/exit, closed driving route).

Area State
Workstation Bazzite 45.20261105, driver 615.78.08, Vulkan good, git-lfs/clang/cmake/ninja installed
Tooling Blender 5.2 + MPFB 2.0.18 + Blosm 2.7.28 working headless; QGIS 4.2.3; PROJ 9.9.0; Unreal 5.8.4 installed
Geo extract, address + footprints + bounds, CRS + origin, 3DEP DEM, street profile, cross-sections — all verified and committed
Engine 5.8.4 installed and validated: headless + Vulkan GUI editor launch pass on the RTX 5070 Ti
Blender blockout (87 meshes), terrain, street (road/kerbs/sidewalks), site assembly — all in one frame, walk-checked
Reference 72 images local, uncommitted; hero entrance located; inherited eight-step claim overturned
Unreal project bootstrap complete: C++ project builds, blank Linux build packaged + launch-tested, scale test and MPFB skeletal character accepted

Next up: model the hero façade and block frontage from the reference set, then first-person traversal on the site terrain (tasks in TODO.md). Release gate: v0.1.0 is tagged only on the owner's explicit go-ahead once the release checks pass — not automatically when the TODO items close.

0.1.0 — Local setup and walkable Hollywood block (weeks 1–6)

Goal: a walkable exterior demo around 6840 Hollywood Blvd / El Capitan Entertainment Centre, built on verified geography, in one shared coordinate frame, and validated on the Linux workstation. Setup details are in Docs/setup.md and pins in Docs/toolchain.md.

Environment and bootstrap (complete): the Bazzite workstation, Unreal 5.8.4 (headless and Vulkan GUI launch), the system clang toolchain, and the pinned Blender, MPFB, Blosm, and QGIS versions are in place. The C++ project builds, a blank Linux build packages and launches, and two content-acceptance tests pass: the static-mesh scale test (1 m = 100 cm, axis mapping east → +X, north → −Y, up → +Z) and the MPFB skeletal character import.

Geographic data (complete, with blockout detail open): the OSM extract, address, footprints, demo bounds, EPSG:26911 frame with a recorded origin, and the 3DEP 1 m DEM are verified and committed. The meter→centimetre conversion lives in one function, and every exporter must call it. Block buildings still need height data for three placeholders and cleaning or detailing of the Blosm blockout.

Review and character (decision): the review scene is the staging used for all visual approval. Its scope is the character's ground contact, the camera list, and the façade detail shots, and nothing in asset production or gameplay continues past it until these shots pass. The shot list is in Screenshots/README.md. Coordinator decision 2026-11-07: 0.1.0 ships first-person only, a capsule with a camera and no visible player body. The MPFB character asset (idle pose, warm skin) is the template for later NPCs (0.2.0 body/camera toggle, 0.5.0 pedestrians). It is now a concrete reusable prefab, AGigLineNPCPerson (collision capsule + visible body, feet on Z 0), kept standalone and not wired into the AGigLineCharacter pawn.

Asset production: the scale test and the ue_metric_v1 export and import presets are established. The hero façade first pass is built and screenshot-approved; the north-side buildings (TCL Chinese Theatre, Madame Tussaud's) are staged. Open: reference collection for the door recess and the night frame, the surrounding block frontage, sidewalks, roads and collision, and materials for all assets.

Gameplay: first-person movement, mouse look, pause, and reset are implemented. The walkable demo map is built but has not been checked by hand. Open: the designated crossing, daytime lighting and ambience.

Publication: history is rewritten, secrets are scanned, and LFS support is validated.

Release checks: traversal on both sides of the demo, building placement and street scale checked against references, no blocking collision or packaging defects, 60 FPS at 1440p on the documented preset, a fresh checkout that builds with the documented engine installation, a packaged Linux build with documented controls, and then the v0.1.0 tag and changelog entry. The detailed checks are tracked in TODO.md.

0.1.1 — Collision fixes (patch)

Goal: fix the collision and walkability defects already visible in the Blender pre-check, and add to the list as the engine pass finds more. Scope: the sidewalk outer edge against terrain (15.8 cm step), the crossing ramp gradient (about 10 % against the 8 % a real ramp uses), the collision authoring pass (complex-as-simple for terrain and street, simple hulls per building), the kerb height assumption, and traversal regression tests. Collision authoring uses the collision-proxy, qa-review, and asset-optimization skills as method guides.

0.1.2 — Scale and façade corrections (patch)

Goal: correct building and street proportions against the reference photography. Scope: the three placeholder heights (guessed at 6.4 m), the hero façade detail, and the colonnade proportion (about 45 % of the height against roughly 50–60 % in the photographs). Use the references, archviz, and camera-cinematography skills.

0.1.3 — Packaging and setup fixes (patch)

Goal: fix any packaging or build issues found in 0.1.x and bring Docs/ up to date. Patches contain fixes only. If a Blender export preset is at fault, check it with the export-pipeline and unreal-export skills.

0.1.4 — Proper building façades (patch)

Goal: replace the flat placeholder surfaces on the blockout buildings with real façades, keeping the existing footprints and massing. Scope: a reusable façade module kit (bay, pilaster, cornice, parapet, window, shopfront, door) exported with ue_metric_v1; procedural materials (brick, concrete, stone, render, glass) wired through Unreal material instances; Blosm façade style scripts for the south and north frontages; the hero façade detail pass; and El Capitan Theatre (6838) and the retail neighbours from the reference set. Use the façade, materials, UV, and QA skills named in TODO.md.

0.2.0 — MPFB player body, third-person camera, basic animation (weeks 7–9)

Goal: a visible, animated player body with a third-person camera and a first/third-person toggle, walking end-to-end in the demo area. The MPFB character is promoted to a reusable NPC prefab for 0.5.0.

0.2.1 — Rig fixes (patch)

Goal: fix skeletal and rigging defects reported after 0.2.0.

0.2.2 — Skin and hair tuning (patch)

Goal: tune skin shading and hair materials on the player character.

0.2.3 — Camera clipping fixes (patch)

Goal: fix the remaining camera clipping cases in 0.2.x.

0.3.0 — Chaos vehicle, enter/exit, closed driving route (weeks 10–13)

Goal: one drivable vehicle with Chaos Vehicle physics, enter and exit interaction, and a closed driving route with boundaries.

0.3.1 — Handling tuning (patch)

Goal: refine vehicle handling feel based on 0.3.0 feedback.

0.3.2 — Vehicle collision fixes (patch)

Goal: fix vehicle collision defects (mesh and physics mismatches).

0.3.3 — Input fixes (patch)

Goal: fix vehicle and character input issues in 0.3.x.

0.4.0 — Small connected neighborhood and map streaming (weeks 14–17)

Goal: extend the geo pipeline to a small connected neighborhood with World Partition streaming and HLOD, with no visible seams while walking or driving across it.

0.4.1 — Seam fixes (patch)

Goal: fix visible seams between streamed cells.

0.4.2 — Streaming corrections (patch)

Goal: correct streaming and loading issues found in 0.4.x.

0.4.3 — HLOD tuning (patch)

Goal: tune HLOD quality and distance settings.

0.5.0 — Pedestrians, crosswalk behavior, ambient traffic (weeks 18–21)

Goal: pedestrians that navigate and use the designated crossing, limited ambient traffic on the street network, and simulation cost held within the frame budget. Pedestrians reuse the idle-pose character prefab.

0.5.1 — Navigation fixes (patch)

Goal: fix pedestrian navigation issues.

0.5.2 — Crossing fixes (patch)

Goal: fix crosswalk behaviour defects.

0.5.3 — Simulation optimization (patch)

Goal: optimize pedestrian and traffic simulation cost.

0.6.0 — Visual/audio pass and evening lighting preset (weeks 22–24)

Goal: an evening lighting preset alongside the day preset, a neighbourhood-wide visual polish pass, and ambient audio with verified licences.

0.6.1 — Lighting fixes (patch)

Goal: fix lighting defects in the day and evening presets.

0.6.2 — Material corrections (patch)

Goal: fix material errors found in 0.6.x.

0.6.3 — Audio balancing (patch)

Goal: balance audio levels across the scene.

0.7.0 — Settings, control rebinding, save/load, accessibility (weeks 25–27)

Goal: a settings menu for graphics and audio, control rebinding and save/load that persist across restarts, and accessibility basics (FOV, subtitles, colour-blind options where applicable).

0.7.1 — Save fixes (patch)

Goal: fix save and load defects.

0.7.2 — UI fixes (patch)

Goal: fix UI issues in 0.7.x.

0.7.3 — Input persistence fixes (patch)

Goal: fix rebinding persistence issues.

0.8.0 — Performance budgets and broader Linux hardware testing (weeks 28–30)

Goal: define frame-time and VRAM budgets, profile the full neighbourhood against them, test on a broader Linux hardware and VRAM matrix, and re-validate the 1440p quality preset with the upscaling state recorded.

0.8.1 — VRAM reductions (patch)

Goal: reduce VRAM usage where profiling shows excess.

0.8.2 — Frame-time fixes (patch)

Goal: fix frame-time spikes found in 0.8.x.

0.8.3 — Compatibility fixes (patch)

Goal: fix compatibility issues from the hardware testing matrix.

0.9.0 — Realistic buildings (weeks 31–34)

Goal: every building in the demo area reads as the building it is, at walking distance, judged against its own photograph — and where no photograph exists it stays an honest blockout rather than an invented façade. This is the milestone that turns the façade system from "a kit applied to volumes" into architecture: a shared bay-and-profile vocabulary, a material library with measured albedo and roughness, modelled storefronts and signage, and per-building reference matching with a measured tolerance.

Scope:

  • A façade system that carries more than one order: Art Deco, neoclassical and streamline-moderne variants on the same 4.96 m bay module, with a profile library for cornices, copings, string courses and storefront surrounds.
  • Per-building façades for the six south-side buildings and the two north-side buildings inside the 50 m buffer, each from its own reference set; the hero keeps its existing model and gains the detail levels this pass defines.
  • Storefronts and signage as first-class geometry plus decals: mullions, bulkheads, recessed entries, awning and canopy brackets, painted wall lettering, blade and projecting signs. Wall lettering is a texture/decal problem, not a block of geometry — the 0.1.6 attempt proved plates do not read.
  • A material library with measured values per surface type (stucco, painted render, ashlar, brick, terrazzo, glazing, bronze and steel trim) and a texel-density rule, replacing per-building ad-hoc colours.
  • LOD chain and collision proxies per building, so realism does not cost the 60 FPS floor.

Out of scope: interiors, night lighting and audio (the 0.6.0 evening preset owns those), vehicles, pedestrians, and any change to footprints or massing — OSM stays the source for those.

Release gate: each building has a review shot compared against its own photograph with the silhouette and proportion deltas recorded in Screenshots/README.md; no building carries an unverified façade; every building has a collision proxy and at least one LOD; 60 FPS at 1440p holds; no surface is left with a placeholder material; THIRD_PARTY_NOTICES.md covers every photographic reference used.

0.10.0 — Feature freeze, public beta, license and build audit (weeks 35–38)

Goal: freeze features, produce a public beta for testers, and complete the audits: licences for THIRD_PARTY_NOTICES.md and all MPFB, texture, animation, vehicle, and audio assets; Epic distribution requirements; and a fresh checkout that builds and packages reproducibly.

0.10.1 — Blocker fixes (patch)

Goal: fix blockers reported during the public beta.

0.10.2 — Regression fixes (patch)

Goal: fix regressions introduced by 0.10.x fixes.

0.10.3 — Documentation fixes (patch)

Goal: update all Docs/ for accuracy before 1.0.0.

1.0.0 — Stable neighborhood-scale walking/driving release (weeks 39–44)

Goal: a final acceptance sweep across all 0.x features, confirmation that the agreed scope (neighbourhood-scale walking and driving) is met, and final build, documentation, and licensing verification. 1.0.0 marks the stable scope, not completion of a whole city.