Tamanho do buffer de input por jogador Per-player server input buffer (jitter buffer)
ID da causa pt-input-buffer · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
Se o servidor acumula um pouco os inputs de cada jogador e consome um por tick, os outros veem tudo suave, mas a ação do próprio jogador é confirmada no servidor mais tarde, na mesma medida.
Por quê O servidor acumula no buffer os inputs do jogador com lag e aplica um por tick → Efeito Com buffer pequeno, ele esvazia com frequência e o personagem fica parado ou o servidor o move supondo o último input; com buffer grande, o input do próprio jogador é confirmado tarde → Na tela Pequeno: engasgos na tela dos outros. Grande: o resultado das skills do próprio jogador sai tarde (input lag)
Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Servidor: ajustar automaticamente o tamanho do buffer à conexão de cada jogador, consumir dois de cada vez para recuperar o atraso quando acumula, mandar o cliente de quem esvazia o buffer com frequência adiantar o envio dos inputs. Cliente: adiantar um pouco o envio dos inputs conforme a instrução do servidor (ajuste de tempo do cliente).
Números de referência
Varia por jogo, mas em geral é de 1–3 ticks. O VALORANT, com servidor de 128 ticks, mantém o buffer do servidor ainda menor, com meio frame em média (cerca de 4 ms). É comum o modelo adaptativo, que só aumenta o buffer para quem tem jitter alto.
No gráfico
Alto só em alguns · Tamanho do buffer de input e vezes que esvaziou, por jogador
Onde olhar
Registrar no servidor, por jogador e a cada tick, quantos inputs restam no buffer, quantas vezes o buffer esvaziou e foi preenchido supondo o último input e o tempo entre a chegada do input e a aplicação
Confirma se
Quem tem buffer pequeno esvazia muitas vezes e, nesses momentos, para por um instante na tela dos outros; quem tem buffer grande tem o tempo entre input e aplicação aumentado na medida do buffer
Descarta se
Buffer quase nunca vazio, mas engasgos na tela dos outros: problema de interpolação de quem vê. Buffer curto e input lag alto mesmo assim: o próprio RTT ou espera dupla de tick
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo
Fontes
Peeking into VALORANT's NetcodeRiot Games O servidor ajusta a referência de tempo do cliente para manter a fila de inputs com a menor latência possível, mas grande o bastante para absorver chegadas irregulares. A meta de buffer no servidor é meio frame em média
NetworkTimeSystem class (Netcode for GameObjects 2.5)Unity LocalBufferSec: tempo que o servidor mantém as mensagens do cliente em buffer. Adiantar o relógio do cliente faz as mensagens chegarem mais cedo ao servidor