2.3 KiB
2.3 KiB
Current Architecture
This document describes the code that exists today in the repository.
Runtime Structure
src/App.tsxmounts theCanvas, the 3DWorld, the debug perf overlay, and the HTML overlays.src/world/World.tsxcomposes the active scene, including:- environment and lighting
- debug helpers and debug camera mode
- either the map scene or the debug physics test scene
- the player rig when the active camera mode is
player
src/world/Map.tsxloads the main map model and builds the collision octree.src/world/debug/TestScene.tsxprovides a debug-oriented interaction and physics scene.src/world/player/PlayerComponent.tsxmounts the camera and controller.src/world/player/PlayerController.tsxowns pointer lock movement, jump handling, and interaction input.
Interaction Model
src/stateManager/InteractionManager.tsis the current interaction state source.src/components/3d/InteractableObject.tsxhandles focus detection through distance and raycasting.src/components/3d/TriggerObject.tsximplements trigger-style interactions.src/components/3d/GrabbableObject.tsximplements hold-and-release interactions.src/hooks/useInteraction.tsexposes the interaction snapshot to React UI.src/components/ui/InteractPrompt.tsxshows theEprompt for trigger interactions.
Audio
src/stateManager/AudioManager.tscurrently provides pooled one-shot sound playback.- Trigger interactions may play audio directly through
AudioManager.
Debug System
- Debug mode is enabled with
?debug. src/utils/debug/Debug.tsowns thelil-guiinstance and debug controls.src/hooks/debug/useCameraMode.tsandsrc/hooks/debug/useSceneMode.tssubscribe to debug state.src/utils/debug/DebugPerf.tsxlazily mountsr3f-perfin debug mode.src/utils/debug/scene/DebugHelpers.tsxmounts debug helpers.src/utils/debug/scene/DebugCameraControls.tsxmounts the free debug camera.
Current Limitations
- The repository is still a prototype, not the full intended game runtime.
src/world/debug/TestScene.tsxis still part of the active scene composition.- There is no central gameplay orchestrator such as
GameManageryet. - Missions, zones, cinematics, and dialogue systems are not implemented.
- The player uses octree collision and simple movement rules, not a complete gameplay physics stack.