Files
La-Fabrik/docs/user/features.md
2026-05-11 17:31:14 +02:00

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.json and matching public/models/{name}/model.glb or model.gltf assets
  • 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, and ferme
  • 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 RepairGame mounted for bike, pylone, and ferme mission states
  • Debug physics playground mounts the same reusable RepairGame in Bike, Pylone, and Farm zones 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 mission with .webm prompts, 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

  • Esc opens 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

  • ?debug query param enables the debug panel
  • lil-gui controls 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 waiting for faster testing
  • Debug scene helpers
  • Free debug camera
  • r3f-perf overlay

Map Editor

  • /editor route for inspecting and editing public/map.json
  • Automatic loading of public/map.json when available
  • Folder upload fallback when map.json is missing
  • Rendering of available public/models/{name}/model.glb or model.gltf assets
  • 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, and Shift
  • 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