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

Libro blanco del lag en juegos › Diseño del netcode

Compensación de lag excesiva Excessive lag compensation

ID de la causa sy-lagcomp-overreach · Responsable principal Desarrollo de servidor (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

Si se rebobina demasiado a favor del atacante, a quien recibe el disparo le dan aunque ya se haya escondido.

Por qué El servidor rebobina mucho para favorecer a un atacante con ping alto → Efecto En la pantalla de quien recibe el disparo, ya estaba a cubierto → En pantalla “Me dieron detrás de una pared”, ventaja para quien tiene ping alto

Síntomas
Acción perdida / rollback
Factores
Latencia
A quién afecta
Solo yo, Una región o un ISP
Cuándo
Al hacer ciertas acciones
Responsable
Responsable principal Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Poner un tope de rebobinado (p. ej., 200–250 ms) y, para atacantes con más ping, rebobinar solo hasta ese límite y dejar que compensen el resto disparando por delante.
En el gráfico
Alto solo en algunos · Tiempo rebobinado por impacto (por ping del atacante)
Dónde mirar
Registrar en el log de resolución del servidor, para cada impacto, el tiempo rebobinado, el RTT del atacante y la hora del servidor en que la víctima se puso a cubierto. En una build de desarrollo, dibujar en pantalla las hitboxes rebobinadas (sv_showlagcompensation en el motor Source)
Se confirma si
Los impactos de los reportes “me dieron detrás de una pared” se concentran en atacantes con tiempos de rebobinado largos, y el tiempo rebobinado crece sin tope con el ping del atacante
Se descarta si
Si los impactos detrás de paredes también ocurren con rebobinados cortos, es un problema de hitboxes o de detección de colisiones. Si la víctima tiene ping alto, ocurrió porque su movimiento llegó tarde al servidor
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego
Para saber más
El rebobinado da prioridad “a quien dispara”. También se ha propuesto una excepción “a favor de quien recibe”: no rebobinar si en su propia pantalla ya había llegado a un lugar seguro.

Fuentes

  1. Peeking into VALORANT's Netcode Riot Games
    Sin límite de rebobinado, alguien con 500 ms de latencia podría acertar 0.5 s después de que el rival se pusiera a cubierto; por eso se pone un límite
  2. A Survey and Taxonomy of Latency Compensation Techniques for Network Computer Games (ACM Computing Surveys, 2022) ACM
    Fenómeno de “recibir el impacto ya detrás de la esquina” (shot around the corner), límites de rebobinado en FPS comerciales, propuesta de una técnica que no rebobina si la víctima está a salvo
  3. Source SDK 2013: player_lagcompensation.cpp Valve
    En el motor Source, el tope de rebobinado sv_maxunlag vale 1 segundo por defecto (máximo 1 segundo); sv_showlagcompensation muestra en pantalla las hitboxes rebobinadas

Ver también

Misma capa: Diseño del netcode

Causas de otras capas con el mismo síntoma (Acción perdida / rollback)

Ver la ficha interactiva con gráficos y simulaciones