Both capture helpers now accept --out=res://docs/screenshots, and tools/check_screenshots.sh renders the staged set (using xvfb-run when headless) before running screen_designs.py compare. Record the judge result: 7 match, 4 review, 0 diff. Headless 226/226 and the smoke both pass in a clean worktree.
6.0 KiB
TODO
Godot 4.3 prototype. Latest release v0.6.0 (Blender character/gear/prop library, baked AO, environment lift).
Headless suite 227/227 plus 86 Python tooling tests; the session, PLAN-verb, crowd, emergency,
timeline, audio, scenario-content, props, NPC-budget, movement, and windowed focus/radial smokes
pass. Anonymous downloads are enabled on the host. The realism pass is adopted (per-phase skyline
panoramas, v2 surface tiles, retuned lighting); see DONE.md and TODO.md → Realism follow-ups.
The scheduled presentation pass is complete (see DONE.md). The next scheduled pass is the
graphics-quality work in docs/plan-graphics-v0.6.md.
v0.6.0 shipped (2026-11-01): the Blender character/gear/prop library is integrated, AO maps are baked and wired, and the environment textures were lifted to 1024² with normal maps. See
DONE.mdfor the completed graphics plan.
Visual alignment with rendered mockups
Storage restructure
- Decide the canonical runtime image root (
assets/images/for UI/scene art): recorded inMEMORY.mdand ADR-0014. - Move the reference mockups from
docs/screens/designs/into the runtime root (keepdocs/screens/designs/as a docs-only copy or replace it with the new path). - Document one convention for game vs reference vs development images across
assets/textures/,assets/images/,assets/models/generated/,docs/screenshots/, anddocs/screens/designs/(indocs/architecture.md, ADR-0014). - Re-run
godot --headless --path . --importto regenerate.importsidecars after any move. - Confirm
.gitignorestill excludes development-only outputs (concepts, Blender sources, raw AI fabrics) under the new layout.
Documentation path updates
- Update
README.mdpaths (screen-designs section, confirmed-assets links, theassets/images/scenesresize example). - Update
docs/architecture.md,PLAN.md, and ADR references: docs/screens/designs/ is now explicitly the reference-only snapshot; runtime art lives in assets/images/ (ADR-0014). - Update
tools/screen_designs.pydocstrings and mark the old paths inDONE.mdas historical.
Code path updates
- Point
tools/screen_designs.py generateat the new design output path and keepcompare/judgereading the right locations. - Update GDScript
preload()paths if game textures move (no runtime material/model textures moved; UI art added under assets/images/). - Update capture output directories if captures relocate (none did; QA captures stay in docs/screenshots/).
Load proposed interfaces + scene art from disk
- Add a central UI/scene art loader (e.g.
src/game/ui/art.gd) that loads the mockup-derived images from the new runtime root, with a procedural fallback when a file is missing. - Wire the start menu and venue selection screen to use the
start_menuscene art. - Wire the pause overlay to
pause_overlayscene art (backdrop + opaque panel cover). - Wire the settings panel to
settings_panelart. - Wire the shift-review screen to
shift_reviewart (backdrop + opaque panel cover). - Wire the wand popup to
wand_screeningart. - Style the radial menu and finish the remaining HUD chrome against their reference images.
Align in-game visuals
- Make the venue selection screen match the
start_menumockup (layout, palette, background). - Make the HUD match the
targeting_npc/escalation_hudmockups (focus ring, escalation meter, log, hints). - Align the pause, settings, and shift-review panels to their mockups.
- Align the radio and wand panels to their mockups.
- Align the body-camera timeline to its mockup.
- Align scene lighting, fog, and post-processing for
venue_overviewandlate_night_avenue.
Verify against the mockups
- Regenerate the staged captures and run
screen_designs.py compare(11 good, 0 bad; verified in a clean HEAD worktree). - Run
screen_designs.py judgeand clear everydiffverdict (7 match, 4 review, 0 diff). - Add the capture + compare step as a repeatable smoke so drift is caught early (
tools/check_screenshots.sh).
Fix mouse movement bug
- Investigate why mouse input is not being captured or processed correctly in the game window.
Improve in-game pop-ups
- Improve the visual appearance of in-game pop-ups (layout, button style, palette, icons, and text styling).
Realism follow-ups (v0.6.1 candidates)
- Fixed ground exposure for the entrance view: it is still ~20 % brighter than the concept. Either put the entrance in the building's shadow (sun yaw/elevation) or add a slight per-view exposure so the shaded sidewalk reads mid-grey.
- Make the flashlight read in the dark: the
06-night-flashlightconcept shows a visible beam, but a Compatibility spot light only brightens the near wall. A cheap fake cone (an additive mesh or a light-shaft quad) would sell it, and the night mockup expects it. - NPC skin/clothing still reads as low-poly next to the concepts (judge
characters≈ 0–1). The Blender library has the budgets for one more detail pass (fingers, sleeves, faces). - The
screen_designs.py judgedefault model (google/gemini-2.5-flash-lite) currently fails with a provider "API key not valid" 400; the tool retries once. Re-check before the next release and either pin a working model or document--model. - Add the two venue stages to the committed gallery (they are capture-only today) and give the Joke Shop and studio their own geometry so their concept comparisons are geometric, not just lighting.
Future ideas (optional, not scheduled)
- Live 3D body-camera replay (the timeline is text-only today).
- Additional venues or seasonal events authored from the new
.tresfiles. - Real voice/dialogue audio (the crowd bed and radio crackle are procedural).
- Swap the primitive prop builder for an image-to-mesh model API behind the same
assets/models/generated/<prop>.glbcontract.