45 lines
3.0 KiB
Markdown
45 lines
3.0 KiB
Markdown
# Void Bastion Online 0.19
|
||
|
||
## Fertiger Stand
|
||
|
||
Das Spiel nutzt den offiziellen Nakama-Godot-Client 3.4.0. Beim normalen Start wird automatisch ein app-eigenes Gastkonto angemeldet. Das lokale Profil bleibt auch offline nutzbar; neue Bestwerte werden gespeichert und bei der nächsten erfolgreichen Verbindung nachgereicht.
|
||
|
||
Der Unraid-Stack besteht aus:
|
||
|
||
- Nakama 3.37.0 mit eigener JavaScript-Serverlogik
|
||
- PostgreSQL 16 ohne öffentlich freigegebenen Datenbank-Port
|
||
- täglichem komprimiertem Backup mit 14 Tagen Aufbewahrung
|
||
- ausschließlich lokal erreichbarer Nakama-Verwaltungskonsole
|
||
- getrennten zufälligen Schlüsseln für Sitzungen, Sitzungserneuerung, Verwaltung und Server-RPCs
|
||
|
||
## Ranglisten
|
||
|
||
Es existieren 36 autoritative Ranglisten: vier Spielarten mal drei Karten mal drei Schwierigkeitsgrade. Der Client kann nicht direkt in diese Ranglisten schreiben. Ergebnisse laufen durch `submit_run`; Karte, Schwierigkeit, Modus, Welle und eine großzügige Plausibilitätsgrenze für die Punktzahl werden vor dem Eintrag geprüft.
|
||
|
||
Die Kennungen folgen diesem Muster: `mission_map0_difficulty0`.
|
||
|
||
Mögliche Spielarten sind `mission`, `endless`, `coop_ai` und `coop_online`.
|
||
|
||
## Multiplayer
|
||
|
||
Die Godot-Anbindung öffnet nach der Anmeldung eine WSS/WS-Echtzeitverbindung. Die schnelle Spielersuche vermittelt exakt zwei Spieler mit derselben Suchart in eine serverautoritative Koop-Sitzung. Der Matchserver verwaltet Teilnehmer, gemeinsame Sitzungsdaten und die Weiterleitung zulässiger Spielnachrichten.
|
||
|
||
Der lokale KI-Koop bleibt unabhängig davon spielbar. Die vollständige Synchronisation von Türmen, Gegnern und gemeinsamem Reaktor zwischen zwei sichtbaren Spielclients ist der nächste Gameplay-Schritt; Konto, Transport, Vermittlung und Server-Match sind bereits funktionsfähig.
|
||
|
||
## Adressen
|
||
|
||
- Produktion: `https://api.void-bastion.gergames.de` und `wss://api.void-bastion.gergames.de`
|
||
- Entwicklung im Heimnetz: `http://192.168.178.20:7350` und `ws://192.168.178.20:7350`
|
||
|
||
In Debug-Builds versucht das Spiel nach einer fehlgeschlagenen Produktionsverbindung automatisch den Heimnetz-Server. Release-Builds verwenden ausschließlich HTTPS/WSS.
|
||
|
||
Die öffentliche Freischaltung ist abgeschlossen: Der autoritative DNS-Eintrag `api.void-bastion.gergames.de` zeigt als CNAME auf `bs6o73mrdi3e60p0.myfritz.net`; Reverse Proxy, HTTPS/WSS und das automatisch erneuerte Let’s-Encrypt-Zertifikat sind aktiv.
|
||
|
||
## Tests
|
||
|
||
- Offline-/Gameplaytest: `godot --headless --path . --script res://tests/smoke_test.gd`
|
||
- echter Onlinetest im Heimnetz: `godot --headless --path . --script res://tests/online_integration_test.gd`
|
||
- Produktionstest: `VOID_BASTION_TEST_HOST=api.void-bastion.gergames.de VOID_BASTION_TEST_SCHEME=https VOID_BASTION_TEST_PORT=443 godot --headless --path . --script res://tests/online_integration_test.gd`
|
||
|
||
Der Onlinetest prüft zwei Gastanmeldungen, RPC, Ergebnisannahme, Ranglistenabruf, zwei WebSocket-Verbindungen, Matchmaking und den Beitritt beider Clients zur selben autoritativen Partie.
|