Verify non ray traced investor default
This commit is contained in:
@@ -827,7 +827,7 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
|
||||
- [x] Add density and sightline tuning so grasses, shrubs, trees, and resource clusters are visible enough to sell the world without hiding gameplay-critical objects. Added protected foliage clearances around early survival targets and biome resource nodes, sampled first-look sightline corridors from the player start to wood, fiber, campfire, shelter, wildlife, and freshwater, plus a dedicated Unreal verifier/documentation gate so investor-facing density cannot regress into object-hiding clutter.
|
||||
- [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.
|
||||
- [ ] Verify the non-ray-traced compatibility/default path still looks credible on common investor, tester, and remote-session hardware.
|
||||
- [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.
|
||||
- [ ] 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.
|
||||
|
||||
|
||||
@@ -42,6 +42,8 @@ high-end walkthroughs.
|
||||
|
||||
- No gameplay feature should require ray tracing.
|
||||
- The default investor demo must remain credible with ray tracing disabled.
|
||||
- The packaged investor demo should launch against the Default preset unless a
|
||||
tester explicitly selects another profile.
|
||||
- Cinematic settings may be slower and should never become the required tester
|
||||
path.
|
||||
- If a visual feature only works in cinematic mode, it needs a default-mode
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
PRESET_FILE = ROOT / "Config" / "AgrarianRenderingPresets.ini"
|
||||
DOCS_FILE = ROOT / "Docs" / "Rendering" / "InvestorRenderingPresets.md"
|
||||
ROADMAP_FILE = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
|
||||
|
||||
|
||||
def read_presets():
|
||||
presets = {}
|
||||
active_section = None
|
||||
for raw_line in PRESET_FILE.read_text(encoding="utf-8").splitlines():
|
||||
line = raw_line.strip()
|
||||
if not line or line.startswith(";"):
|
||||
continue
|
||||
if line.startswith("[") and line.endswith("]"):
|
||||
active_section = line[1:-1]
|
||||
presets[active_section] = {"CVars": []}
|
||||
continue
|
||||
if not active_section or "=" not in line:
|
||||
continue
|
||||
|
||||
key, value = line.split("=", 1)
|
||||
if key == "+CVars":
|
||||
presets[active_section]["CVars"].append(value)
|
||||
else:
|
||||
presets[active_section][key] = value
|
||||
return presets
|
||||
|
||||
|
||||
def main():
|
||||
failures = []
|
||||
presets = read_presets()
|
||||
default = presets.get("AgrarianRenderingPreset.Default")
|
||||
recommended = presets.get("AgrarianRenderingPreset.Recommended")
|
||||
cinematic = presets.get("AgrarianRenderingPreset.Cinematic")
|
||||
|
||||
if not default:
|
||||
failures.append("missing AgrarianRenderingPreset.Default")
|
||||
if not recommended:
|
||||
failures.append("missing AgrarianRenderingPreset.Recommended")
|
||||
if not cinematic:
|
||||
failures.append("missing AgrarianRenderingPreset.Cinematic")
|
||||
|
||||
for label, section in [("Default", default), ("Recommended", recommended)]:
|
||||
if not section:
|
||||
continue
|
||||
cvars = set(section.get("CVars", []))
|
||||
if section.get("RayTracing") != "Disabled":
|
||||
failures.append(f"{label} RayTracing must be Disabled")
|
||||
for cvar in ["r.RayTracing=0", "r.Lumen.HardwareRayTracing=0", "r.PathTracing=0"]:
|
||||
if cvar not in cvars:
|
||||
failures.append(f"{label} missing non-ray-tracing CVar {cvar}")
|
||||
if "r.RayTracing=1" in cvars or "r.Lumen.HardwareRayTracing=1" in cvars:
|
||||
failures.append(f"{label} enables ray tracing")
|
||||
|
||||
if cinematic:
|
||||
cvars = set(cinematic.get("CVars", []))
|
||||
if cinematic.get("RayTracing") != "Optional":
|
||||
failures.append("Cinematic RayTracing must be Optional")
|
||||
if "r.RayTracing=1" not in cvars:
|
||||
failures.append("Cinematic must be the only preset that opts into r.RayTracing=1")
|
||||
|
||||
docs_text = DOCS_FILE.read_text(encoding="utf-8")
|
||||
for snippet in [
|
||||
"Default is the investor demo baseline",
|
||||
"Ray tracing: disabled.",
|
||||
"Cinematic is optional",
|
||||
"No gameplay feature should require ray tracing.",
|
||||
]:
|
||||
if snippet not in docs_text:
|
||||
failures.append(f"{DOCS_FILE} missing snippet: {snippet}")
|
||||
|
||||
roadmap_text = ROADMAP_FILE.read_text(encoding="utf-8")
|
||||
if "[x] Verify the non-ray-traced compatibility/default path" not in roadmap_text:
|
||||
failures.append("roadmap item is not marked complete")
|
||||
|
||||
if failures:
|
||||
raise SystemExit("Non-ray-traced default verification failed:\n" + "\n".join(failures))
|
||||
|
||||
print("PASS: default and recommended investor rendering paths are non-ray-traced; cinematic is optional.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user