5.4 KiB
5.4 KiB
Implemented Features
This document lists features that are implemented in the current codebase.
Scene
- Fullscreen React Three Fiber scene
- Main map scene loaded from
public/map.jsonand matchingpublic/models/{name}/model.glbormodel.gltfassets - Minimal fullscreen scene loading overlay for 3D scenes, with a global progress bar used by the production map, debug physics scene, and editor scene
- Debug physics test scene selectable from the debug panel, including grab/trigger tests, an animated model preview, and separate repair playground zones for
bike,pylone, andferme - Rapier physics context available for production stage gameplay objects
- Ambient and directional lighting
- Environment background setup
Player
- Player camera mode
- Pointer lock mouse look
- Movement with
ZQSD - Jumping
- Movement lock during active repair steps, with an on-screen indicator while keeping trigger interactions available
- Octree-based collision against dedicated map collision nodes, currently scoped to
terrain
Interactions
- Focus detection by distance and raycast
- Trigger interactions activated with
E - Grab interactions activated with the primary mouse button
- Physics-backed gameplay objects can be mounted inside stage content without replacing player octree collision
- Interaction prompt shown for trigger interactions
Repair Gameplay
- Reusable production
RepairGamemounted forbike,pylone, andfermemission states - Debug physics playground mounts the same reusable
RepairGameinBike,Pylone, andFarmzones so each state can be tuned with isolated positioning before moving placement into the production map - Repair mission config shared through
src/data/gameplay/repairMissions.ts, including per-mission broken nodes, placeholder targets, scan timing, and reassembly timing - Repair-game flow supports
waiting -> inspected -> fragmented -> scanning -> repairing -> reassembling -> done -> next missionwith.webmprompts, repair case spawn/opening/exit, focused repair-case view, movement lock indicator during active repair, repair-case trigger interaction, case placeholder traversal, snap-to-placeholder placement, broken-part deposit feedback,E, two-fists hold input, exploded and inverse reassembly transitions, completion particles, per-part scan visuals, persistent red broken-part markers, centered broken-part UI videos, multiple grabbable replacement choices, correct-part install validation feedback, and mission completion
Audio
- Category-based volumes for music, SFX, and dialogue
- Looped background music playback through
AudioManager - One-shot sound playback for SFX and dialogue, with simple per-sound pooling
- Optional stereo pan for one-shot sounds
Dialogue And Subtitles
- Dialogue manifest in
public/sounds/dialogue/dialogues.json - Dialogue audio loaded from
public/sounds/dialogue/ - One SRT subtitle file per voice and language
- French subtitle fallback when the selected language file is missing
- Runtime subtitle overlay with speaker-specific colors
- Timecoded dialogue trigger support for dialogue entries that define
timecode - Dialogue queueing to avoid overlapping dialogue playback
Cinematics
- Cinematic manifest in
public/cinematics.json - Timecoded cinematic trigger support
- GSAP camera keyframe playback
- Optional dialogue cues synchronized to cinematic timelines
- Player input lock while a cinematic is active
Game Options Menu
Escopens and closes the in-game options menu- Music, SFX, and dialogue volume sliders
- Subtitle visibility toggle
- Subtitle language choice between French and English
- Repair runtime choice between local JavaScript and Python server mode
- Quit action that clears browser-accessible cookies and returns to
/
Debug Tooling
?debugquery param enables the debug panellil-guicontrols for camera mode, scene mode,R3F Perf,Debug Overlay, and interaction tuning- Compact debug overlay for game state controls and hand tracking status
- Debug game-state mission switching unlocks locked repair missions at
waitingfor faster testing - Debug scene helpers
- Free debug camera
r3f-perfoverlay
Map Editor
/editorroute for inspecting and editingpublic/map.json- Automatic loading of
public/map.jsonwhen available - Folder upload fallback when
map.jsonis missing - Rendering of available
public/models/{name}/model.glbormodel.gltfassets - Fallback cubes for nodes whose model is missing
- Object selection by click
- Transform modes for translate, rotate, and scale
- Keyboard shortcuts for
T,R,S,Esc, undo, and redo - Player-style navigation mode with
WASD,ZQSD, arrow keys,Space, andShift - JSON export for downloading the edited map
- Dev-server save endpoint for writing changes back to
public/map.json - SRT editor for dialogue subtitles
- Audio preview and timing helpers for SRT cues
- Dev-server save endpoint for SRT files
- Dialogue manifest editor with preview and assisted French SRT cue creation
- Cinematic manifest editor with camera keyframes, dialogue cues, and canvas preview
- Dialogue manifest validation from the editor UI
Not Implemented Yet
- complete mission system
- zone system
- full cinematic system beyond current timecode prototype
- gameplay-triggered dialogue branches beyond current prototype triggers
- loading flow
- minimap and mission HUD
- full production separation between gameplay and debug scenes
- production backend persistence for editor saves