- src/main.ts: full wiring per docs/INTEGRATION.md (renderer/world/booth/ chunks/machines/player/interaction/audio/fx/hud + fixed-step loop), QuestPositions adapter (Lane C nested -> Lane D flat), attachPlayer step, pointer-lock-gated input, debug handle for smoke tests. - core/constants: Y_RECORD_TOP 85 -> 81 (record was an unclimbable 5-voxel cliff; now 1 proud of the plinth, auto-steppable) + PLATTER.wellDepth. - machines/platter: body + collider now fill Lane C's well down to y=74. - fx/layout: VU sprites aligned to Lane C's physical LED towers. - interact: per-material break times (dust 0.12s) so the crossfader jam isn't a 96-second mine. - docs/INTEGRATION_NOTES.md: every glue decision + live verification results (120 fps, ride/mine/quest/win all green, zero console errors). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| docs | ||
| src | ||
| .gitignore | ||
| demo-audio.html | ||
| demo-engine.html | ||
| demo-machines.html | ||
| demo-player.html | ||
| demo-worldgen.html | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
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
- Rules for parallel build lanes: docs/CONTRACTS.md
- Integration (after lanes land): 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 | voxel storage, greedy mesher, procedural texture atlas, renderer |
| B | docs/briefs/LANE_B_PLAYER.md | FPS controller, voxel collision, ride-the-record platform physics |
| C | docs/briefs/LANE_C_WORLDGEN.md | the whole booth, built parametrically in voxels |
| D | docs/briefs/LANE_D_MACHINES.md | spinning platters, tonearm, faders, break/place, the quest |
| E | 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 typecheckpasses.
Recommended: git init first and give each lane its own branch or worktree;
ownership is disjoint so merges are trivial.
Run
npm i
npm run dev # game shell at /, lane demos at /demo-<lane>.html
npm run build # static bundle