Use‐Case‐Server - Robust-Games/robust GitHub Wiki
Use Cases
Übersicht der Use Cases
- Client stellt Verbindung zum Server her
- Client trennt Verbindung zum Server
- Client sendet Spielzug an Server
- Server prüft Spielzug
- Server leitet validierten Spielzug an Gegenspieler weiter
- Client erhält Spielzustand vom Server
- Client synchronisiert Spielzustand beim Beitritt
- Client erhält Fehlermeldung vom Server
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:
- Client sendet HTTPS-Request zum Verbindungsaufbau
- Server prüft Spieler-ID / Authentifizierung
- Server sendet Spielstatus zurück
- 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:
- Client sendet Leave-Request oder Verbindung bricht ab
- Server entfernt Spieler aus Lobby oder Spiel
- 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:
- Spieler tätigt Zug im Client
- Client erstellt HTTPS-Request mit Spieldaten
- 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:
- Server analysiert Zugdaten
- Server prüft Konsistenz mit aktuellem Spielstatus
- 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:
- Server speichert neuen Spielstatus
- Server sendet neuen Zustand als HTTPS-Response oder Push
- 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:
- Client empfängt neue Spieldaten über HTTPS
- 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:
- Client sendet Request „Spiel beitreten“
- Server liefert aktuellen Zustand des Spiels
- 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:
- Server erkennt Problem (z. B. Regelverstoß)
- Server erstellt strukturierte Fehlermeldung (z. B. JSON)
- Client zeigt diese an und blockiert weitere Aktion