We are building an original third-person 3D parkour game for the browser with Three.js, in stages. The world and the character are finished and attached. This run is the third stage: a playable prototype of one continuous stretch. Polish of many levels comes later.
The game: Odile, a young salt miner with a lit lantern on her back, climbs through a drowned clockwork city in a hand-printed linocut look.
Attached from the earlier stages:
- odile_stage2_source_bundle.txt: all text source. Each file starts with a line "=====FILE path=====". Unpack it. Read NOTE.md first; it lists every known shortfall. It holds src/, tools/, blender/scripts/ (world and character), docs/ and the asset JSON. Running the Blender scripts rebuilds masonry, clockwork and odile .blend and .glb, and tools/rebuild_odile.sh bake rebuilds her clips. The page shell index.html is not in the bundle: it is a plain page with a full-window canvas id "c", a loading div id "loading" and a hud div id "hud", which loads game/assets.js and then game/bundle.js.
- clockface, clouds, felt, paper, salt, stone, water, wood .png: textures for assets/tex/.
- odile_reference_video_recompressed.mp4: the 15 s reference video, recompressed. It is the target for what playing should look like.
First rebuild everything and confirm that the viewer still works. Then make it a game:
1. Character fixes first, from NOTE.md: the lantern should read as a brass cylinder with a small hot core, not a flat glowing window grid; the jump air clip is nearly frozen; crossfades must not snap a thigh; and she needs a real shadow on ground and walls.
2. Controls: WASD or arrows to move relative to the camera, shift to run, space to jump, E to grab or let go of a ladder, mouse drag or Q and R to turn the camera. A third-person camera follows her as in the video, and stays out of walls.
3. One continuous route, following the video: causeway of salt, the clock-hand bridge, up the turning gear, the block stair, the ladder, the tower roof, to an ending at the view over the city. Collision is real and comes from the actual geometry she stands on. The gears really turn and carry her. Falling in the water returns her to the last checkpoint. There are at least 3 checkpoints, at least 1 timing challenge and 1 small puzzle tied to the clockwork, and a clear ending. No text tutorial beyond a short key list.
4. Sound: use the audio generation tool for footsteps on salt and wood, ladder, gears, water and a quiet ambient track, and play them in the game.
5. Test by actually playing with real key events only, with no teleporting: write a scripted key-input playthrough that finishes the whole route, run it, and record it. Then have a subagent that did not build the game play with its own key input from the start, report every bug it hits with a screenshot, and fix those bugs. Repeat at least twice. This machine renders in software at a few seconds per frame, so make game logic independent of frame rate and test with a fixed time step where you need to.
For outside testing, expose read-only state as window.__odile with position, animation state, last checkpoint, deaths, and whether the ending was reached.
Deliver: index.html opening on the game; the key-input script and its recording; screenshots of each stretch beside the matching video frame; the bug list with what was fixed; all source; and a note of what still falls short, plainly. Finish within 90 minutes.