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

Guia do Lag em Jogos › Design de sincronização

Compensação de lag excessiva Excessive lag compensation

ID da causa sy-lagcomp-overreach · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento)

Abrir o card interativo, com figuras e simulações →

Se o servidor volta no tempo demais a favor do atacante, quem leva o tiro é atingido mesmo já tendo se escondido.

Por quê O servidor volta muito no tempo para decidir a favor de um atacante com ping alto → Efeito Na tela de quem leva o tiro, ele já estava protegido → Na tela “Levei tiro atrás da parede”, quem tem ping alto leva vantagem

Sintomas
Ação perdida / rollback
Fatores
Latência
Quem é afetado
Só eu, Região ou operadora específica
Quando
Ao fazer ações específicas
Responsável
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Definir um limite para a volta no tempo (ex.: 200–250 ms) e, para atacantes com ping acima disso, voltar só até o limite e deixar que compensem o resto atirando à frente.
No gráfico
Alto só em alguns · Tempo de volta por acerto (por ping do atacante)
Onde olhar
Registrar no log de decisões do servidor, a cada acerto, o tempo de volta, o RTT do atacante e o horário do servidor em que o alvo entrou na cobertura. Em build de desenvolvimento, desenhar na tela a hitbox voltada no tempo (na Source engine, sv_showlagcompensation)
Confirma se
Os acertos dos reports de “levei tiro atrás da parede” se concentram em atacantes com tempo de volta longo, e o tempo de volta cresce com o ping do atacante, sem limite
Descarta se
Tiros atrás da parede mesmo em acertos com tempo de volta curto: problema na hitbox ou na checagem de colisão. Se o ping de quem leva o tiro é alto, o movimento dele chegou tarde ao servidor
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo
Saiba mais
A decisão com volta no tempo segue o princípio de “prioridade a quem atira”. Também foi proposta uma exceção de “prioridade a quem leva o tiro”, que não volta no tempo quando quem leva o tiro já entrou em lugar seguro na própria tela.

Fontes

  1. Peeking into VALORANT's Netcode Riot Games
    Sem limite na volta no tempo, alguém com 500 ms de latência pode acertar 0,5 s depois de o alvo se proteger, por isso existe um limite
  2. A Survey and Taxonomy of Latency Compensation Techniques for Network Computer Games (ACM Computing Surveys, 2022) ACM
    Fenômeno do “tiro atrás da esquina (shot around the corner)”, limites de volta no tempo em FPS comerciais, proposta de técnica que não volta no tempo quando quem leva o tiro está seguro
  3. Source SDK 2013: player_lagcompensation.cpp Valve
    Na Source engine, o limite de volta no tempo sv_maxunlag tem padrão de 1 s (máximo de 1 s), e sv_showlagcompensation mostra na tela a hitbox voltada no tempo

Veja também

Mesma camada: Design de sincronização

Mesmo sintoma (Ação perdida / rollback) em outras camadas

Ver o card interativo, com figuras e simulações