Para quem tem conexão ruim, os inputs chegam ao servidor irregulares e agrupados. Se o servidor aplica a cada tick o que recebeu, na tela dos outros esse personagem engasga e depois anda vários passos de uma vez.
Por quê Os comandos de movimento do jogador com lag chegam 0 em um tick e 2–3 em outro → Efeito O servidor aplica tudo de uma vez no tick em que recebeu, e a posição do personagem muda em degraus → Na tela Na tela dos outros, só esse personagem engasga e depois avança vários passos de uma vez. O resto está normal
Só um personagem parece estranho, Região ou operadora específica
Quando
Sempre, Em movimento ou ao trocar de mapa
Responsável
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Externo (Externo)
O que fazer (Equipe de desenvolvimento)
Distribuir os comandos por igual com um buffer de input por jogador, aplicar no intervalo original usando os números de sequência dos inputs; só aumentar o buffer de interpolação na tela dos outros não basta (o próprio histórico de posição no servidor está em degraus).
O que fazer (Externo)
Orientar o jogador com lag a usar conexão cabeada e verificar o Wi-Fi e o roteador.
Números de referência
Com jitter de 80 ms, em um servidor de 20 ticks (50 ms) o número de comandos por tick oscila entre 0 e 3.
No gráfico
Alto só em alguns · Comandos aplicados por tick por jogador, jitter por jogador
Onde olhar
Em uma captura de pacotes no servidor, filtrar só os pacotes enviados pelo jogador reportado, contar quantos chegam a cada intervalo de tick (ex.: 50 ms) e comparar com outros jogadores. Com logs no servidor, ver por jogador o número de comandos de movimento aplicados a cada tick e os números de sequência dos inputs
Confirma se
Só os pacotes do jogador reportado chegam agrupados, alternando entre 0 e 2–3 por tick, com jitter e perda altos para ele, enquanto os pacotes dos outros chegam regulares. Diminui quando ele passa para conexão cabeada
Descarta se
Vários personagens em avanço rápido ao mesmo tempo: atraso no tick do servidor ou conexão de quem está vendo. Chegada e aplicação regulares, mas só esse personagem parece pular: problema de interpolação ou exibição do lado de quem vê
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Saiba mais
Na arquitetura com autoridade do servidor, isso é o comportamento normal. O lag de um jogador lento só aparece para os outros como “esse jogador se movendo de um jeito estranho” e não afeta os comandos dos outros nem o movimento dos monstros. Mas o que envolve diretamente essa pessoa (trocas, mecânicas de party, registro de acerto no PvP) também atrasa.
Fontes
Peeking into VALORANT's NetcodeRiot Games O servidor coloca os inputs recebidos na fila de movimento de cada jogador, em ordem de tick, e preenche com predição quando ela esvazia. A correção só é visível para esse jogador, e os outros veem tudo suave
State SynchronizationGaffer On Games Até pacotes enviados 60 vezes por segundo chegam agrupados, 2 em um frame e 0 no seguinte
Source SDK 2013: player.cppValve Distribui os comandos que chegaram juntos entre os ticks do servidor (meter out)