Tasa de envío de snapshots baja Low snapshot / update rate
ID de la causa sy-low-send-rate · Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)
Si el servidor envía las actualizaciones de posición (snapshots) solo unas pocas veces por segundo, hay que alargar en proporción el búfer de interpolación, y los demás personajes se ven más en el pasado.
Por qué Para ahorrar tráfico, las actualizaciones de posición se envían solo 5–10 veces por segundo → Efecto Para dibujar con fluidez, el búfer debe ser del doble del intervalo entre paquetes (200–400 ms); si es más corto, basta perder un paquete para que haya un congelamiento → En pantalla Los cambios de dirección del rival se ven tarde y no coinciden con la resolución de impactos. Con un búfer corto hay tirones, y teletransporte cuando se pierden paquetes
Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Servidor: enviar con frecuencia las entidades cercanas o en combate y con menos frecuencia las lejanas, enviar solo lo que cambió (compresión delta) para reducir el tamaño de cada envío y subir la frecuencia. Cliente: ajustar automáticamente la longitud del búfer de interpolación al intervalo entre paquetes.
Cifras de referencia
Con 10 envíos por segundo, el intervalo entre paquetes es de 100 ms y el búfer de 200 ms. Sumando los 75 ms de latencia en un sentido de un ping de 150 ms, al rival se le ve unos 0.3 s en el pasado.
En el gráfico
Siempre alto · Intervalo de llegada de paquetes por cliente, longitud del búfer de interpolación
Dónde mirar
En una captura de paquetes del lado del servidor, filtrar solo el flujo hacia un jugador y ver los paquetes por segundo y sus intervalos con I/O Graphs de Wireshark. Si hay logs del juego, ver también el intervalo de actualización por entidad y el margen del búfer de interpolación del cliente (tiempo que falta para que llegue el siguiente snapshot)
Se confirma si
Las actualizaciones de posición son siempre escasas, 5–10 por segundo (intervalos de 100–200 ms), y el búfer de interpolación pasa de 200 ms o su margen llega a 0 con frecuencia
Se descarta si
Si las actualizaciones salen con frecuencia pero los intervalos de llegada varían, apunta a jitter o pérdida de paquetes. Si con mucha gente solo se reciben con poca frecuencia las entidades lejanas, apunta a “Presupuesto de envío y prioridad por conexión”
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)
Snapshot InterpolationGaffer On Games Con 10 por segundo, aguantar hasta dos pérdidas seguidas requiere 350 ms de retraso; con 30 por segundo, baja a 150 ms
State SynchronizationGaffer On Games Con prioridades acumuladas, las entidades importantes se envían más a menudo y el resto se envía por turnos dentro del límite de ancho de banda
8.8. The “I/O Graphs” WindowWireshark Grafica por intervalos de tiempo el número de paquetes y bytes que cumplen el filtro de visualización