Estamos creando un juego multijugador en tiempo real, en el que cada jugador es responsable de informar su estado en cada iteración del bucle del juego.
Las actualizaciones de estado se transmiten utilizando UDP poco confiable .
Para minimizar el envío de datos de estado, hemos creado un sistema que enviará solo deltas (cualquier información de estado que se haya cambiado).
Sin embargo, este método es defectuoso, ya que un paquete perdido significará que otros jugadores no recibirán el delta, haciendo que el juego se comporte de una manera inesperada.
Por ejemplo:
Suponga que ese estado se compone de: {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.
// Otros jugadores no saben sobre el cambio de salud.
¿Cómo se puede superar este problema entonces? enviar todos los datos no siempre es factible.