50 lines
2.8 KiB
Markdown
50 lines
2.8 KiB
Markdown
# PROCITY
|
||
|
||
A standalone, procedurally generated, fully walkable 90s-Australian shopping town — every
|
||
building enterable (the Vuntra City trick), every interior seeded and themed: record stores,
|
||
op shops, toy shops, book barns, video rental, pawnbrokers, milk bars, market stalls. Built on
|
||
the proven house stack (three.js r175 vendored, plain JS, no build step) and the asset DNA of
|
||
90sDJsim + thriftgod. v1 is the *system*; the GODVERSE/BaseGod real-item content plugs in later.
|
||
|
||
## Run
|
||
|
||
```
|
||
cd web && python3 -m http.server 8130
|
||
# http://localhost:8130 (game shell — Lane B)
|
||
# http://localhost:8130/map.html (2D plan debugger — Lane A)
|
||
```
|
||
|
||
## Read first
|
||
|
||
- **`docs/CITY_SPEC.md`** — the treaty: schema, units, seeds, budgets, file ownership.
|
||
- **`docs/RESEARCH.md`** — what the parent repos already solved, with exact paths to port from.
|
||
|
||
## The lanes (parallel Opus 4.8 sessions)
|
||
|
||
Each lane is a self-contained prompt. To run one, start an Opus session in this repo and say:
|
||
**"Read docs/LANES/LANE_X_….md and execute it."** A–E are parallel-safe (disjoint files,
|
||
standalone test pages); F integrates after they land.
|
||
|
||
| lane | mission | owns |
|
||
|---|---|---|
|
||
| [A — CITYGEN](docs/LANES/LANE_A_CITYGEN.md) | seed → CityPlan data (streets, blocks, lots, shops) + 2D map | `js/citygen`, `js/core/registry.js`, `map.html` |
|
||
| [B — STREETSCAPE](docs/LANES/LANE_B_STREETSCAPE.md) | chunk-streamed instanced 3D town + game shell | `index.html`, `js/world` |
|
||
| [C — INTERIORS](docs/LANES/LANE_C_INTERIORS.md) | every door opens: seeded themed shop interiors | `js/interiors`, `interior_test.html` |
|
||
| [D — CITIZENS](docs/LANES/LANE_D_CITIZENS.md) | rigged-near / impostor-far NPCs + shopkeepers | `js/citizens`, `citizens_test.html`, `models/` |
|
||
| [E — ASSETS](docs/LANES/LANE_E_ASSETS.md) | audit ultra's library, normalize GLBs, skins, manifest | `pipeline/`, `assets/` |
|
||
| [F — INTEGRATION](docs/LANES/LANE_F_INTEGRATION.md) | wire A–E into one seed-to-town game + QA gates | (after A–E) |
|
||
|
||
## Already in the repo
|
||
|
||
- `web/vendor/` — three.js r175 + addons (vendored from 90sDJsim; no CDN at runtime).
|
||
- `web/assets/gen/` — 69 generated texture skins (25 shopfront facades, 10 skies, 10 grounds,
|
||
8 wallpapers, 16 interior surfaces) inherited from thriftgod + 90sDJsim, style-locked.
|
||
- `web/js/core/` — frozen shared modules: `prng.js` (seeded-everything law), `loaders.js`
|
||
(fail-soft promise-cached GLB/texture + 3GOD depot), `canvas.js` (text planes).
|
||
|
||
## House laws (short form — CITY_SPEC has the fine print)
|
||
|
||
Seeded everything, `Math.random` banned in gen code · the game must run with zero assets ·
|
||
instancing from day one · canvas text, no font files · characters = shared base rigs + one
|
||
clip bank, canonical sources live outside this repo · 🟢 web-ok licensing only.
|