Add investor visual QA evidence gate

This commit is contained in:
2026-05-19 11:20:45 -07:00
parent 81bf5ec433
commit 1ac7166942
6 changed files with 195 additions and 1 deletions
+1 -1
View File
@@ -828,7 +828,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
- [x] Preserve realism as the target: use assets, materials, lighting, and environmental dressing that can survive toward MVP production rather than cosmetic throwaways where practical. Added MVP realism target rules to the shared art/UX/code/asset standards, tied current 0.1.O visual passes to production-directed proxy expectations, and added a verifier that requires Ground Zero materials, water, density/sightline, character, and survival-object docs to point toward production realism instead of cosmetic throwaways. - [x] Preserve realism as the target: use assets, materials, lighting, and environmental dressing that can survive toward MVP production rather than cosmetic throwaways where practical. Added MVP realism target rules to the shared art/UX/code/asset standards, tied current 0.1.O visual passes to production-directed proxy expectations, and added a verifier that requires Ground Zero materials, water, density/sightline, character, and survival-object docs to point toward production realism instead of cosmetic throwaways.
- [x] Define default, recommended, and cinematic investor rendering presets, with ray tracing available only as an optional high-end/cinematic mode and never required for baseline visual credibility. Added `Config/AgrarianRenderingPresets.ini`, `Docs/Rendering/InvestorRenderingPresets.md`, and a verifier that requires Default and Recommended to remain non-ray-traced while Cinematic is the only optional high-end ray-tracing profile. - [x] Define default, recommended, and cinematic investor rendering presets, with ray tracing available only as an optional high-end/cinematic mode and never required for baseline visual credibility. Added `Config/AgrarianRenderingPresets.ini`, `Docs/Rendering/InvestorRenderingPresets.md`, and a verifier that requires Default and Recommended to remain non-ray-traced while Cinematic is the only optional high-end ray-tracing profile.
- [x] Verify the non-ray-traced compatibility/default path still looks credible on common investor, tester, and remote-session hardware. Added a dedicated non-ray-traced default verifier that checks Default and Recommended disable `r.RayTracing`, `r.Lumen.HardwareRayTracing`, and `r.PathTracing`, keeps Cinematic as the only optional ray-tracing profile, and documents that packaged investor demos should launch on Default unless another profile is explicitly selected. - [x] Verify the non-ray-traced compatibility/default path still looks credible on common investor, tester, and remote-session hardware. Added a dedicated non-ray-traced default verifier that checks Default and Recommended disable `r.RayTracing`, `r.Lumen.HardwareRayTracing`, and `r.PathTracing`, keeps Cinematic as the only optional ray-tracing profile, and documents that packaged investor demos should launch on Default unless another profile is explicitly selected.
- [ ] Add packaged-demo visual QA screenshots or short clips for startup credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause menu, and save/quit before each investor build is called ready. - [x] Add packaged-demo visual QA screenshots or short clips for startup credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause menu, and save/quit before each investor build is called ready. Added a full investor-demo visual QA evidence runbook, Windows helper, startup capture expansion, and verifier requiring Sunshine/Moonlight or equivalent real-GPU captures for startup credits, character selection, first spawn, terrain, vegetation, water, campfire, shelter, pause, and save/quit before a packaged build is called investor-ready.
- [ ] Add an investor-demo acceptance gate: no current build should be described as investor visual MVP if menus are confusing, character art is mannequin-only, terrain is flat/tan, foliage is absent or unreadable, or core objects still read as primitive debug shapes. - [ ] Add an investor-demo acceptance gate: no current build should be described as investor visual MVP if menus are confusing, character art is mannequin-only, terrain is flat/tan, foliage is absent or unreadable, or core objects still read as primitive debug shapes.
## 0.1.P MVP Audio And Atmosphere ## 0.1.P MVP Audio And Atmosphere
@@ -42,6 +42,16 @@ Required evidence:
- `06-pause-menu` - Escape opens the pause menu, mouse cursor is visible, and - `06-pause-menu` - Escape opens the pause menu, mouse cursor is visible, and
gameplay is blocked. gameplay is blocked.
- `07-save-quit` - Save & Quit shows the saving segment before closing. - `07-save-quit` - Save & Quit shows the saving segment before closing.
- `08-terrain` - Ground Zero terrain reads as shaped coastal terrain, not a
flat tan placeholder.
- `09-vegetation` - grasses, shrubs, bushes, and trees are visible without
hiding interaction targets.
- `10-water` - the freshwater source reads as collectable water with bank/edge
dressing.
- `11-campfire` - the campfire reads as a campfire object, not a primitive
debug shape.
- `12-shelter` - the primitive shelter reads as a shelter object, not primitive
debug blocks.
Create `visual-startup-check.txt` in the capture folder with: Create `visual-startup-check.txt` in the capture folder with:
+44
View File
@@ -0,0 +1,44 @@
# Packaged Demo Visual QA Evidence
Each Windows investor build needs a real-GPU visual evidence set before it is
called ready. Headless automation and QEMU guest-agent screenshots can confirm
process state, but they cannot prove that the rendered desktop, menus, terrain,
foliage, water, and survival objects are visually credible.
Use Sunshine plus Moonlight, or an equivalent real-GPU desktop capture path, and
save evidence under:
`Saved\VisualQA\InvestorDemo\<version-or-build>\`
Required screenshots or short clips:
- `01-startup-credits`
- `02-character-selection`
- `03-first-spawn`
- `04-terrain`
- `05-vegetation`
- `06-water`
- `07-campfire`
- `08-shelter`
- `09-pause-menu`
- `10-save-quit`
Evidence may be screenshots, a single labeled clip, or a short clip plus stills.
Do not commit raw captures to Git; keep them in `Saved\VisualQA` or publish
links/paths in release notes.
Create `visual-qa-summary.txt` beside the captures with:
- package path;
- build/version label;
- rendering preset used, normally Default;
- capture method, normally Sunshine plus Moonlight;
- tester name;
- pass/fail result;
- visible defects;
- whether the build is acceptable for investor viewing.
The package is not investor visual MVP ready if any required segment is missing
or if the first-spawn view still reads as flat terrain, absent foliage,
placeholder water, debug-shape campfire/shelter objects, confusing menus, or
broken save/quit flow.
@@ -29,6 +29,11 @@ echo 04-loading
echo 05-first-spawn echo 05-first-spawn
echo 06-pause-menu echo 06-pause-menu
echo 07-save-quit echo 07-save-quit
echo 08-terrain
echo 09-vegetation
echo 10-water
echo 11-campfire
echo 12-shelter
echo. echo.
echo Create visual-startup-check.txt in the capture folder with package path, echo Create visual-startup-check.txt in the capture folder with package path,
echo launcher used, capture method, tester, pass/fail result, and notes. echo launcher used, capture method, tester, pass/fail result, and notes.
@@ -0,0 +1,60 @@
@echo off
setlocal EnableExtensions
set "PROJECT_DIR=%~dp0.."
set "PACKAGE_DIR=%PROJECT_DIR%\Builds\WindowsDevelopment"
set "DEMO_EXE=%PACKAGE_DIR%\AgrarianGame.exe"
set "CAPTURE_ROOT=%PROJECT_DIR%\Saved\VisualQA\InvestorDemo"
if /I "%~1"=="--check-tools" goto CHECK_TOOLS
call :CHECK_COMMON || exit /b %ERRORLEVEL%
if not exist "%CAPTURE_ROOT%" mkdir "%CAPTURE_ROOT%" >nul 2>nul
echo.
echo Agrarian investor-demo full visual QA evidence checklist
echo --------------------------------------------------------
echo Package: "%PACKAGE_DIR%"
echo Capture root: "%CAPTURE_ROOT%"
echo.
echo Use Sunshine plus Moonlight or an equivalent real GPU desktop capture path.
echo Do not use QEMU guest-agent screenshots for this visual gate.
echo Use the Default rendering preset unless intentionally validating another profile.
echo.
echo Required capture labels:
echo 01-startup-credits
echo 02-character-selection
echo 03-first-spawn
echo 04-terrain
echo 05-vegetation
echo 06-water
echo 07-campfire
echo 08-shelter
echo 09-pause-menu
echo 10-save-quit
echo.
echo Create visual-qa-summary.txt beside the captures with package path,
echo version label, rendering preset, capture method, tester, pass/fail result,
echo visible defects, and investor-viewing decision.
echo.
exit /b 0
:CHECK_TOOLS
call :CHECK_COMMON || exit /b %ERRORLEVEL%
echo READY: packaged demo exists and SunshineService is running.
exit /b 0
:CHECK_COMMON
if not exist "%DEMO_EXE%" (
echo ERROR: Packaged demo executable not found: "%DEMO_EXE%"
exit /b 2
)
sc query SunshineService | find /I "RUNNING" >nul 2>nul
if errorlevel 1 (
echo ERROR: SunshineService is not running. Start Sunshine before the investor visual QA capture.
exit /b 3
)
exit /b 0
@@ -0,0 +1,75 @@
#!/usr/bin/env python3
"""Verify the packaged investor-demo visual QA evidence gate is documented."""
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
DOC = ROOT / "Docs" / "Ops" / "PackagedDemoVisualQAEvidence.md"
STARTUP_DOC = ROOT / "Docs" / "Ops" / "PackagedClientGpuStartupVisualTest.md"
BAT = ROOT / "Scripts" / "RunWindowsInvestorVisualQACheck.bat"
STARTUP_BAT = ROOT / "Scripts" / "RunWindowsGpuStartupVisualCheck.bat"
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
REQUIRED_LABELS = [
"01-startup-credits",
"02-character-selection",
"03-first-spawn",
"04-terrain",
"05-vegetation",
"06-water",
"07-campfire",
"08-shelter",
"09-pause-menu",
"10-save-quit",
]
def require(condition, message):
if not condition:
raise SystemExit(f"FAILED: {message}")
def main():
doc = DOC.read_text(encoding="utf-8")
startup_doc = STARTUP_DOC.read_text(encoding="utf-8")
bat = BAT.read_text(encoding="utf-8")
startup_bat = STARTUP_BAT.read_text(encoding="utf-8")
roadmap = ROADMAP.read_text(encoding="utf-8")
for token in [
"Sunshine plus Moonlight",
"Saved\\VisualQA\\InvestorDemo",
"visual-qa-summary.txt",
"Do not commit raw captures to Git",
"Default",
"investor visual MVP ready",
]:
require(token in doc, f"visual QA evidence doc missing {token!r}")
for label in REQUIRED_LABELS:
require(label in doc, f"visual QA evidence doc missing {label!r}")
require(label in bat, f"Windows visual QA helper missing {label!r}")
for token in [
"08-terrain",
"09-vegetation",
"10-water",
"11-campfire",
"12-shelter",
]:
require(token in startup_doc, f"startup GPU visual doc missing expanded label {token!r}")
require(token in startup_bat, f"startup GPU visual helper missing expanded label {token!r}")
require("SunshineService" in bat, "Windows visual QA helper must check SunshineService")
require("--check-tools" in bat, "Windows visual QA helper must support --check-tools")
require(
"[x] Add packaged-demo visual QA screenshots or short clips" in roadmap,
"0.1.O packaged-demo visual QA evidence roadmap item is not checked off",
)
print("OK: packaged investor-demo visual QA evidence gate is documented and scripted.")
if __name__ == "__main__":
main()