... | ... | @@ -26,7 +26,13 @@ Der Highscore wird im Browser mit Hilfe von Lokalstorage gespeichter. |
|
|
|
|
|
|
|
|
## Multiplayer
|
|
|
Im Multiplayer wird für jedes Spiel ein
|
|
|
Im Multiplayer wird für jedes Spiel ein Game-Objekt erzeugt, welches nur existert so lange es active WebSockets Connections im Raum ``room:Game.id`` gibt.
|
|
|
Beim erstellen eines neuen Spiels oder beim Beitreten wird automatisch ein Player-Objekt erzeugt, wobei die PlayerID der ID des Sockets entspricht und in die Players-Map hinzugefügt.
|
|
|
Das GameObjekt beinhaltet die komplette Spiellogik, wie Timer, Antworten prüfen, ...
|
|
|
<br>
|
|
|
Jeder Client hat lokal in einen Svelte State eine abgespeckte Version des GameObjects, dass aus aktueller Frage, Countdown und den Spieler besteht was zur Anzeige benötigt wird.
|
|
|
Bei jeder AKtion wird an jedem Socket im Raum die Änderungen geschickt, welche somit in Echzeit in der UI angezeigt werden können.
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
classDiagram
|
... | ... | |