Solution- und Repository-Übersicht
Aktive Projekte
| Bereich | Status | Laufzeit/Einstieg | Typische Änderungen | Tests/Fallstricke |
|---|---|---|---|---|
src/HolodeckArena.Game3D |
produktives Ziel | Godot 4.6.3; project.godot → Core/Bootstrap/MainScene.tscn |
Scenes, UI, 3D-Runtime, Nakama-Client, ENet | tests/HolodeckArena.Game3D.Tests; Godot-Lifecycle nicht vollständig durch xUnit abgedeckt |
src/HolodeckArena.Shared |
produktiv | .NET-8-Library | deterministische Dungeon-Domain, Hubs, Waffen, Loadouts, Progression, Bootstrap-Kern | beide Testprojekte; keine Godot-Typen einführen |
src/HolodeckArena.Networking |
produktiv | .NET-8-Library | Movement-Validierung, Snapshot-/Prediction-Puffer | wird über Game3D referenziert; eigene Tests fehlen |
src/server/nakama |
in Entwicklung | Nakama 3.22.0 + ES5-TypeScript-Bundle main.js |
Run-/Replay-/Leaderboard-/Mailbox-RPCs, Storage, Account-Handle | Node-Tests unter modules/tests; tsconfig.json-Dateiliste mitpflegen |
src/server/registry |
produktiver Prototyp | FastAPI/Uvicorn, Port 8080 | Hub-Registrierung, Heartbeat, Discovery | feste Redis-URL, 15-s-TTL, keine Tests |
src/server/dashboard |
Prototyp | FastAPI/Jinja/WebSocket, Port 8000 | Serverübersicht | Nakama-/Redis-Service-Dateien leer; keine Authentifizierung |
src/server/api |
produktiver Release-Service | FastAPI, Port 5000 | Manifest-, Download- und Release-Aktivierung | Publish-Token erforderlich; Pfadvalidierung sicherheitskritisch |
src/tools |
aktiv | Python/PyInstaller | Installer, Launcher, Updater, Manifest/Publish | parallel zu Shared-Bootstrap-Code; CI baut aktuell Python-Tools |
tests/HolodeckArena.Game3D.Tests |
aktiv | xUnit/.NET 8 | Dungeon, Räume, Objectives, Encounters, Waffen/Loadouts | referenziert Godot-Projekt; keine vollständigen SceneTree-Integrationstests |
tests/HolodeckArena.Bootstrap.Tests |
aktiv | xUnit/.NET 8 | Hashes, Pfade, Manifest, Update-Planung | testet Shared/Bootstrap |
Game3D-Struktur
Core/Bootstrap: Composition Root und Client-/Serverstart.Core/DI: eigener Singleton/Transient-Servicecontainer.Core/GameFlowundCore/SceneLoading: Szenennavigation und rekursive Injection.Core/Network: ENet-Verbindung und autoritativer Hub-Sync.Core/Runtime: JSON-/CLI-Konfiguration.Core/Online,Integrations/Nakama: Auth, Realtime und RPC.Features/Dungeons: Seed-Kontext, V3-3D-Runtime, Templates, Marker sowie Enemy- und Boss-Resource-Kataloge.Features/Balancing: eigenständig per F6 startbare Sandbox für Waffen, Gegner, Power-ups und Combat-Tuning.Features/Gameplay: Player, Combat, Stats, Power-ups und Interaktion.Features/Hub,Features/MainMenu,Features/Chat: Online-Flow und UI.Features/Weapons,Features/Loadouts: aktive Weapon-Runtime und Player-Komponenten über der Shared-Domain; Loadout-UI bleibt eine Shell.Scenes/Prefabs: teilweise Legacy/Placeholder; aktive Navigation nutzt Pfade ausGameFlowRoutes.
Shared-Struktur
Shared/Dungeons ist die kanonische, deterministische Dungeon-Wahrheit. Shared/Hubs definiert die gemeinsam validierte Social-Hub-Geometrie. Shared/World und Networking/Movement stützen autoritative Bewegung. Waffen, Loadouts und Progression sind nach Typ und Verantwortung auf einzelne Dateien verteilt; Run-Regeln liegen unter Shared/Runs. Änderungen daran benötigen besonders sorgfältige Tests und gegebenenfalls Versionserhöhungen.
Eingefrorenes Game2D
Der Game2D-Quellbaum wurde entfernt. Historische Presentation-Enums bleiben nur aus Kompatibilitaetsgruenden; keine neuen Game2D-Features anlegen.
Build-/Tool-Inkonsistenz
Das Root-Repository enthält keine C#-Projekte HolodeckArena.Installer, HolodeckArena.Launcher oder HolodeckArena.Updater, obwohl ältere Dokumente sie nennen. Der aktuelle Workflow .github/workflows/build-bootstrap-tools.yml baut die Python-Dateien in src/tools per PyInstaller. src/HolodeckArena.Bootstrap.Core enthält nur lokale bin/obj-Artefakte und ist keine eingecheckte Quelle.
Siehe System Map und Build/Deployment.