Special Chapter: Multiplayer Flashcards

1
Q

Was ist der Unterschied zwischen Asynchronem und Synchronem Multiplayer? Erkläre ebenso den typischen Flow von einem Input-Ablauf.

A

Bei asynchronem Multiplayer müssen nicht alle Spieler zur gleichen Zeit online sein - oft bei turn-based Spielen der Fall; Der typische Flow ist: Spieler A macht Input, Server applied Input zum Gamestate, dann wird der GameState oder Input in die Datenbank geschrieben und Spieler B verlangt dann den GameState, wenn dieser online ist

Bei synchronem Multiplayer werden Aktionen direkt auf den GameState angewendet und alle Spieler müssen gleichzeitig online und verbunden sein im Spiel, hierbei ist Latenz ebenso sehr wichtig; Typischer Flow: Player A macht Input, Server wendet den Input auf den GameState an und sendet diesen zu allen verbundenen Spielern, Spieler B bekommt dann den GameState

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist ein Game State?

A

Ein Game State repreäsnetiert alle nicht-statischen Objekte in der Spielwelt:
Spieler, Objekte (mit denen man interagieren kann), Metadaten vom laufenden Match…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie oft sollte der Input von Spielern bei einem FPS gesendet werden? Welche Art von Input wird gesendet?

A

Der Input sollte nur gesendet werden, wenn sich was verändert und wenn dann auch nur tick-basiert - es muss als Input die Spieler Position, der Spiler Input, die Bewegungsvektoren und die ausgerüstete Waffe mitgeschickt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist ein Delta Gamestate? Wie hoch ist da die Update Frequenz?

A

Delta = Veränderung
Man muss nicht jedes Mal den gesamten Game State mitschicken - sondern nur die Änderungen (spart sehr viel Bandbreite), da der Server den derzeitigen State mit dem zuletzt erhaltenen State compared, ist dies möglich

Die Update Frequenz ist abhängig vom Spiel - für schnelle Spiele zwischen 10 und 60 Hertz (nur in eSports manchaml mehr als 60 Hz)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie sollte man Game State Daten am besten handhaben beim Herumsenden zwischen Klient und Server? Nenne und beschreibe vier Möglichkeiten.

A

1) Alle Daten serialisieren (Serialisierung am Server, Deserialsierung am Klienten zum erneut Builden)
+ Leicht zu debuggen
+ Leicht zu verstehen
- Schwer zu extenden
- Nicht sehr dynamisch

2) ECS Komponenten synchroniseren (alle Komponenten als “shared” markieren und alle Updates von geteilten Attributen an Klienten schicken, wo dann der Entity Tree erneut gebaut wird)
+ Leicht zu extenden
- mehr CPU Overhead
- Hat sehr viele Edge Cases

3) Flaches Schlüssel-Wert System (Schlüssel-Werte Tabellen - Sheets, wo die Klienten die Updates vom Klienten geschickt werden)
+ Leicht zu extenden
+ Leicht zu debuggen
- Nicht so einfach wie synchronisiertes ECS, benötigt manuelles Mappen von Sheets zu Game Objekten

4) Game State in generischem Objekt halten (JSONs, Lua Tabellen)
+ Leicht zu extenden
+ Leicht zu debuggen
+ Simpel
- Ineffizent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist Cheating?

A

Klient kann über die eigenen Daten und Werte lügen und diese an den Server schicken - Server tut sich schwer damit, dies herauszufinden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist ein autoritativer Server?

A

Der autoritative Server prüft jeglichen Input und Daten, die er vom Spieler erhält, ob diese auch möglich sind und setzt selbst fest, welche Daten angewendet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist Lag? Wie wird dieser noch genannt?

A

Lag ist, wenn das Senden von Daten zwischen Klient und Server verzögert ist
Auch genannt: Latenz, Lag, Round-Trip-Time (RTT) oder Ping (enthält beide Richtungen, also hin und zurück)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Löst 5G die Lag-Probleme?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie funktioniert Lag bei einem autoritativem Server?

A

Spieler sehen den Delay der eigenen Aktionen - ist okay für manche Aktionen (Bewegung in Chess), aber nicht okay für Spieler Bewegung zum Beispiel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie vermeidet man Lag bei einem autoritativen Server? Welche Rolle spielt hierbei die Server Reconciliation?

A

Der Klient muss das Gameplay selbst auch simulieren und wendet den eigenen Input sofort an (Client-Side-Prediction) - allerdings kann es dann passieren, dass der Spieler bei sich zurückspringt, da der Server behauptet, der Spieler steht an einer anderen Position –> hier kommt Server Reconciliation zum Einsatz

Alle kürzlich getätigten Inputs werden gespeichert und bekommen eine einzigartige ID - mit jedem Server Update wird die letzte Input ID mitgegeben, dadurch kann der Klient alle Inputs die mitgegeben werden selbst anwenden (falls diese noch nicht vom Server angewendet worden sind)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Gibt es alternativen zu Autoritativen Servern?

A

Ja - Deterministischer Lockstep, das gesamte Gameplay ist deterministisch, weshalb man sich Serverkosten spart.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie können große Karten in MMORPG’s mit Servern funktionieren? Ist die Auslastung dafür nicht zu hoch?

A

= Man unterteilt die große Karte in Regionen auf und jede Region hat nur die Spieler verbunden, die sich gerade in dieser Region befinden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist Sharding?

A

Mehrere Server für eine einzelne Region, wodurch sich Spieler nicht mehr sehen können, aber dies die Last für die Server erleichtert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie funktioniert ein Chat Server mit Sharding?

A

Es gibt einen Chat Server, mit dem alle Spieler verbunden sind, damit sie miteinander kommunizieren können

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Macht es Sinn das Backend in kleinere Services aufzuteilen?

A

Ja, wenn man zum Beispiel einen eigenen Chat Server, Physik Server und Gameplay Server hat, ist die Last von vielen Spielern aufgeteilt auf alle Server.

17
Q

Was ist Crowd Simulation?

A

= eine große Menge von Entitäten simulieren (mit menschlichem oder tierlichem Verhalten)

18
Q

Wie wäre es möglich eine Millionen Einheiten zu Synchronisieren?

A

Mit Determinismus (verhindert das Updaten von vielen Game Objekten)

19
Q

Was ist Determinismus?

A

Gleicher Input gibt auch die gleiche Ausgabe aus

20
Q

Wie funktionieren deterministische Crowd Simulations?

A

Die Massen müssen nicht mehr über das Netzwerk synchronisiert werden, solange die Game Time irgendwie synchronisiert ist

21
Q

Kann mit einer deterministischen Entität reagiert werden?

A

Ja, aber dann muss dies dem Server und allen Klienten mitgeteilt werden - wenn die Interaktion endet, wir dann der Offset (die Länger der Interaktion) auf die Game Time gerechnet.

22
Q

Welche Klassifikation gibt es bei Crowd Simulationen?

A

Agenten-basierte Crowd Simulation (jeder Agent hat eine eigene Logik, die er befolgt - Wille und ist bewusst um seine Umgebung)

Partikel-basierte Crowd Simulation (die Charaktere befolgen einer globalen Logik ohne freien Willen, wird bei großen Crowds verwendet (oder Autos bei GTA auf Distanz))