Búfer de interpolación ausente o demasiado corto Missing/short interpolation buffer
ID de la causa cg-no-buffer · Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Desarrollo de servidor (Equipo de desarrollo)
Si el cliente dibuja los paquetes del servidor en cuanto llegan, el jitter (variación en el tiempo de llegada de los paquetes) se ve tal cual en pantalla.
Por qué La posición recibida se dibuja al instante, o el búfer es más corto que el jitter → Efecto Se detiene lo que tarda el paquete retrasado y salta cuando llegan varios juntos → En pantalla Los demás personajes se mueven a trompicones
Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Cliente: usar un búfer de interpolación y ajustar su longitud automáticamente según el estado de la conexión. Servidor: aplicar compensación de lag (validación con rebobinado) para que el registro de impactos sea correcto aunque se dispare viendo la imagen del pasado que impone el búfer.
Cifras de referencia
Lo habitual es un búfer de unas dos veces el intervalo de envío del servidor (100 ms si llegan 20 actualizaciones por segundo).
En el gráfico
Siempre alto · Intervalo de llegada de paquetes, veces que el búfer de interpolación se vació
Dónde mirar
Registrar en el cliente la distribución del intervalo de llegada de los paquetes del servidor y el número de frames en que no había un siguiente snapshot que interpolar, de modo que el personaje se detuvo o se pasó a extrapolar
Se confirma si
La variación del intervalo de llegada supera a menudo la longitud del búfer de interpolación, y cada vez el búfer se vacía y los demás personajes dan un tirón. Al alargar el búfer, disminuye
Se descarta si
Si los tirones siguen con un búfer suficiente, verificar si el propio intervalo de envío del servidor es irregular (retraso del tick)
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego
Para saber más
Un búfer más largo da más fluidez, pero en la misma medida ves al rival en una posición pasada. Por eso se combina con la compensación de lag: para validar un ataque, el servidor rebobina hasta “el pasado que veía ese jugador”.
Fuentes
Interpolation and extrapolation (Netcode for Entities 6.5)Unity Interpolación con búfer, que retrasa a propósito el dibujado para esperar a los paquetes que llegan tarde; cuanto mayor es el búfer, más precisa es, pero más latencia añade
Physics (Netcode for Entities 6.5)Unity Compensación de lag: el servidor busca el mundo de colisiones que veía el cliente en ese tick y decide si hubo impacto