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

Guia do Lag em Jogos › L1 Processo do jogo no cliente

Extrapolação excessiva (dead reckoning) Over-extrapolation / dead reckoning

ID da causa cg-extrap · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento)

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

Enquanto os pacotes não chegam, o cliente continua mostrando o personagem andando na última velocidade conhecida e, quando percebe o erro, puxa de volta.

Por quê A recepção de pacotes para, e o cliente continua movendo o personagem na última direção e velocidade → Efeito Na verdade, o outro jogador parou ou mudou de direção → Na tela O personagem do outro anda um bom trecho e depois teleporta para a posição real, ou atravessa paredes. Com intervalos de chegada irregulares, ele avança e é puxado de volta várias vezes e parece tremer

Sintomas
Teleporte, Engasgos
Fatores
Perda de pacotes, Jitter
Quem é afetado
Só eu
Quando
Aleatoriamente, de vez em quando
Responsável
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Limitar o tempo de extrapolação (ex.: 200–250 ms), convergir suavemente para a posição certa quando a estimativa errar.
Números de referência
A 6 m/s, basta um erro de 300 ms para a posição ficar 1,8 m fora do lugar.
No gráfico
Picos aleatórios · Tempo de extrapolação, distância de correção da posição
Onde olhar
Registrar por quanto tempo outros personagens foram desenhados por extrapolação e a distância corrigida na posição quando chegou o pacote novo
Confirma se
Em cada trecho sem pacotes, o tempo de extrapolação cresce sem limite e, depois, a distância corrigida chega a vários metros
Descarta se
Extrapolação curta e limitada, mas ainda com teleporte: a perda de pacotes ou a latência em si está alta; verifique a conexão e a rota
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo

Fontes

  1. Interpolation and extrapolation (Netcode for Entities 6.5) Unity
    Se o próximo snapshot não chega a tempo, a extrapolação, que continua movendo na mesma direção e velocidade, erra com frequência, por isso tem um limite (padrão do Unity: 20 ticks, cerca de 1/3 s a 60 Hz)
  2. Peeking into VALORANT's Netcode Riot Games
    Quando a estimativa usada para cobrir dados atrasados ou perdidos erra, o cliente diverge do servidor, e o personagem pula ou desliza durante a correção

Veja também

Mesma camada: L1 Processo do jogo no cliente

Mesmo sintoma (Teleporte) em outras camadas

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