TURNCRAFT/README.md
jing 5a39e3a947 TURNCRAFT: contracts, docs, and all five lane deliverables (pre-integration)
Lanes A (engine), B (player), C (worldgen), D (machines/quest),
E (audio/fx/ui) as landed, each with HANDOFF.md + update docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 20:50:56 +10:00

42 lines
1.9 KiB
Markdown

# TURNCRAFT
*Honey I Shrunk the DJ.* A Minecraft-style voxel game where the entire world
is a vinyl DJ booth — two Technics-style 1200s, a 4-channel mixer, cable
canyons, a patch-bay dungeon, and circuit-board caves — and you're 7 mm tall,
riding the records.
- **Design**: [docs/DESIGN.md](docs/DESIGN.md)
- **Rules for parallel build lanes**: [docs/CONTRACTS.md](docs/CONTRACTS.md)
- **Integration (after lanes land)**: [docs/INTEGRATION.md](docs/INTEGRATION.md)
## Building it with parallel agent lanes
Five independent lanes, disjoint file ownership, shared contracts already
written in `src/core/` (read-only for all lanes).
| lane | brief | delivers |
|---|---|---|
| A | [docs/briefs/LANE_A_ENGINE.md](docs/briefs/LANE_A_ENGINE.md) | voxel storage, greedy mesher, procedural texture atlas, renderer |
| B | [docs/briefs/LANE_B_PLAYER.md](docs/briefs/LANE_B_PLAYER.md) | FPS controller, voxel collision, ride-the-record platform physics |
| C | [docs/briefs/LANE_C_WORLDGEN.md](docs/briefs/LANE_C_WORLDGEN.md) | the whole booth, built parametrically in voxels |
| D | [docs/briefs/LANE_D_MACHINES.md](docs/briefs/LANE_D_MACHINES.md) | spinning platters, tonearm, faders, break/place, the quest |
| E | [docs/briefs/LANE_E_AUDIO_FX.md](docs/briefs/LANE_E_AUDIO_FX.md) | synthesized house groove in stems, beat-reactive lights, HUD |
**Launch prompt for each lane** (separate session/agent each, all five at once):
> Read docs/CONTRACTS.md, docs/DESIGN.md, and docs/briefs/LANE_X_….md, then
> implement the lane exactly as briefed. Work only inside your owned paths.
> Verify with your demo page and the acceptance checklist, write your
> HANDOFF.md, and ensure `npm run typecheck` passes.
Recommended: `git init` first and give each lane its own branch or worktree;
ownership is disjoint so merges are trivial.
## Run
```bash
npm i
npm run dev # game shell at /, lane demos at /demo-<lane>.html
npm run build # static bundle
```