Backend-Überblick
Komponenten
| Komponente | Status | Einstieg | Daten |
|---|---|---|---|
| Nakama Runtime | in Entwicklung | src/server/nakama/modules/src/main.ts |
Sessions, Replay-Chunks/Validierung, Results, Manual Leaderboards, Mailbox und Accounts |
| Registry | produktiver Prototyp | src/server/registry/main.py |
Redis-Keys hubserver:* |
| Dashboard | Prototyp | src/server/dashboard/main.py |
liest Registry, WebSocket-Polling |
| Launcher API | produktiver Service | src/server/api/main.py |
Release-Registry JSON + Release-Files |
| Redis | produktiv | Compose redis:7-alpine |
Hub-Registry |
| PostgreSQL | produktiv | Compose postgres:12.2-alpine |
Nakama |
Datenfluss
Game3D authentifiziert über Nakama, ruft Run-/Replay-RPCs auf und nutzt Realtime für Chat. Registry ist separat: Headless-Server POSTen Register/Heartbeat/Unregister; Clients lesen /servers. Dashboard zeigt diese Registry-Daten. Launcher/Updater sprechen ausschließlich mit der Launcher-API.
Authentifizierung und Sicherheit
Nakama-Client unterstützt Device/Guest und Email in Integrations/Nakama/NakamaAuthService.cs. RPCs verlangen mit Ausnahme rpc_ping eine ctx.userId. Run-/Replay-Storage ist owner-readable (permissionRead=1) und server-write-only (permissionWrite=0). Console-/Socket-Keys und PostgreSQL-Passwort kommen aus src/server/.env; Launcher-Publishing nutzt Bearer-Token.
Grenzen
Es gibt keine RPCs für PlayerProgression, persistierte Loadouts, Mastery, Weapon-XP oder Unlock-Migration. Replay-Validierung und Manual Leaderboards sind aktiv, führen aber keine vollständige RunDefinition-/World-Re-Simulation aus. SQL-Migrationen liegen unter src/server/nakama/migrations; Node-Tests decken Replay, Scoring, Leaderboards und Mailbox ab. Registry/Dashboard besitzen keine automatisierten Tests, und das Dashboard hat keine Authentifizierung.
Lokal prüfen
Set-Location src/server/nakama/modules
npm ci
npm run build
Set-Location ../..
docker compose --env-file .env -f docker-compose.yaml up --build -d
docker compose --env-file .env -f docker-compose.yaml ps
Weiter: Nakama/RPC, Registry/Dashboard, How-to RPC, Troubleshooting.