Plan the pre-RC patch levels
Add detailed 0.9.1 UI/dialog/button polish, 0.9.2 NPC model refinement, 0.9.3 texture/material refinement and 0.9.4 integration/performance/judge workstreams before the 0.9.5 release candidate. Update the remaining-gap table, baseline to v0.9.0 and README development status.
This commit is contained in:
1 parent
f811e6054d
commit
ffd98daf08
1 file changed
+176
-6
@@ -33,16 +33,186 @@ release-candidate foundation, not yet a 1.0 product.
|
|||||||
| Area | Current baseline | Remaining gap | Risk | Milestone |
|
| Area | Current baseline | Remaining gap | Risk | Milestone |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| Content and balance | 3 venues with validated 12+ event matrices, recovery events and contextual dialogue | External playtest evidence, balance/fairness pass, event-weight tuning and final content lock | Repetition or unfair outcomes survive into 1.0 | 0.9.5 |
|
| Content and balance | 3 venues with validated 12+ event matrices, recovery events and contextual dialogue | External playtest evidence, balance/fairness pass, event-weight tuning and final content lock | Repetition or unfair outcomes survive into 1.0 | 0.9.5 |
|
||||||
| Animation/presentation | Procedural pose layers, portrait captures, reduced hem clipping | Final animation/readability acceptance and no remaining P0/P1 clipping in the release candidate | Close-up jank reduces perceived quality | 0.9.5 |
|
| Dialog/UI | Complete screens and panel art, but copy/button behavior has not had a dedicated audit | Terminology, button states, long-string layout and full screen coverage need a focused pass | Inconsistent UI undermines first-hour clarity | 0.9.1 |
|
||||||
| Audio/accessibility | Procedural ambience/SFX, volume controls, captions/reduce-motion settings, searchable Help | Full accessibility/localization acceptance review, audio caption coverage and P0/P1 fixes | Public 1.0 cannot claim accessible play | 0.9.5 |
|
| Animation/presentation | Procedural pose layers, portrait captures, reduced hem clipping | Final model/pose/facial readability and gear-fit acceptance before visual QA | Close-up jank reduces perceived quality | 0.9.2 |
|
||||||
| Localization | English JSON table, validation and input-generated Help | Pseudo-locale/layout audit and translator workflow sign-off | Text expansion/clipping at release | 0.9.5 |
|
| Audio/accessibility | Procedural ambience/SFX, volume controls, captions/reduce-motion settings, searchable Help | Full accessibility/localization acceptance review, audio caption coverage and P0/P1 fixes | Public 1.0 cannot claim accessible play | 0.9.1 / 0.9.5 |
|
||||||
| Performance/platform | 24-NPC headless budget (6.9 ms), Compatibility/Web/HQ paths | Target hardware matrix, Web/HQ manual profiling, frame-time/memory evidence | Platform-specific drops or startup failures | 0.9.5 |
|
| Localization | English JSON table, validation and input-generated Help | Pseudo-locale/layout audit and translator workflow sign-off | Text expansion/clipping at release | 0.9.1 / 0.9.5 |
|
||||||
|
| Performance/platform | 24-NPC headless budget (6.9 ms), Compatibility/Web/HQ paths | Target hardware matrix, Web/HQ manual profiling, frame-time/memory evidence | Platform-specific drops or startup failures | 0.9.4 / 0.9.5 |
|
||||||
| Save lifecycle | Settings/campaign/history/checkpoint files, atomic writes | Migration fixtures from 0.8/0.9, fresh-install/upgrade verification, rollback instructions | Player progress loss on upgrade | 0.9.5 |
|
| Save lifecycle | Settings/campaign/history/checkpoint files, atomic writes | Migration fixtures from 0.8/0.9, fresh-install/upgrade verification, rollback instructions | Player progress loss on upgrade | 0.9.5 |
|
||||||
| QA/CI | Headless suite, smokes, screenshot compare, optional judge | Full release-candidate smoke matrix, final gallery/judge, CI/release dry run and checksums | Regressions escape the release gate | 0.9.5 |
|
| QA/CI | Headless suite, smokes, screenshot compare, optional judge | Full visual judge gate, release-candidate smoke matrix, final gallery and release dry run | Regressions escape the release gate | 0.9.4 / 0.9.5 |
|
||||||
| Release/legal | Unsigned desktop/macOS builds, Web/HQ packages | Signing/notarization decision, checksums, AI-asset provenance, credits, privacy/body-camera and rating review | Public release blocked by trust/policy | 0.9.5 |
|
| Release/legal | Unsigned desktop/macOS builds, Web/HQ packages | Signing/notarization decision, checksums, AI-asset provenance, credits, privacy/body-camera and rating review | Public release blocked by trust/policy | 0.9.5 |
|
||||||
| Documentation | Architecture/ADR/status/roadmap ownership established | Final README/changelog/status/TODO/smoke-checklist sign-off and known-limitations page | Docs drift at launch | 0.9.5 |
|
| Documentation | Architecture/ADR/status/roadmap ownership established | Final README/changelog/status/TODO/smoke-checklist sign-off and known-limitations page | Docs drift at launch | 0.9.4 / 0.9.5 |
|
||||||
| Post-launch | Stable 0.9 feature set | Live replay, more venues, VO/music, image-to-mesh props and seasonal content | Scope creep before launch | Post-1.0 |
|
| Post-launch | Stable 0.9 feature set | Live replay, more venues, VO/music, image-to-mesh props and seasonal content | Scope creep before launch | Post-1.0 |
|
||||||
|
|
||||||
|
## Patch 0.9.1 — Dialog, button and UI polish
|
||||||
|
|
||||||
|
Goal: make every player-facing screen read consistently and pass the Python
|
||||||
|
screen-design judge before any model/texture changes. No gameplay rules change.
|
||||||
|
|
||||||
|
### Screen and terminology inventory
|
||||||
|
|
||||||
|
- [ ] Inventory every screen/panel: start menu, venue menu, tutorial, HUD, pause,
|
||||||
|
settings, Help, inspection, wand, radio/emergency, wheel, shift review,
|
||||||
|
timeline and campaign/continue screens.
|
||||||
|
- [ ] Record the canonical terms for admit/deny, allow/refuse, warning/blocking,
|
||||||
|
assistance/emergency, body camera, shift/review and campaign; remove synonyms
|
||||||
|
that mean the same action.
|
||||||
|
- [ ] Audit all button labels for verb-first wording, capitalization, ordering,
|
||||||
|
destructive-action confirmation and consistent confirm/cancel placement.
|
||||||
|
- [ ] List every hardcoded player-facing string and route it through
|
||||||
|
`content/strings.en.json`; add placeholder validation for new keys.
|
||||||
|
- [ ] Review NPC/door-staff/radio/tutorial/help/review/campaign dialogue for
|
||||||
|
repetition, ambiguity, tone and localization length.
|
||||||
|
|
||||||
|
### Button and panel behavior
|
||||||
|
|
||||||
|
- [ ] Audit normal/hover/pressed/focus/disabled states on every button, including
|
||||||
|
tutorial skip, venue continue, settings apply/cancel/reset, judge/review,
|
||||||
|
radio send/emergency hold and Help close.
|
||||||
|
- [ ] Verify keyboard-only and gamepad-only navigation: focus order, wrapping,
|
||||||
|
default focus, confirm/cancel behavior and no focus traps.
|
||||||
|
- [ ] Verify every modal closes with Esc/right-click where documented, recaptures
|
||||||
|
the mouse, and does not leave the guard frozen or the menu visible.
|
||||||
|
- [ ] Test buttons at minimum/maximum HUD font scale and with 1.5–2× longer
|
||||||
|
strings; fix clipping, overflow and overlapping layouts.
|
||||||
|
- [ ] Test destructive/irreversible actions (campaign reset, tutorial replay,
|
||||||
|
emergency send) require the intended confirmation/hold and cannot double-fire.
|
||||||
|
- [ ] Verify radio normal-send vs emergency hold, inspection/wand allow/deny,
|
||||||
|
review continue/retry/menu and Help search/filter behavior end to end.
|
||||||
|
|
||||||
|
### Visual and judge verification
|
||||||
|
|
||||||
|
- [ ] Update the affected UI art/reference mapping where copy or button order
|
||||||
|
changes; keep the no-overwrite image convention.
|
||||||
|
- [ ] Capture a deterministic screenshot for every dialog/button state that has a
|
||||||
|
design reference; add missing capture stages or an explicit coverage gap.
|
||||||
|
- [ ] Run `tools/check_screenshots.sh` and `python3 tools/screen_designs.py compare`;
|
||||||
|
fix all `bad` results.
|
||||||
|
- [ ] Run `python3 tools/screen_designs.py judge` with `--model auto` (or a pinned
|
||||||
|
model); clear every `diff` and record accepted `review` verdicts.
|
||||||
|
- [ ] Record the judge model, fallback order, spend and evidence in
|
||||||
|
`docs/screens/realism/` or the screen-design report.
|
||||||
|
- [ ] Add a short UI copy/button checklist to `docs/smoke-checklist.md`.
|
||||||
|
- [ ] Exit: all screens have consistent terminology and button behavior, long
|
||||||
|
strings/scale pass, and the Python compare/judge gate has no unexplained
|
||||||
|
diff.
|
||||||
|
|
||||||
|
## Patch 0.9.2 — NPC model refinement
|
||||||
|
|
||||||
|
Goal: make the eight character variants and their gear hold up in portraits and
|
||||||
|
normal play without changing the `npc_base`/`Rig/Head` contract.
|
||||||
|
|
||||||
|
### Model and rig audit
|
||||||
|
|
||||||
|
- [ ] Render all eight variants from front, profile, back and portrait angles;
|
||||||
|
compare faces, hair, ears, hands, shoes, proportions and gear fit.
|
||||||
|
- [ ] Audit head/face readability (brow, eyes, lips, nose, hairline) at portrait
|
||||||
|
distance; fix the highest-impact silhouette/face issues.
|
||||||
|
- [ ] Audit gear fit and clipping: caps/beanie/hood/helmet/sunglasses, shoulder bag,
|
||||||
|
backpack, SCBA tank, lanyard, hand items and the new coat/dress stride.
|
||||||
|
- [ ] Audit coat/dress/skirt hems during walk, blocking, sitting and turning; fix
|
||||||
|
remaining leg/hem intersections with weights, geometry or stride limits.
|
||||||
|
- [ ] Re-check the frozen contract: mesh `npc_base`, bone names, five tint slots,
|
||||||
|
front direction, attach points, triangle/vertex budgets and grounding.
|
||||||
|
- [ ] Rebuild affected GLBs, bake AO, run `godot --headless --path . --import`, and
|
||||||
|
run `blender_assets.py audit` plus fit/portrait checks.
|
||||||
|
|
||||||
|
### Pose and animation polish
|
||||||
|
|
||||||
|
- [ ] Review idle, walk, warning, blocking, recognition, refusal, phone, clipboard,
|
||||||
|
photo, film, sit and responder poses for pops or floating props.
|
||||||
|
- [ ] Add/adjust short transitions for negotiation/reaction poses without breaking
|
||||||
|
the seeded pose helpers or head-turn behavior.
|
||||||
|
- [ ] Verify LOD tiers and the impostor at 16/24-NPC distances; re-run the budget
|
||||||
|
smoke and record any triangle/draw-call changes.
|
||||||
|
- [ ] Refresh the Blender review sheets and character portraits; keep per-asset
|
||||||
|
previews local if gitignored.
|
||||||
|
|
||||||
|
### Verification
|
||||||
|
|
||||||
|
- [ ] Add/update headless tests for any new pose/model contract behavior.
|
||||||
|
- [ ] Capture the portrait and character gallery; compare against the design
|
||||||
|
references and run the Python judge.
|
||||||
|
- [ ] Update `docs/blender-assets.md`, architecture/status and `MEMORY.md` with the
|
||||||
|
revised budgets, limitations and rebuild commands.
|
||||||
|
- [ ] Exit: portrait/readability and gear fit pass, no obvious P0/P1 clipping remains,
|
||||||
|
and the 24-NPC budget/full test suite are green.
|
||||||
|
|
||||||
|
## Patch 0.9.3 — Texture and material refinement
|
||||||
|
|
||||||
|
Goal: improve close-range surface and character texture quality while keeping GL
|
||||||
|
Compatibility/Web parity, deterministic assets and offline CI.
|
||||||
|
|
||||||
|
### Environment textures and materials
|
||||||
|
|
||||||
|
- [ ] Audit the v2 picks (brick, sidewalk pavers, dry/wet asphalt, awning canvas,
|
||||||
|
day/dusk/night skylines) at close range and in the entrance/street shots for
|
||||||
|
seams, tiling, scale, contrast and normal-map strength.
|
||||||
|
- [ ] Refine brick mortar/wear, paver joints/stains, asphalt aggregate/wet response
|
||||||
|
and awning weave using the existing image/asset tooling; never overwrite a
|
||||||
|
pick, use `-vN` candidates and promote validated results.
|
||||||
|
- [ ] Check UV scales and material roughness/metallic profiles; keep day/night
|
||||||
|
phase behavior and the wet-street transition intact.
|
||||||
|
- [ ] Review distant skyline haze and foliage/planter surfaces against the concept
|
||||||
|
references; fix obvious flatness without regressing readability.
|
||||||
|
|
||||||
|
### Character and prop textures
|
||||||
|
|
||||||
|
- [ ] Audit NPC skin, cloth, pants, hair and gear albedo/normal/AO maps in portraits;
|
||||||
|
refine fabric weave, skin variation and fixed detail materials.
|
||||||
|
- [ ] Re-bake AO where geometry changes; verify the 256² maps and material wiring.
|
||||||
|
- [ ] Audit library props and UI/card/icon textures at their actual screen sizes;
|
||||||
|
remove blurry/oversized or unused textures where safe.
|
||||||
|
- [ ] Run texture audits, import, and the full asset test suite; record texture memory
|
||||||
|
and triangle/draw-call impact.
|
||||||
|
|
||||||
|
### Visual verification
|
||||||
|
|
||||||
|
- [ ] Run `python3 tools/scene_concepts.py realism` for the affected stages with the
|
||||||
|
judge enabled; record metric gaps and model/spend.
|
||||||
|
- [ ] Re-run `tools/check_screenshots.sh` and the screen-design judge; clear all
|
||||||
|
`diff` verdicts.
|
||||||
|
- [ ] Capture before/after close-ups for brick, pavement, asphalt, character cloth
|
||||||
|
and skyline; document accepted trade-offs.
|
||||||
|
- [ ] Update asset docs and the changelog/status with the promoted texture versions.
|
||||||
|
|
||||||
|
## Patch 0.9.4 — Integration, performance and judge gate
|
||||||
|
|
||||||
|
Goal: integrate the UI/model/texture patches, prove the combined build on the
|
||||||
|
target paths and leave a clean release-candidate handoff.
|
||||||
|
|
||||||
|
### Integration and asset rebuild
|
||||||
|
|
||||||
|
- [ ] Rebuild all changed Blender/GLB/AO assets, re-import, and verify manifest/fit/
|
||||||
|
audit coverage.
|
||||||
|
- [ ] Run the complete headless suite, Python tooling and smoke matrix; fix any
|
||||||
|
regression from the three polish patches.
|
||||||
|
- [ ] Re-run the 24-NPC budget smoke and record frame time, mesh count and any
|
||||||
|
texture-memory change; check Web and Desktop HQ if available.
|
||||||
|
- [ ] Verify save/campaign/tutorial behavior is unchanged by the visual/UI patches.
|
||||||
|
|
||||||
|
### Visual gallery and judge gate
|
||||||
|
|
||||||
|
- [ ] Recapture the full gallery, portraits, venue/realsim stages and Desktop HQ A/B
|
||||||
|
as needed; no stale screenshots in the release set.
|
||||||
|
- [ ] Run `tools/check_screenshots.sh`, `screen_designs.py compare` and
|
||||||
|
`screen_designs.py judge` on the final captures.
|
||||||
|
- [ ] Run the realism judge for the affected concepts with a pinned model; record
|
||||||
|
model, attempt count, spend and verdicts.
|
||||||
|
- [ ] Review all `review` verdicts manually; convert unexplained layout/composition
|
||||||
|
mismatches into fixes or explicit known limitations.
|
||||||
|
- [ ] Ensure generated realism folders remain gitignored/local-only and only the
|
||||||
|
durable report decisions/docs are committed.
|
||||||
|
|
||||||
|
### Release-candidate handoff
|
||||||
|
|
||||||
|
- [ ] Update README, architecture, development status, changelog and TODO with the
|
||||||
|
final patch-level results and any remaining gaps.
|
||||||
|
- [ ] Tag/version or otherwise freeze `0.9.4` as the integration checkpoint before
|
||||||
|
the `0.9.5` release candidate.
|
||||||
|
- [ ] Exit: combined build is functionally green, visually reviewed, performance
|
||||||
|
measured and ready for the 0.9.5 content-lock/playtest phase.
|
||||||
|
|
||||||
## Milestone 0.9.5 — Release candidate
|
## Milestone 0.9.5 — Release candidate
|
||||||
|
|
||||||
Goal: freeze the feature set, prove it with external players, clear release/legal blockers and
|
Goal: freeze the feature set, prove it with external players, clear release/legal blockers and
|
||||||
|
|||||||
Reference in new issue
Block a user