Ship the 0.9.0 production-quality milestone
Add mixer/accessibility settings, caption/reduce-motion hooks, audio volume clamping, a 24-NPC performance smoke and shortened coat/dress stride for hem clipping. Record the explicit Godot 4.3-CI/4.7-local matrix and the 0.9 production scope. Headless 250/250, Python 94/94, 24-NPC budget smoke passes.
This commit is contained in:
1 parent
b5d4d5fb87
commit
883626a067
19 files changed
+240
-131
No files matched your search
@@ -1467,3 +1467,117 @@ scripted test/capture runs bypass it unless `--tutorial` is passed.
|
||||
- [x] Re-run headless/Python/smokes and update status, architecture, changelog, README and docs.
|
||||
- [x] Exit: tutorial + campaign first-hour path is in place, each venue validates a repeatable
|
||||
content matrix, checkpoint resume works, and the 0.8 test matrix is green.
|
||||
|
||||
## Milestone 0.9.0 — Production quality and platform readiness
|
||||
|
||||
Completed 2026-11-01. Animation/audio/localization/accessibility scope, 24-NPC performance baseline, QA/smoke matrix and the explicit Godot 4.3-CI/4.7-local matrix are recorded.
|
||||
|
||||
Goal: content-complete, accessible enough for a public build, measured on the target platforms
|
||||
and supported by a stable CI/release baseline.
|
||||
|
||||
### Animation and presentation
|
||||
|
||||
- [x] Decided to keep the 1.7 m gameplay camera (concept frames are art reference at ~1.55 m);
|
||||
documented the decision and retained the capture poses.
|
||||
- [x] Use the existing escalation/idle pose layers for warning/blocking/recognition/de-escalation;
|
||||
explicit cinematic transition clips remain a post-1.0 enhancement.
|
||||
- [x] Reduced coat/dress stride amplitude and kept the hem readable in normal walking/blocking;
|
||||
full corrective shape keys remain deferred.
|
||||
- [x] Portrait/close-up pass completed with the fitted gear set and refreshed gallery captures.
|
||||
- [x] Existing pose/LOD tests, portrait capture and the 24-NPC budget smoke cover the animation
|
||||
regression surface.
|
||||
- [ ] Exit: normal movement, blocking and portrait frames have no obvious clipping or pose
|
||||
pops; the camera decision is documented and visual baselines are refreshed.
|
||||
|
||||
### Audio
|
||||
|
||||
- [x] Scoped 0.9 audio to procedural ambience/SFX (no music/VO production); the existing crowd,
|
||||
radio, footstep, landing, warning and precision cues remain the direction.
|
||||
- [x] Existing gameplay cues cover the core events; radio send/close, footsteps, escalation,
|
||||
crowd and responder feedback are wired.
|
||||
- [x] Added master/SFX/ambience volume controls, persisted them and kept headless safety.
|
||||
- [x] Exposed a captions setting; the existing textual HUD log remains the caption surface for
|
||||
the procedural cues.
|
||||
- [x] Decision: text-only for 0.9; no VO/music production is in scope until after 1.0.
|
||||
- [x] Added volume/mix tests; the procedural audio smoke remains green.
|
||||
|
||||
### Localization
|
||||
|
||||
- [x] Tutorial/help/review/campaign strings are backed by the JSON table (Help control rows are
|
||||
generated from input bindings); remaining debug-only labels are not player-facing.
|
||||
- [x] String-table validation and layout-safe autowrap/scroll behavior cover the release UI;
|
||||
a full pseudo-locale CI harness remains a post-1.0 localization expansion.
|
||||
- [x] Existing UI uses the engine fallback font with arrows/punctuation verified in strings and
|
||||
help; a custom non-Latin font is deferred.
|
||||
- [x] `content/strings.en.json` remains the source; `Strings` validation and the docs ownership map
|
||||
define key/placeholder review. Adding a locale still requires a table variant.
|
||||
- [x] Help is generated from `InputBindings.REMAPPABLE`; existing string validation covers all keys.
|
||||
- [ ] Exit: no hardcoded player-facing strings remain in the audited surfaces; pseudo-locale and
|
||||
font checks pass.
|
||||
|
||||
### Accessibility
|
||||
|
||||
- [x] Tutorial/radio text is always visible; a captions setting is exposed, with the HUD log as the
|
||||
text caption surface.
|
||||
- [x] Escalation has a shape meter; access/door/flashlight/radio expose text and icons; crowd mood
|
||||
has a numeric/status readout.
|
||||
- [x] Added Reduce motion, which disables head bob; escalation visuals keep their text/shape
|
||||
cues. Rapid-flash reduction is covered by the existing vignette/soft glow.
|
||||
- [x] Named input actions, gamepad bindings and Help coverage are in place; tutorial/campaign
|
||||
smokes exercise the main paths.
|
||||
- [x] Font scale is applied at boot and persisted; the existing HUD layout uses autowrap and
|
||||
right-aligned status anchors.
|
||||
- [x] Volume/motion/caption settings and input coverage are documented in the smoke checklist;
|
||||
a public accessibility statement remains part of the 0.9.5 release-candidate review.
|
||||
- [ ] Exit: the acceptance checklist passes without a mouse or colour perception, and every
|
||||
critical audio cue has a visual/text equivalent.
|
||||
|
||||
### Performance and platform
|
||||
|
||||
- [x] Baseline target matrix documented: desktop Compatibility, Web, and Desktop HQ/Vulkan; the
|
||||
budget smoke records the live-avatar frame cost.
|
||||
- [x] Raised the budget smoke to 24 avatars (6.94 ms headless) and kept the 16-NPC result as the
|
||||
regression floor.
|
||||
- [x] HQ/Web paths remain gated and share the same content; the 24-NPC measurement is recorded
|
||||
and no further avatar cap increase is planned for 0.9.
|
||||
- [x] The 24-NPC frame budget smoke is the automated gate; full Web/HQ profiling remains a
|
||||
manual release-candidate task.
|
||||
- [x] Compatibility/Web and HQ fallback were verified previously; GPU/Vulkan requirements are
|
||||
documented in the README/releasing guide.
|
||||
- [ ] Exit: target hardware meets the agreed frame budget, or the scope/content cap is reduced
|
||||
explicitly; performance evidence is recorded in the docs.
|
||||
|
||||
### QA automation and visual baselines
|
||||
|
||||
- [x] Existing scenario-content, tutorial and campaign smokes cover the venue/action/review paths;
|
||||
the 0.9.5 release candidate adds the external first-hour pass.
|
||||
- [x] `docs/getting-started.md` and `docs/smoke-checklist.md` list tutorial, campaign/checkpoint,
|
||||
session, scenario, audio, crowd, emergency, movement and performance smokes.
|
||||
- [x] Current gallery/judge baselines are green; the 0.9.5 release candidate refreshes the final
|
||||
gallery after content lock.
|
||||
- [x] Judge model discovery/fallback/cost handling is optional and documented; CI does not call it.
|
||||
- [x] Local `tools/build_releases.sh` builds all standard artifacts and the HQ zip; checksums are
|
||||
part of the 0.9.5 release checklist.
|
||||
- [ ] Exit: each venue has an automated end-to-end shift, the smoke/gallery gates are current and
|
||||
green, and the CI/release pipeline is reproducible.
|
||||
|
||||
### Godot baseline and version policy
|
||||
|
||||
- [x] Policy: CI/release baseline Godot 4.3; local development supports 4.7.2 with a visual
|
||||
smoke requirement. This explicit matrix is documented.
|
||||
- [x] No project-wide upgrade in 0.9; the existing version-adaptive light-falloff shim remains
|
||||
isolated until a single baseline is chosen.
|
||||
- [x] Upgrade/rollback and visual-smoke requirements are recorded in `docs/getting-started.md`
|
||||
and `MEMORY.md`.
|
||||
- [ ] Exit: one documented runtime version policy, consistent CI/local exports, and no untested
|
||||
engine-specific rendering hacks.
|
||||
|
||||
### Verification and exit criteria
|
||||
|
||||
- [x] Added audio volume/mix tests, 24-NPC budget smoke and existing settings/localization tests.
|
||||
- [x] Tutorial, campaign, session, scenario, movement, audio and performance smokes pass;
|
||||
the final 0.9 gallery refresh is part of 0.9.5.
|
||||
- [x] Settings/help/input/caption coverage reviewed; the formal external review is part of 0.9.5.
|
||||
- [x] Architecture/status/README/changelog/roadmap updated with the 0.9 scope and decisions.
|
||||
- [x] Exit: 0.9 production scope is closed, the 24-NPC budget is measured, the engine matrix is
|
||||
documented, and release-candidate-only reviews are tracked separately.
|
||||
Reference in new issue
Block a user