Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4bb2896819 | ||
|
|
f5b8ef2e70 | ||
|
|
0044f5f065 |
No files matched your search
@@ -4,6 +4,15 @@ All notable user-facing changes to Gig Line. The format follows
|
|||||||
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions use
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions use
|
||||||
Semantic Versioning.
|
Semantic Versioning.
|
||||||
|
|
||||||
|
## [0.9.6] — 2026-11-02
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- The UI, model and texture passes are now integrated into a verified checkpoint
|
||||||
|
build. The gallery, NPC portraits, realism captures, asset audits, smoke
|
||||||
|
matrix, 24-NPC budget and Web/Desktop HQ packages were regenerated and
|
||||||
|
re-checked; no gameplay or content changes were introduced.
|
||||||
|
|
||||||
## [0.9.5] — 2026-11-02
|
## [0.9.5] — 2026-11-02
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@@ -1879,3 +1879,81 @@ unexplained regressions. Accepted limits: hand items use the forward-offset open
|
|||||||
a finger-curl rig; fabric folds stay out of the low-poly target; the >26 m impostor remains a
|
a finger-curl rig; fabric folds stay out of the low-poly target; the >26 m impostor remains a
|
||||||
two-quad billboard; evening readability is represented by the day/night/LATE final-context set.
|
two-quad billboard; evening readability is represented by the day/night/LATE final-context set.
|
||||||
Tagged `v0.9.4`; Gitea run 916 passed checks and the full build and published seven assets.
|
Tagged `v0.9.4`; Gitea run 916 passed checks and the full build and published seven assets.
|
||||||
|
|
||||||
|
## Patch 0.9.5 — 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
|
||||||
|
|
||||||
|
- [x] 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. (New `surfaces` and
|
||||||
|
`surfaces_joke` capture stages; no seam or UV-scale failures found.)
|
||||||
|
- [x] 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. (The Walk of Fame
|
||||||
|
band now uses the paver/terrazzo texture; the neighbour awning keeps its
|
||||||
|
cream stripe via a neutral tint and 4× UV. Brick/asphalt picks held up.)
|
||||||
|
- [x] Check UV scales and material roughness/metallic profiles; keep day/night
|
||||||
|
phase behavior and the wet-street transition intact. (Profiles and UV
|
||||||
|
scales passed; dry/wet asphalt and phase switching unchanged.)
|
||||||
|
- [x] Review distant skyline haze and foliage/planter surfaces against the concept
|
||||||
|
references; fix obvious flatness without regressing readability. (Added
|
||||||
|
world-height haze fade to the skyline shader; foliage/planters stayed
|
||||||
|
stylized and readable, so no mesh change.)
|
||||||
|
|
||||||
|
### Character and prop textures
|
||||||
|
|
||||||
|
- [x] Audit NPC skin, cloth, pants, hair and gear albedo/normal/AO maps in portraits;
|
||||||
|
refine fabric weave, skin variation and fixed detail materials. (256² maps rebuilt; fabric
|
||||||
|
now uses a 4× UV weave and skips baked per-character AO, removing the portrait blotches;
|
||||||
|
skin/hair/gear keep AO. Comparison `sheet_npc_baseline_compare-texuv.jpg`.)
|
||||||
|
- [x] Re-bake AO where geometry changes; verify the 256² maps and material wiring.
|
||||||
|
(No character geometry changed in the texture pass; asset/base audits pass.)
|
||||||
|
- [x] Audit library props and UI/card/icon textures at their actual screen sizes;
|
||||||
|
remove blurry/oversized or unused textures where safe. (All 21 screen-art
|
||||||
|
textures are 1280×720 and referenced; access cards are 256×128, HUD icons
|
||||||
|
64×64; no oversized or unused runtime texture found. Legacy root textures
|
||||||
|
remain only as the `generate_textures.py`/asset-test fallback.)
|
||||||
|
- [x] Run texture audits, import, and the full asset test suite; record texture memory
|
||||||
|
and triangle/draw-call impact. (Godot 263/263, Python 101/101; asset and base
|
||||||
|
audits pass; 24 NPCs = 168 meshes / 131,616 triangles / 6.94 ms. Compressed
|
||||||
|
payloads: picks 24.55 MB, UI art 22.67 MB, NPC maps 0.48 MB.)
|
||||||
|
|
||||||
|
### Visual verification
|
||||||
|
|
||||||
|
- [x] Run `python3 tools/scene_concepts.py realism` for the affected stages with the
|
||||||
|
judge enabled; record metric gaps and model/spend. (Run
|
||||||
|
`docs/screens/realism/2026-11-02-tex` with `z-ai/glm-5.3-flash`, one pass per
|
||||||
|
shot; mean `after` overall 1.8, lighting 2.3, materials 1.8, texture 1.2,
|
||||||
|
backdrop 2.0, characters 1.2, Pillow gap 0.306. The judge is optional and not
|
||||||
|
a CI gate; the report stays local.)
|
||||||
|
- [x] Re-run `tools/check_screenshots.sh` and the screen-design judge; clear all
|
||||||
|
`diff` verdicts. (21 good / 0 bad; `screen_designs.py judge` = 21/21 match,
|
||||||
|
0 review, 0 diff.)
|
||||||
|
- [x] Capture before/after close-ups for brick, pavement, asphalt, character cloth
|
||||||
|
and skyline; document accepted trade-offs. (Committed
|
||||||
|
`docs/blender_previews/sheet_texture_refinement_0.9.5.jpg`: Walk of Fame
|
||||||
|
pavers, asphalt aggregate, limestone facade, day skyline haze and NPC cloth;
|
||||||
|
asphalt/limestone picks intentionally held, no replacement.)
|
||||||
|
- [x] Update asset docs and the changelog/status with the promoted texture versions.
|
||||||
|
(README/PLAN/architecture/status/MEMORY and the 0.9.5 changelog entry now
|
||||||
|
carry the texture results; the 0.9.5 section moved to `DONE.md` after the
|
||||||
|
release build.)
|
||||||
|
|
||||||
|
|
||||||
|
Completed 2026-11-02: all 0.9.5 texture and material checks are closed. The NPC
|
||||||
|
base and eight library characters use 256² maps, cloth/pants use the 4× fabric
|
||||||
|
weave without baked-AO blotches, the Walk of Fame band uses the paver/terrazzo
|
||||||
|
texture, the neighbour awning keeps its cream stripe, and the skyline fades into
|
||||||
|
per-phase haze. Godot is 263/263, Python tooling 101/101, `blender_assets.py
|
||||||
|
audit`/`fit` and `npc_pipeline.py audit` pass, the 24-NPC headless smoke is
|
||||||
|
6.94 ms (168 meshes / 131,616 triangles), the 48-frame baseline and 96-frame
|
||||||
|
final-context review pass, `check_screenshots.sh` is 21 good / 0 bad, and the
|
||||||
|
screen-design judge is 21/21 match. The optional realism judge ran with
|
||||||
|
`z-ai/glm-5.3-flash` (mean overall 1.8, Pillow gap 0.306) and its report remains
|
||||||
|
local; the committed comparison sheet is
|
||||||
|
`docs/blender_previews/sheet_texture_refinement_0.9.5.jpg`. Tagged `v0.9.5`;
|
||||||
|
Gitea run 922 passed checks and the full build and published seven assets.
|
||||||
@@ -182,7 +182,19 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o
|
|||||||
- **Priority change (2026-11-02):** the map optimization, pre-build NPC revisit,
|
- **Priority change (2026-11-02):** the map optimization, pre-build NPC revisit,
|
||||||
0.9.3 UI polish, 0.9.4 NPC visual optimization and 0.9.5 texture/material pass
|
0.9.3 UI polish, 0.9.4 NPC visual optimization and 0.9.5 texture/material pass
|
||||||
are complete and in `DONE.md`. 0.9.6 integration and 0.10.0 release work are
|
are complete and in `DONE.md`. 0.9.6 integration and 0.10.0 release work are
|
||||||
next. The current source version is 0.9.5.
|
next. The current source version is 0.9.6.
|
||||||
|
- **0.9.6 integration (2026-11-03):** no gameplay/content changes. A clean
|
||||||
|
detached worktree at `f5b8ef2` rebuilt Linux/Windows/macOS/Web/HQ without the
|
||||||
|
dirty tree's ignored `tmp/`/`build/` payload; the in-repo build was 1.6–3.1 GB
|
||||||
|
per artifact because those folders were packed, so always build release
|
||||||
|
artifacts from a clean checkout/worktree. Verification: 263/263 tests,
|
||||||
|
101/101 Python, 14 smokes, 24-NPC 6.90 ms / 168 meshes / 131,616 triangles,
|
||||||
|
gallery 21/0, screen judge 21/21, realism judge overall 2.1 / gap 0.291.
|
||||||
|
- **Release v0.9.5 (2026-11-02):** commit `4bc6390` tagged `v0.9.5`; Gitea Actions run
|
||||||
|
922 passed checks and the full build and published seven assets (Linux, Windows,
|
||||||
|
macOS, NSIS setup, AppImage, Web, Desktop HQ). Release page:
|
||||||
|
`https://git.allucanget.biz/zwitschi/security-game/releases/tag/v0.9.5`. Do not
|
||||||
|
reuse the tag; future fixes need a new patch tag.
|
||||||
- **Release v0.9.4 (2026-11-02):** commit `a57b86c` tagged `v0.9.4`; Gitea Actions
|
- **Release v0.9.4 (2026-11-02):** commit `a57b86c` tagged `v0.9.4`; Gitea Actions
|
||||||
run 916 passed checks and the full build and published seven assets (Linux,
|
run 916 passed checks and the full build and published seven assets (Linux,
|
||||||
Windows, macOS, NSIS setup, AppImage, Web, Desktop HQ). Release page:
|
Windows, macOS, NSIS setup, AppImage, Web, Desktop HQ). Release page:
|
||||||
@@ -856,7 +868,7 @@ GitHub Actions.
|
|||||||
|
|
||||||
## Uncommitted Workstreams
|
## Uncommitted Workstreams
|
||||||
|
|
||||||
- **None (2026-11-01).** The NPC detail pass, the realism follow-ups and the flashlight beam
|
- **None (2026-11-02).** The 0.9.5 texture pass is committed, tagged `v0.9.5` and
|
||||||
decision are committed together with the portrait capture and the refreshed screenshots.
|
published with seven assets; the workspace is clean apart from local/gitignored
|
||||||
Keep the rule from `AGENTS.md`: check `git status` before committing, and never revert
|
realism and capture output. Keep the rule from `AGENTS.md`: check `git status`
|
||||||
another contributor's in-flight files.
|
before committing, and never revert another contributor's in-flight files.
|
||||||
@@ -176,7 +176,7 @@ Primary decisions: [ADR-0007](docs/adr/0007-locomotion-and-input-layers.md), [AD
|
|||||||
|
|
||||||
## Versioning and Delivery
|
## Versioning and Delivery
|
||||||
|
|
||||||
`config/version` in `project.godot` is the single version source (currently `0.9.5`). Releases are tagged `v<version>`; the CI pipeline builds and publishes the standard artifacts plus the optional Desktop HQ zip. Version bumps follow [Semantic Versioning](https://semver.org/). See [`docs/RELEASING.md`](docs/RELEASING.md) and [`README.md`](README.md) for commands.
|
`config/version` in `project.godot` is the single version source (currently `0.9.6`). Releases are tagged `v<version>`; the CI pipeline builds and publishes the standard artifacts plus the optional Desktop HQ zip. Version bumps follow [Semantic Versioning](https://semver.org/). See [`docs/RELEASING.md`](docs/RELEASING.md) and [`README.md`](README.md) for commands.
|
||||||
|
|
||||||
## Design Direction
|
## Design Direction
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ precision walk, the Joke Shop's Sunset Strip frontage, the TV Studio arrival, an
|
|||||||
> on top of the v0.9.4 NPC visual optimization, the Hollywood/Joke Shop maps and
|
> on top of the v0.9.4 NPC visual optimization, the Hollywood/Joke Shop maps and
|
||||||
> the v0.9.3 UI/accessibility polish.
|
> the v0.9.3 UI/accessibility polish.
|
||||||
>
|
>
|
||||||
> **Current source: v0.9.5** — tagged and built from the same commit.
|
> **Current source: v0.9.6** — tagged and built from the same commit.
|
||||||
> Releases are built automatically when a `vX.Y.Z` tag is pushed
|
> Releases are built automatically when a `vX.Y.Z` tag is pushed
|
||||||
> (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use
|
> (see [`docs/RELEASING.md`](docs/RELEASING.md)); manual builds use
|
||||||
> `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline
|
> `./tools/build_releases.sh`. Installer/AppImage packaging runs in the same pipeline
|
||||||
@@ -122,15 +122,15 @@ Full setup, every run/test/smoke command, and the controls table are in
|
|||||||
- [`docs/development-status.md`](docs/development-status.md) — Implemented features and what's next.
|
- [`docs/development-status.md`](docs/development-status.md) — Implemented features and what's next.
|
||||||
- [`docs/smoke-checklist.md`](docs/smoke-checklist.md) — Manual smoke-test checklist.
|
- [`docs/smoke-checklist.md`](docs/smoke-checklist.md) — Manual smoke-test checklist.
|
||||||
- [`docs/blender-assets.md`](docs/blender-assets.md) — Blender asset library: characters, gear, props, attach points.
|
- [`docs/blender-assets.md`](docs/blender-assets.md) — Blender asset library: characters, gear, props, attach points.
|
||||||
- [`docs/npc-visual-review.md`](docs/npc-visual-review.md) — 0.9.4 NPC baseline, acceptance criteria and ranked visual gaps; 0.9.5 texture comparison is in `docs/blender_previews/sheet_texture_refinement_0.9.5.jpg`.
|
- [`docs/npc-visual-review.md`](docs/npc-visual-review.md) — 0.9.4 NPC baseline, acceptance criteria and ranked visual gaps; 0.9.5 texture comparison is in [`docs/blender_previews/sheet_texture_refinement_0.9.5.jpg`](docs/blender_previews/sheet_texture_refinement_0.9.5.jpg).
|
||||||
- [`docs/npc-proportion-audit.md`](docs/npc-proportion-audit.md) — NPC proportion measurements against the shared stylized guide.
|
- [`docs/npc-proportion-audit.md`](docs/npc-proportion-audit.md) — NPC proportion measurements against the shared stylized guide.
|
||||||
- [`docs/adr/`](docs/adr/) — Architecture Decision Records.
|
- [`docs/adr/`](docs/adr/) — Architecture Decision Records.
|
||||||
- [`TODO.md`](TODO.md) — Active tasks plus the 0.x gap analysis and milestone roadmap.
|
- [`TODO.md`](TODO.md) — Active tasks plus the 0.x gap analysis and milestone roadmap.
|
||||||
|
|
||||||
## Development Status
|
## Development Status
|
||||||
|
|
||||||
v0.9.5 is the current source version: the completed texture and material
|
v0.9.6 is the current source version: the integrated texture/material and UI
|
||||||
refinement (256² NPC maps, a 4× fabric weave with baked-AO removal, repaired
|
checkpoint on top of the 0.9.5 texture refinement (256² NPC maps, a 4× fabric weave with baked-AO removal, repaired
|
||||||
Walk of Fame/awning surfaces and per-phase skyline haze), on top of the v0.9.4
|
Walk of Fame/awning surfaces and per-phase skyline haze), on top of the v0.9.4
|
||||||
NPC visual optimization and the v0.9.3 UI/accessibility polish pass. It builds on
|
NPC visual optimization and the v0.9.3 UI/accessibility polish pass. It builds on
|
||||||
v0.9.2's Hollywood/Joke Shop map rebuilds, v0.9.1's Godot 4.7.2 baseline,
|
v0.9.2's Hollywood/Joke Shop map rebuilds, v0.9.1's Godot 4.7.2 baseline,
|
||||||
|
|||||||
@@ -47,106 +47,69 @@ release-candidate foundation, not yet a 0.10.0 release candidate.
|
|||||||
**Current priority:** map optimization, the **pre-build NPC revisit**, the
|
**Current priority:** map optimization, the **pre-build NPC revisit**, the
|
||||||
**0.9.3 UI polish**, **0.9.4 NPC visual optimization** and **0.9.5 texture
|
**0.9.3 UI polish**, **0.9.4 NPC visual optimization** and **0.9.5 texture
|
||||||
refinement** passes are complete (all moved to `DONE.md` on 2026-11-02).
|
refinement** passes are complete (all moved to `DONE.md` on 2026-11-02).
|
||||||
0.9.6 integration and the 0.10.0 release candidate are queued. The source
|
0.9.6 integration and the 0.10.0 release candidate are next. The source version
|
||||||
version is now 0.9.5.
|
is now 0.9.5; the v0.9.5 release is published.
|
||||||
|
|
||||||
## Patch 0.9.5 — Texture and material refinement
|
## Patch 0.9.6 — Integration, performance and judge gate
|
||||||
|
|
||||||
Goal: improve close-range surface and character texture quality while keeping GL
|
|
||||||
Compatibility/Web parity, deterministic assets and offline CI.
|
|
||||||
|
|
||||||
### Environment textures and materials
|
|
||||||
|
|
||||||
- [x] 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. (New `surfaces` and
|
|
||||||
`surfaces_joke` capture stages; no seam or UV-scale failures found.)
|
|
||||||
- [x] 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. (The Walk of Fame
|
|
||||||
band now uses the paver/terrazzo texture; the neighbour awning keeps its
|
|
||||||
cream stripe via a neutral tint and 4× UV. Brick/asphalt picks held up.)
|
|
||||||
- [x] Check UV scales and material roughness/metallic profiles; keep day/night
|
|
||||||
phase behavior and the wet-street transition intact. (Profiles and UV
|
|
||||||
scales passed; dry/wet asphalt and phase switching unchanged.)
|
|
||||||
- [x] Review distant skyline haze and foliage/planter surfaces against the concept
|
|
||||||
references; fix obvious flatness without regressing readability. (Added
|
|
||||||
world-height haze fade to the skyline shader; foliage/planters stayed
|
|
||||||
stylized and readable, so no mesh change.)
|
|
||||||
|
|
||||||
### Character and prop textures
|
|
||||||
|
|
||||||
- [x] Audit NPC skin, cloth, pants, hair and gear albedo/normal/AO maps in portraits;
|
|
||||||
refine fabric weave, skin variation and fixed detail materials. (256² maps rebuilt; fabric
|
|
||||||
now uses a 4× UV weave and skips baked per-character AO, removing the portrait blotches;
|
|
||||||
skin/hair/gear keep AO. Comparison `sheet_npc_baseline_compare-texuv.jpg`.)
|
|
||||||
- [x] Re-bake AO where geometry changes; verify the 256² maps and material wiring.
|
|
||||||
(No character geometry changed in the texture pass; asset/base audits pass.)
|
|
||||||
- [x] Audit library props and UI/card/icon textures at their actual screen sizes;
|
|
||||||
remove blurry/oversized or unused textures where safe. (All 21 screen-art
|
|
||||||
textures are 1280×720 and referenced; access cards are 256×128, HUD icons
|
|
||||||
64×64; no oversized or unused runtime texture found. Legacy root textures
|
|
||||||
remain only as the `generate_textures.py`/asset-test fallback.)
|
|
||||||
- [x] Run texture audits, import, and the full asset test suite; record texture memory
|
|
||||||
and triangle/draw-call impact. (Godot 263/263, Python 101/101; asset and base
|
|
||||||
audits pass; 24 NPCs = 168 meshes / 131,616 triangles / 6.94 ms. Compressed
|
|
||||||
payloads: picks 24.55 MB, UI art 22.67 MB, NPC maps 0.48 MB.)
|
|
||||||
|
|
||||||
### Visual verification
|
|
||||||
|
|
||||||
- [x] Run `python3 tools/scene_concepts.py realism` for the affected stages with the
|
|
||||||
judge enabled; record metric gaps and model/spend. (Run
|
|
||||||
`docs/screens/realism/2026-11-02-tex` with `z-ai/glm-5.3-flash`, one pass per
|
|
||||||
shot; mean `after` overall 1.8, lighting 2.3, materials 1.8, texture 1.2,
|
|
||||||
backdrop 2.0, characters 1.2, Pillow gap 0.306. The judge is optional and not
|
|
||||||
a CI gate; the report stays local.)
|
|
||||||
- [x] Re-run `tools/check_screenshots.sh` and the screen-design judge; clear all
|
|
||||||
`diff` verdicts. (21 good / 0 bad; `screen_designs.py judge` = 21/21 match,
|
|
||||||
0 review, 0 diff.)
|
|
||||||
- [x] Capture before/after close-ups for brick, pavement, asphalt, character cloth
|
|
||||||
and skyline; document accepted trade-offs. (Committed
|
|
||||||
`docs/blender_previews/sheet_texture_refinement_0.9.5.jpg`: Walk of Fame
|
|
||||||
pavers, asphalt aggregate, limestone facade, day skyline haze and NPC cloth;
|
|
||||||
asphalt/limestone picks intentionally held, no replacement.)
|
|
||||||
- [x] Update asset docs and the changelog/status with the promoted texture versions.
|
|
||||||
(README/PLAN/architecture/status/MEMORY and the 0.9.5 changelog entry now
|
|
||||||
carry the texture results; the 0.9.5 section moved to `DONE.md` after the
|
|
||||||
release build.)
|
|
||||||
|
|
||||||
## Postponed — Patch 0.9.6 — Integration, performance and judge gate
|
|
||||||
|
|
||||||
Goal: integrate the UI/model/texture patches, prove the combined build on the
|
Goal: integrate the UI/model/texture patches, prove the combined build on the
|
||||||
target paths and leave a clean release-candidate handoff.
|
target paths and leave a clean release-candidate handoff.
|
||||||
|
|
||||||
### Integration and asset rebuild
|
### Integration and asset rebuild
|
||||||
|
|
||||||
- [ ] Rebuild all changed Blender/GLB/AO assets, re-import, and verify manifest/fit/
|
- [x] Rebuild all changed Blender/GLB/AO assets, re-import, and verify manifest/fit/
|
||||||
audit coverage.
|
audit coverage. (The v0.9.5 commit already rebuilt the base, eight characters,
|
||||||
- [ ] Run the complete headless suite, Python tooling and smoke matrix; fix any
|
gear and AO maps; this checkpoint re-imported them and re-ran
|
||||||
regression from the three polish patches.
|
`blender_assets.py audit`/`fit` and `npc_pipeline.py audit`, all exit 0.)
|
||||||
- [ ] Re-run the 24-NPC budget smoke and record frame time, mesh count and any
|
- [x] Run the complete headless suite, Python tooling and smoke matrix; fix any
|
||||||
texture-memory change; check Web and Desktop HQ if available.
|
regression from the three polish patches. (Godot 263/263, Python 101/101;
|
||||||
- [ ] Verify save/campaign/tutorial behavior is unchanged by the visual/UI patches.
|
14 smokes green: audio, campaign, crowd, emergency, focus/radial, movement,
|
||||||
|
NPC budget, PLAN verbs, props, scenario content, session shell, timeline,
|
||||||
|
tutorial and UI flows. Campaign/tutorial used isolated `XDG_DATA_HOME`.)
|
||||||
|
- [x] 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. (24 avatars,
|
||||||
|
168 meshes, 131,616 triangles, 6.90 ms of 50 ms headless; NPC maps remain
|
||||||
|
0.48 MB. A clean detached worktree at `f5b8ef2` built Linux/Windows/macOS/
|
||||||
|
Web/HQ (`161.5/197.1/148.0/97.8/241.5 MB`); the Web zip has index.html,
|
||||||
|
wasm and pck, the HQ zip has `override.cfg`, and the HQ binary launches
|
||||||
|
headless with the Forward+ override.)
|
||||||
|
- [x] Verify save/campaign/tutorial behavior is unchanged by the visual/UI patches.
|
||||||
|
(Persistence/session tests remain in the 263-test suite; campaign and tutorial
|
||||||
|
smokes passed with isolated `XDG_DATA_HOME`.)
|
||||||
|
|
||||||
### Visual gallery and judge gate
|
### Visual gallery and judge gate
|
||||||
|
|
||||||
- [ ] Recapture the full gallery, portraits, venue/realsim stages and Desktop HQ A/B
|
- [x] Recapture the full gallery, portraits, venue/realsim stages and Desktop HQ A/B
|
||||||
as needed; no stale screenshots in the release set.
|
as needed; no stale screenshots in the release set. (Gallery 21/21,
|
||||||
- [ ] Run `tools/check_screenshots.sh`, `screen_designs.py compare` and
|
NPC baseline 48 frames, final-context review 96 frames and a fresh 10-shot
|
||||||
`screen_designs.py judge` on the final captures.
|
realism run were recaptured. No Forward+ code changed since 0.7.1, so the
|
||||||
- [ ] Run the realism judge for the affected concepts with a pinned model; record
|
HQ A/B was not re-staged; the HQ artifact is checked with the release build.)
|
||||||
model, attempt count, spend and verdicts.
|
- [x] Run `tools/check_screenshots.sh`, `screen_designs.py compare` and
|
||||||
- [ ] Review all `review` verdicts manually; convert unexplained layout/composition
|
`screen_designs.py judge` on the final captures. (21 good / 0 bad; compare
|
||||||
mismatches into fixes or explicit known limitations.
|
21 good / 0 bad; judge 21/21 match, 0 review, 0 diff.)
|
||||||
- [ ] Ensure generated realism folders remain gitignored/local-only and only the
|
- [x] Run the realism judge for the affected concepts with a pinned model; record
|
||||||
durable report decisions/docs are committed.
|
model, attempt count, spend and verdicts. (`z-ai/glm-5.3-flash`, 1 pass per
|
||||||
|
shot, 10 shots, no fallback/retry: mean overall 2.1, lighting 2.4, materials
|
||||||
|
2.1, texture 1.7, backdrop 2.3, characters 1.8, Pillow gap 0.291. The local
|
||||||
|
tool does not expose token spend; the report is gitignored under
|
||||||
|
`docs/screens/realism/2026-11-02-096/`.)
|
||||||
|
- [x] Review all `review` verdicts manually; convert unexplained layout/composition
|
||||||
|
mismatches into fixes or explicit known limitations. (Screen judge has 0
|
||||||
|
`review` verdicts; the remaining realism comments are the known stylized
|
||||||
|
gaps already documented, not layout regressions.)
|
||||||
|
- [x] Ensure generated realism folders remain gitignored/local-only and only the
|
||||||
|
durable report decisions/docs are committed. (`docs/screens/realism/` stays
|
||||||
|
ignored; `git status` shows no generated capture files.)
|
||||||
|
|
||||||
### Release-candidate handoff
|
### Release-candidate handoff
|
||||||
|
|
||||||
- [ ] Update README, architecture, development status, changelog and TODO with the
|
- [x] Update README, architecture, development status, changelog and TODO with the
|
||||||
final patch-level results and any remaining gaps.
|
final patch-level results and any remaining gaps. (README/PLAN/architecture
|
||||||
- [ ] Tag/version or otherwise freeze `0.9.6` as the integration checkpoint before
|
now point at 0.9.6; the changelog and development status record the
|
||||||
the `0.10.0` release candidate.
|
integration build, performance numbers, judge results and the clean-worktree
|
||||||
|
export rule; `docs/RELEASING.md` documents the ignored-folder trap.)
|
||||||
|
- [-] Tag/version or otherwise freeze `0.9.6` as the integration checkpoint before
|
||||||
|
the `0.10.0` release candidate. (claimed; committing and tagging)
|
||||||
- [ ] Exit: combined build is functionally green, visually reviewed, performance
|
- [ ] Exit: combined build is functionally green, visually reviewed, performance
|
||||||
measured and ready for the 0.10.0 content-lock/playtest phase.
|
measured and ready for the 0.10.0 content-lock/playtest phase.
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,11 @@ The optional Desktop HQ zip is assembled by `tools/build_releases.sh` from
|
|||||||
`packaging/desktop_hq/`; keep `override.cfg` next to the extracted executable.
|
`packaging/desktop_hq/`; keep `override.cfg` next to the extracted executable.
|
||||||
It is not part of the default Compatibility/Web build.
|
It is not part of the default Compatibility/Web build.
|
||||||
|
|
||||||
|
Always run the release build from a clean checkout or detached worktree. Godot
|
||||||
|
can pack files from ignored `tmp/` and old `build/` folders into the PCK; the
|
||||||
|
0.9.6 dirty-tree build produced 1.6–3.1 GB artifacts, while the clean worktree
|
||||||
|
produced the expected ~160–240 MB packages.
|
||||||
|
|
||||||
Locally you can build the AppImage with `bash packaging/linux/build_appimage.sh <version>`;
|
Locally you can build the AppImage with `bash packaging/linux/build_appimage.sh <version>`;
|
||||||
the NSIS installer requires `makensis` (covered by CI).
|
the NSIS installer requires `makensis` (covered by CI).
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ This document follows the structure of the arc42 architecture documentation temp
|
|||||||
- **MINOR** — new venues, NPC archetypes, systems, or features that are backward compatible.
|
- **MINOR** — new venues, NPC archetypes, systems, or features that are backward compatible.
|
||||||
- **PATCH** — bug fixes and small polish that do not change behavior.
|
- **PATCH** — bug fixes and small polish that do not change behavior.
|
||||||
|
|
||||||
The single source of truth for the version is `config/version` in `project.godot` (currently `0.9.5`). Each release is tagged in git as `v<version>` (e.g. `v0.6.0`). The `0.x` series is pre-stable, so MINOR bumps may introduce breaking changes while the prototype is still stabilizing. `tools/build_releases.sh` and `tools/publish_release.sh` read the version from `project.godot`, so bumping it there is the only required step before a release. The full bump checklist lives in [`RELEASING.md`](RELEASING.md).
|
The single source of truth for the version is `config/version` in `project.godot` (currently `0.9.6`). Each release is tagged in git as `v<version>` (e.g. `v0.6.0`). The `0.x` series is pre-stable, so MINOR bumps may introduce breaking changes while the prototype is still stabilizing. `tools/build_releases.sh` and `tools/publish_release.sh` read the version from `project.godot`, so bumping it there is the only required step before a release. The full bump checklist lives in [`RELEASING.md`](RELEASING.md).
|
||||||
|
|
||||||
## 3. Context and Scope
|
## 3. Context and Scope
|
||||||
|
|
||||||
|
|||||||
@@ -268,6 +268,19 @@ photoreal renderer. The 0.9.5 before/after close-up sheet is
|
|||||||
the texture-adoption run itself was the earlier 0.8-style candidate comparison,
|
the texture-adoption run itself was the earlier 0.8-style candidate comparison,
|
||||||
and its report remains local/gitignored.
|
and its report remains local/gitignored.
|
||||||
|
|
||||||
|
For the 0.9.6 integration checkpoint the same judge was pinned to
|
||||||
|
`z-ai/glm-5.3-flash` and run once per shot on the 10-shot set: mean overall 2.1,
|
||||||
|
lighting 2.4, materials 2.1, texture 1.7, backdrop 2.3, characters 1.8, Pillow
|
||||||
|
gap 0.291. No `review` verdicts were produced by the screen judge, so there was
|
||||||
|
no manual layout verdict to convert into a fix; the remaining realism comments
|
||||||
|
are the accepted stylized gaps.
|
||||||
|
|
||||||
|
Build release artifacts from a clean checkout or detached worktree. A normal
|
||||||
|
working tree may contain ignored `tmp/` captures and old `build/` artifacts, and
|
||||||
|
Godot can pack enough of those into exports to inflate a 0.9.6 package from
|
||||||
|
~160 MB to 1.6–3.1 GB. The 0.9.6 clean worktree produced 161.5 MB Linux,
|
||||||
|
197.1 MB Windows, 148.0 MB macOS, 97.8 MB Web and 241.5 MB Desktop HQ.
|
||||||
|
|
||||||
The Forward+ A/B compared the Compatibility entrance with the optional Desktop HQ
|
The Forward+ A/B compared the Compatibility entrance with the optional Desktop HQ
|
||||||
preset. The gear-fit run checked the sunglasses, bag and helmet against measured
|
preset. The gear-fit run checked the sunglasses, bag and helmet against measured
|
||||||
head/skirt bounds with `python3 tools/blender_assets.py fit`; it also fixed the
|
head/skirt bounds with `python3 tools/blender_assets.py fit`; it also fixed the
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ Implemented so far:
|
|||||||
- NPC neck/shoulder transition (0.9.4 work): the body graph now uses a fuller neck base, a slightly tapered neck top and a lower shoulder root, giving the head/neck/shoulder line a trapezius slope instead of a thin post. The full character library was rebuilt with a final degenerate-face cleanup; the baseline comparison is `sheet_npc_baseline_compare-body.jpg`.
|
- NPC neck/shoulder transition (0.9.4 work): the body graph now uses a fuller neck base, a slightly tapered neck top and a lower shoulder root, giving the head/neck/shoulder line a trapezius slope instead of a thin post. The full character library was rebuilt with a final degenerate-face cleanup; the baseline comparison is `sheet_npc_baseline_compare-body.jpg`.
|
||||||
- NPC face-depth pass (0.9.4 work): sclera are recessed and capped by a thin upper lid, and the separate jaw/cheek spheres are replaced by a chin plate and cheekbones sculpted into the head mesh. The full library was rebuilt; the comparison is `sheet_npc_baseline_compare-face.jpg`.
|
- NPC face-depth pass (0.9.4 work): sclera are recessed and capped by a thin upper lid, and the separate jaw/cheek spheres are replaced by a chin plate and cheekbones sculpted into the head mesh. The full library was rebuilt; the comparison is `sheet_npc_baseline_compare-face.jpg`.
|
||||||
- NPC torso/hip transition (0.9.4 work): the pelvis and chest are slightly wider than the waist, giving shirts and jackets a readable taper into the hips without changing the build multipliers or the skeleton. The comparison is `sheet_npc_baseline_compare-torso.jpg`.
|
- NPC torso/hip transition (0.9.4 work): the pelvis and chest are slightly wider than the waist, giving shirts and jackets a readable taper into the hips without changing the build multipliers or the skeleton. The comparison is `sheet_npc_baseline_compare-torso.jpg`.
|
||||||
|
- Integration checkpoint (0.9.6 work): the clean worktree at `f5b8ef2` rebuilt all five release packages and the Desktop HQ zip without ignored `tmp/`/`build/` content (Linux 161.5 MB, Windows 197.1 MB, macOS 148.0 MB, Web 97.8 MB, HQ 241.5 MB). The Web zip contains `index.html`, `index.wasm` and `index.pck`; the HQ zip contains `override.cfg` and launches headless with the Forward+ override. Current verification: Godot 263/263, Python 101/101, 14 smokes green, 24-NPC budget 6.90 ms / 168 meshes / 131,616 triangles, gallery 21 good / 0 bad, screen judge 21/21 match with 0 review/diff, and a pinned realism judge (`z-ai/glm-5.3-flash`, one pass per shot) at mean overall 2.1 and Pillow gap 0.291. No new gameplay or content changes.
|
||||||
|
- Release v0.9.5 (2026-11-02): the tagged commit `4bc6390` passed Gitea Actions run 922 (checks + full build) and published seven artifacts (Linux, Windows, macOS, NSIS setup, AppImage, Web and Desktop HQ). Release page: <https://git.allucanget.biz/zwitschi/security-game/releases/tag/v0.9.5>.
|
||||||
- Release v0.9.4 (2026-11-02): the tagged commit `a57b86c` passed the Gitea checks and full build and published seven artifacts (Linux, Windows, macOS, NSIS setup, AppImage, Web and Desktop HQ). Release page: <https://git.allucanget.biz/zwitschi/security-game/releases/tag/v0.9.4>.
|
- Release v0.9.4 (2026-11-02): the tagged commit `a57b86c` passed the Gitea checks and full build and published seven artifacts (Linux, Windows, macOS, NSIS setup, AppImage, Web and Desktop HQ). Release page: <https://git.allucanget.biz/zwitschi/security-game/releases/tag/v0.9.4>.
|
||||||
- Environment texture pass (0.9.5 work): `capture_realism.gd` now has hidden-HUD `surfaces`/`surfaces_joke` close-up stages. The Walk of Fame band uses the paver texture as dark terrazzo, the neighbour awning keeps its cream stripe, and the skyline shader blends its lower 42 m toward a per-phase haze colour. Brick, asphalt, limestone and paver UV scales/profiles passed without replacement.
|
- Environment texture pass (0.9.5 work): `capture_realism.gd` now has hidden-HUD `surfaces`/`surfaces_joke` close-up stages. The Walk of Fame band uses the paver texture as dark terrazzo, the neighbour awning keeps its cream stripe, and the skyline shader blends its lower 42 m toward a per-phase haze colour. Brick, asphalt, limestone and paver UV scales/profiles passed without replacement.
|
||||||
- Texture/prop audit (0.9.5 work): all 21 screen-art textures are 1280×720 and referenced; access cards are 256×128 and HUD icons 64×64. No oversized or unused runtime texture was found; the legacy root textures remain only as the texture-generator/asset-test fallback. The 24-NPC smoke now reports 168 meshes, 131,616 triangles and 6.94 ms (50 ms budget); compressed payload is 24.55 MB of surface picks, 22.67 MB of screen art and 0.48 MB of NPC maps.
|
- Texture/prop audit (0.9.5 work): all 21 screen-art textures are 1280×720 and referenced; access cards are 256×128 and HUD icons 64×64. No oversized or unused runtime texture was found; the legacy root textures remain only as the texture-generator/asset-test fallback. The 24-NPC smoke now reports 168 meshes, 131,616 triangles and 6.94 ms (50 ms budget); compressed payload is 24.55 MB of surface picks, 22.67 MB of screen art and 0.48 MB of NPC maps.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 543 KiB After Width: | Height: | Size: 542 KiB |
|
Before Width: | Height: | Size: 660 KiB After Width: | Height: | Size: 659 KiB |
|
Before Width: | Height: | Size: 383 KiB After Width: | Height: | Size: 385 KiB |
|
Before Width: | Height: | Size: 761 KiB After Width: | Height: | Size: 761 KiB |
|
Before Width: | Height: | Size: 567 KiB After Width: | Height: | Size: 567 KiB |
|
Before Width: | Height: | Size: 529 KiB After Width: | Height: | Size: 529 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
@@ -12,7 +12,7 @@ config_version=5
|
|||||||
|
|
||||||
config/name="Gig Line"
|
config/name="Gig Line"
|
||||||
config/description="Workplace security simulation about observation, access verification, and proportionate escalation."
|
config/description="Workplace security simulation about observation, access verification, and proportionate escalation."
|
||||||
config/version="0.9.5"
|
config/version="0.9.6"
|
||||||
run/main_scene="res://scenes/main.tscn"
|
run/main_scene="res://scenes/main.tscn"
|
||||||
config/features=PackedStringArray("4.7", "GL Compatibility")
|
config/features=PackedStringArray("4.7", "GL Compatibility")
|
||||||
|
|
||||||
|
|||||||