Perda do snapshot de referência (baseline) Lost baseline for delta compression
ID da causa pt-baseline · Responsável principal Desenvolvimento do servidor (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do cliente (Equipe de desenvolvimento)
No modelo em que o servidor só manda “o que mudou desde a última vez”, se a informação completa enviada uma vez no início (a referência) se perde, as mudanças seguintes não podem ser aplicadas.
Por quê O pacote com a informação completa da entidade (referência) se perde ou é descartado antes de ser processado → Efeito O cliente não tem onde aplicar as mudanças seguintes e as ignora → Na tela A entidade fica invisível ou aparece de repente muito tempo depois
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: retransmitir a referência sempre, até receber a confirmação (ACK), e montar as mudanças só a partir de referências que o cliente confirmou ter recebido. Cliente: enviar a confirmação (ACK) da referência só depois de aplicá-la de fato, pedir de novo ao servidor quando receber mudanças de uma entidade desconhecida.
No gráfico
Picos aleatórios · Mudanças recebidas de entidades desconhecidas
Onde olhar
Cruzar quantas vezes o cliente descartou mudanças recebidas sem referência, e de quais IDs de entidade, com o horário em que o servidor enviou a referência dessa entidade e o horário em que recebeu o ACK. Reproduzir em ambiente de desenvolvimento inserindo perda (loss do tc netem, taxa de perda de pacotes da emulação de rede do Unreal)
Confirma se
Para a entidade invisível, o servidor enviou a referência, não recebeu o ACK e mesmo assim continuou mandando só as mudanças, e o cliente descartou essas mudanças
Descarta se
Referência confirmada com ACK e aplicada no cliente, mas a entidade continua invisível: aponta para “Mensagem de despawn perdida (entidade fantasma)” ou “Confusão por reutilização de ID de entidade”
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo
Fontes
Snapshot CompressionGaffer On Games As mudanças só devem ser montadas a partir de uma referência (baseline) que o outro lado confirmou (ack) ter recebido, e o estado inicial é enviado separadamente
tc-netem(8) — Linux manual pageiproute2 Ferramenta de teste que insere atraso e jitter (delay TIME JITTER) e perda (loss random PERCENT) nos pacotes de saída para imitar uma rede real
Using Network Emulation in Unreal EngineEpic Games Testa com latência mínima e máxima e taxa de perda de pacotes configuradas no servidor e no cliente; no console, a configuração usa comandos como NetEmulation.PktLag