Estamos haciendo un juego de disparos en primera persona. El cliente envía su posición al servidor a una velocidad fija (actualmente a 10Hz). El servidor envía un único mensaje que contiene todas las posiciones de los jugadores a todos los jugadores a la misma velocidad (10Hz).
Como se esperaba, el movimiento es bastante agitado ya que el juego de 60 fps solo recibe actualizaciones 10 veces por segundo. ¿Cuál es la mejor manera de suavizar este movimiento? La forma más obvia sería interpolar entre los dos últimos paquetes, de modo que la interpolación finalice a medida que recibamos un nuevo paquete. Pero esto agrega un retraso instantáneo de 100 ms para todos los jugadores.
La otra forma sería usar la velocidad y la aceleración inferidas de los últimos paquetes para predecir dónde está el jugador antes de que llegue el siguiente paquete, sin embargo, si la predicción es incorrecta, el jugador tenderá a saltar tan pronto como se reciba un nuevo paquete .
¿Alguien sabe cómo los títulos AAA resuelven este problema?
fuente