Netzwerk

Netzwerk

Autoritativer Multiplayer-Server mit WebRTC und tick-basierter Zustandssynchronisierung.

MavonEngine verwendet eine autoritative Server-Architektur für Multiplayer. Der Server ist die einzige Wahrheitsquelle — Clients senden Befehle, der Server verarbeitet sie und sendet den Zustand zurück an die Clients.

Referenz: Die Architektur ist inspiriert von Gaffer On Games und Source Engine Multiplayer Networking.

Transport

Echtzeit-Daten werden über UDP via WebRTC mit geckos.io übertragen. Dies ermöglicht latenzarme, unzuverlässige Nachrichten, die für die Spielzustandssynchronisierung geeignet sind.

Architekturübersicht

Client                          Server
  │                               │
  │── Befehl (Eingabe) ─────────► │
  │                               │  1) Befehl verarbeiten
  │                               │  2) Physik-Schritt
  │                               │  3) Zustand aktualisieren
  │◄── Zustandsabgleich (Tick) ── │
  │                               │
  1. Client erfasst Eingaben und sendet Befehle an den Server
  2. Server stellt Befehle in einen Befehlspuffer
  3. Bei jedem Tick verarbeitet der Server Befehle, berechnet Physik und sendet den Weltzustand
  4. Zustand wird nur an Clients innerhalb des Sichtbarkeitsradius jeder Entity gesendet

Schlüsselklassen

Server

Autoritativer Server mit Befehlspuffer, Tick-Schleife und HTTP-Health-Endpunkt.

NetworkManager

Client-seitige WebRTC-Verbindung mit Ping-Überwachung.

Vernetzte Actors

NetworkedActor, NetworkedGameObject und Zustandssynchronisierungs-Utilities.

Zustandsabgleich

Wie Entity-Zustand zwischen Server und Clients serialisiert und synchronisiert wird.