Use‐Case‐Server - Robust-Games/robust GitHub Wiki

Use Cases

Übersicht der Use Cases


Client stellt Verbindung zum Server her

Akteur: Client
Ziel: Spielinstanz beitreten und Spielumgebung initialisieren
Vorbedingung: Client ist gestartet
Nachbedingung: Server kennt Spieler, initialer Zustand geladen
Ablauf:

  1. Client sendet HTTPS-Request zum Verbindungsaufbau
  2. Server prüft Spieler-ID / Authentifizierung
  3. Server sendet Spielstatus zurück
  4. Client speichert und zeigt diesen

Client trennt Verbindung zum Server

Akteur: Client oder Server
Ziel: Spieler verlässt Spiel, Ressourcen werden freigegeben
Vorbedingung: Aktive Spielverbindung
Nachbedingung: Spielerstatus wird im Server gespeichert oder verworfen
Ablauf:

  1. Client sendet Leave-Request oder Verbindung bricht ab
  2. Server entfernt Spieler aus Lobby oder Spiel
  3. Optional: Spiel wird für anderen Spieler pausiert oder beendet

Client sendet Spielzug an Server

Akteur: Client (Spieler)
Ziel: Spielzug an Server übermitteln
Vorbedingung: Spieler hat einen gültigen Zug vorbereitet
Nachbedingung: Server erhält den Zug zur Validierung
Ablauf:

  1. Spieler tätigt Zug im Client
  2. Client erstellt HTTPS-Request mit Spieldaten
  3. Request wird an Server gesendet

Server prüft Spielzug

Akteur: Server
Ziel: Validierung eines empfangenen Spielzugs
Vorbedingung: Server hat Spielzustand und empfangenen Spielzug
Nachbedingung: Spielzug ist akzeptiert oder abgelehnt
Ablauf:

  1. Server analysiert Zugdaten
  2. Server prüft Konsistenz mit aktuellem Spielstatus
  3. Antwort (gültig/ungültig) wird vorbereitet

Server leitet validierten Spielzug an Gegenspieler weiter

Akteur: Server
Ziel: Spielzug an alle relevanten Clients weitergeben
Vorbedingung: Spielzug ist gültig und akzeptiert
Nachbedingung: Alle Clients haben aktualisierten Spielstand erhalten
Ablauf:

  1. Server speichert neuen Spielstatus
  2. Server sendet neuen Zustand als HTTPS-Response oder Push
  3. Clients aktualisieren ihre Anzeige

Client erhält Spielzustand vom Server

Akteur: Client
Ziel: Spieloberfläche mit aktuellem Zustand aktualisieren
Vorbedingung: Server hat gültige Spielstanddaten gesendet
Nachbedingung: Client zeigt korrekten Stand der Map und Einheiten
Ablauf:

  1. Client empfängt neue Spieldaten über HTTPS
  2. Client verarbeitet und aktualisiert Darstellung

Client synchronisiert Spielzustand beim Beitritt

Akteur: Client
Ziel: Spielstand laden, um dem Spiel beizutreten
Vorbedingung: Spieler wurde zu Spiel instanziiert
Nachbedingung: Client zeigt aktuellen Zustand korrekt an
Ablauf:

  1. Client sendet Request „Spiel beitreten“
  2. Server liefert aktuellen Zustand des Spiels
  3. Client stellt Spiel entsprechend dar

Client erhält Fehlermeldung vom Server

Akteur: Server
Ziel: Dem Client ungültige Aktionen oder technische Fehler melden
Vorbedingung: Ungültiger Zug oder Kommunikationsfehler
Nachbedingung: Client erhält verständliche Fehlerrückgabe
Ablauf:

  1. Server erkennt Problem (z. B. Regelverstoß)
  2. Server erstellt strukturierte Fehlermeldung (z. B. JSON)
  3. Client zeigt diese an und blockiert weitere Aktion