한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Libro blanco del lag en juegos › Problemas que solo afectan a algunos

Tamaño del búfer de inputs de cada jugador Per-player server input buffer (jitter buffer)

ID de la causa pt-input-buffer · Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

Si el servidor guarda un poco los inputs de cada jugador y los saca de uno en uno por tick, los demás lo ven fluido, pero el momento en que el servidor confirma las acciones de ese jugador se retrasa en la misma medida.

Por qué El servidor acumula en un búfer los inputs del jugador con lag y aplica uno por tick → Efecto Si el búfer es pequeño, se vacía a menudo y ese personaje se queda quieto o el servidor lo mueve suponiendo el último input; si es grande, los inputs del propio jugador se confirman tarde → En pantalla Pequeño: los demás lo ven detenerse un instante. Grande: los resultados de sus habilidades salen tarde (input lag)

Síntomas
Tirones, Input lag
Factores
Jitter
A quién afecta
Solo un personaje se ve raro, Solo yo
Cuándo
Siempre
Responsable
Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Servidor: ajustar automáticamente el tamaño del búfer de cada jugador según el estado de su conexión, sacar dos inputs a la vez para ponerse al día cuando se acumulan, indicar al cliente de quien vacía a menudo el búfer que envíe sus inputs antes. Cliente: adelantar un poco el envío de inputs según lo indique el servidor (ajuste del tiempo del cliente).
Cifras de referencia
Depende del juego, pero suele equivaler a 1–3 ticks. VALORANT, con servidores de 128 ticks, mantiene un búfer de servidor aún más corto, de medio frame de media (unos 4 ms). Es habitual un búfer adaptativo que solo crece para quienes tienen mucho jitter.
En el gráfico
Alto solo en algunos · Longitud del búfer de inputs y veces que se vacía, por jugador
Dónde mirar
Registrar en el servidor, por jugador y en cada tick, los inputs que quedan en el búfer, cuántas veces se vació y se rellenó suponiendo el último input, y el tiempo desde que llega un input hasta que se aplica
Se confirma si
Quienes tienen un búfer pequeño lo vacían a menudo y en esos momentos se detienen un instante en las pantallas de los demás, y en quienes tienen un búfer grande el tiempo del input a su aplicación crece tanto como la longitud del búfer
Se descarta si
Si el búfer casi nunca se vacía pero los demás ven tirones, es un problema de interpolación en el lado de quien mira. Si el búfer es corto y aun así el input lag es alto, apunta al propio RTT o a “Doble espera de tick”
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego

Fuentes

  1. Peeking into VALORANT's Netcode Riot Games
    El servidor ajusta la referencia de tiempo del cliente para que la cola de inputs tenga la mínima latencia posible y solo lo justo para absorber las llegadas irregulares. El objetivo de búfer en el servidor es medio frame de media
  2. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    LocalBufferSec: tiempo que el servidor guarda en búfer los mensajes del cliente. Se adelanta el tiempo del cliente para que los mensajes lleguen antes al servidor
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    Los jugadores con mala conexión pueden aumentar el valor del búfer

Ver también

Misma capa: Problemas que solo afectan a algunos

Causas de otras capas con el mismo síntoma (Tirones)

Ver la ficha interactiva con gráficos y simulaciones