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

Guia do Lag em Jogos › Problemas que só afetam alguns

Entidades retidas por erro na estimativa do relógio Clock estimate error holds or discards entities

ID da causa pt-clock-hold · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento)

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

Se o horário do servidor estimado pelo cliente está errado, ele retém informações de entidades que acabaram de chegar, como se fossem “do futuro”, ou as descarta como “antigas demais”.

Por quê A estimativa do horário do servidor de um dos clientes erra muito (medida durante o carregamento, volta do modo de economia de energia) → Efeito O horário de referência da interpolação não bate com o horário das informações da entidade → Na tela A entidade aparece tarde ou fica parada

Sintomas
Invisível / entidade fantasma, Engasgos
Fatores
Latência
Quem é afetado
Só um dos clientes no mesmo PC
Quando
Depois de ficar parado, Logo após login ou manutenção
Responsável
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Refazer a sincronização de horário periodicamente e redefinir na hora se a diferença for grande, não usar valores medidos durante o carregamento ou logo após voltar do modo de economia de energia.
No gráfico
Alto só em alguns · Erro na estimativa do horário do servidor por cliente
Onde olhar
Registrar no cliente o horário do servidor estimado, o RTT, os momentos em que a sincronização de horário foi refeita e quantas vezes informações de entidades foram retidas ou descartadas. Tentar reproduzir logo após um carregamento ou logo após voltar do modo de economia de energia
Confirma se
Só no cliente com problema o erro de estimativa passa do limite de redefinição (no Unity, hardResetThresholdSec, padrão de 0,2 s), há registro de informações retidas como futuras ou descartadas como passadas, e refazer a sincronização de horário resolve na hora
Descarta se
Erro de estimativa pequeno, mas a entidade aparece tarde: aponta para “Orçamento de envio e prioridade por conexão” ou para o carregamento
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo

Fontes

  1. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    Se a diferença de tempo passa de hardResetThresholdSec (padrão de 0,2 s), força o acerto; no resto do tempo, ajusta aos poucos com adjustmentRatio, acelerando ou desacelerando
  2. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    LocalTime fica à frente do servidor, e ServerTime fica atrás. Mensagens que chegam tarde podem ter tempo de espera negativo

Veja também

Mesma camada: Problemas que só afetam alguns

Mesmo sintoma (Invisível / entidade fantasma) em outras camadas

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