Taxa de envio de snapshots baixa Low snapshot / update rate
ID da causa sy-low-send-rate · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
Se o servidor manda as atualizações de posição (snapshots) só algumas vezes por segundo, o buffer de interpolação precisa ser mais longo na mesma medida, e você vê os outros personagens mais no passado.
Por quê Para economizar banda, as atualizações de posição saem só 5–10 vezes por segundo → Efeito Para desenhar com suavidade, o buffer precisa ter 2 vezes o intervalo entre pacotes (200–400 ms); se for curto, basta perder um pacote para os personagens pararem → Na tela As mudanças de direção do adversário aparecem tarde e divergem das decisões do servidor. Com buffer curto, engasgos, e teleporte quando há perda de pacotes
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: enviar com frequência para alvos próximos ou em combate e raramente para os distantes, enviar só o que mudou (compressão delta) para reduzir o tamanho de cada envio e aumentar a frequência. Cliente: ajustar automaticamente o tamanho do buffer de interpolação ao intervalo entre pacotes.
Números de referência
Com 10 por segundo, o intervalo entre pacotes é de 100 ms e o buffer, de 200 ms. Somando os 75 ms de um sentido de um ping de 150 ms, você vê o adversário cerca de 0,3 s no passado.
No gráfico
Sempre alto desde o início · Intervalo de chegada dos pacotes por cliente, tamanho do buffer de interpolação
Onde olhar
Em uma captura de pacotes no servidor, filtrar só o fluxo para um jogador e ver pacotes por segundo e intervalos no I/O Graphs do Wireshark. Com logs do jogo, ver junto o intervalo de atualização por entidade e a folga do buffer de interpolação do cliente (tempo restante até o próximo snapshot)
Confirma se
As atualizações de posição são sempre escassas, 5–10 por segundo (intervalo de 100–200 ms), e o buffer de interpolação passa de 200 ms ou a folga do buffer chega a 0 com frequência
Descarta se
Atualizações saem com frequência, mas só o intervalo de chegada oscila: aponta para jitter ou perda de pacotes. Só entidades distantes chegam raramente em lugares lotados: aponta para “Orçamento de envio e prioridade por conexão”
Como verificar
Ferramentas de infra (sem precisar do código do jogo)
Snapshot InterpolationGaffer On Games Com 10 por segundo, aguentar até duas perdas seguidas exige 350 ms de atraso; com 30 por segundo, cai para 150 ms
State SynchronizationGaffer On Games Acumulação de prioridade para enviar com mais frequência as entidades importantes, e envio do resto em rodízio dentro do limite de banda
8.8. The “I/O Graphs” WindowWireshark Desenha em gráfico, por intervalo de tempo, o número de pacotes e bytes que batem com o filtro de exibição