Wir erstellen ein Echtzeit-Multiplayer-Spiel, bei dem jeder Spieler dafür verantwortlich ist, seinen Status bei jeder Iteration der Spielschleife zu melden.
Die Statusaktualisierungen werden mit unzuverlässigem UDP gesendet .
Um das Senden von Statusdaten zu minimieren, haben wir ein System entwickelt, das nur Deltas sendet (unabhängig davon, welche Statusdaten geändert wurden).
Diese Methode ist jedoch fehlerhaft, da ein verlorenes Paket bedeutet, dass andere Spieler das Delta nicht erhalten, wodurch sich das Spiel auf unerwartete Weise verhält.
Zum Beispiel:
Angenommen, dieser Status besteht aus: {positionX, positionY, health}
Frame 1 - positionX changed --> send a packet with positionX only.
Frame 2 - health changed // lost !
Frame 3 - positionY changed --> send a packet with positionY only.
// Andere Spieler wissen nichts über Gesundheitsveränderungen.
Wie kann man dieses Problem dann überwinden? Das Senden der gesamten Daten ist nicht immer möglich.