2.8 KiB
LANE F — INTEGRATION & QA (run after A–E land)
Prompt for Opus 4.8. You are working in
/Users/jing/Documents/PROCITY. Readdocs/CITY_SPEC.md, then everydocs/LANES/LANE_*_NOTES.mdthe other lanes left. You may touch any file, but prefer surgical wiring changes over rewrites — each lane's internals are its own. This lane turns five verified parts into one game.
Mission
One URL, one seed, a whole town: web/index.html?seed=N → map → walk the streets → open any
door → themed interior with a keeper → back out — 60fps, no seams, no leaks.
Wiring checklist
- Swap Lane B's
fixture_plan.jsfor Lane A'sgeneratePlan(seed); seed from URL param, surfaced in HUD;web/map.htmllinked from an in-game map key (M) using the same plan. - Wire
procity:enterShop→ Lane CbuildInterior(mode switch, street scene paused not disposed, player restored on exit at the door, interior disposed on exit). - Wire Lane D: citizens stream with Lane B's chunks (roster per chunk key); keepers spawn from
Lane C's counter
places; day-segment events drive density. - Point Lanes B/C at Lane E's
manifest.json(skin→type mapping replaces any hardcoded pools; GLB upgrades appear; primitive fallbacks still exercised via a?noassets=1param). - Hours: closed shops (CityPlan
hoursvs day segment) get dark windows, CLOSED plate, locked door toast. One late-night shop per town stays open (Lane A seeds it) — verify it exists.
QA gates (all must pass before calling it v1)
- Determinism: seed 1234 on two machines → identical map PNG, identical first-interior placement list.
- Soak: scripted 10-minute walk (record a waypoint path, drive the camera) crossing ≥30
chunks, entering ≥15 shops:
renderer.info.memorygeometries/textures return to baseline after each interior; JS heap stable; zero console errors. - Budget: HUD numbers within CITY_SPEC limits at the busiest intersection at midday.
- Asset-free run:
?noassets=1full playthrough — placeholder town, zero crashes. - Selfchecks:
node web/js/citygen/selfcheck.js+python3 pipeline/validate_manifest.pygreen; addtools/qa.shthat runs both. - Shots: refresh all
docs/shots/*reference images; add a contact-sheetdocs/shots/v1_tour/(10 beauty shots: main street noon, arcade, market square, milkbar dusk, record-shop interior, night neon, etc.) — these are the Vuntra-style devlog material.
Then write docs/V2_IDEAS.md
Park everything discovered but not built: dig.js wiring + BaseGod real-item stock, interior
window shader, real-OSM plan import (thriftgod build_city() route), trams/bus loop, weather,
multiplayer presence, the in-game layout editor (thriftgod E1–E4 override tables), venue
district + gig system crossover with 90sDJsim.