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

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

Mensagens de spawn descartadas durante o carregamento Spawn messages dropped before the client is ready

ID da causa pt-loading-drop · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)

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

Assim que o personagem entra na zona, o servidor envia as mensagens de spawn dos NPCs próximos, mas o cliente ainda está carregando o mapa e descarta essas mensagens.

Por quê O servidor envia as mensagens de spawn das entidades próximas logo após processar a entrada → Efeito O cliente está carregando, ainda não tem o handler de mensagens e descarta as mensagens → Na tela O servidor considera que já enviou e não envia de novo. O NPC fica invisível até sair do campo de visão e voltar

Sintomas
Invisível / entidade fantasma
Fatores
Perda de pacotes
Quem é afetado
Só um dos clientes no mesmo PC, Só eu
Quando
Logo após login ou manutenção, Em movimento ou ao trocar de mapa
Responsável
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Desenvolvimento do servidor (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Cliente: enviar “pronto” ao terminar o carregamento, ou guardar os pacotes recebidos durante o carregamento e processá-los depois. Servidor: enviar as informações do entorno só depois de receber o “pronto”.
Números de referência
Se dois clientes no mesmo PC carregam ao mesmo tempo, ou se o que está carregando é uma janela em segundo plano, eles dividem CPU e disco e o processamento é limitado, então o carregamento desse lado pode ficar várias vezes mais longo. O mesmo bug também aparece quando o servidor passa a processar a entrada mais rápido.
No gráfico
Alto só em alguns · Tempo de carregamento por cliente, mensagens descartadas durante o carregamento
Onde olhar
Comparar o número e o tipo de mensagens que o cliente recebeu e descartou durante o carregamento, e o horário em que o carregamento terminou, com o horário em que o servidor enviou as mensagens de spawn. Fica fácil reproduzir carregando dois clientes ao mesmo tempo no mesmo PC ou deixando o que carrega como janela em segundo plano
Confirma se
O servidor enviou a mensagem de spawn do NPC invisível, ela chegou antes do fim do carregamento, e o número de mensagens descartadas subiu nesse intervalo. Só acontece no cliente que demora mais para carregar
Descarta se
Mensagem de spawn chegou depois do fim do carregamento e mesmo assim o NPC está invisível: aponta para “Perda do snapshot de referência (baseline)” ou “Confusão por reutilização de ID de entidade”. Servidor nem enviou a mensagem desse NPC: aponta para “Condição de corrida no registro da área de interesse (AOI)” ou “Diferença de canal, instância ou phasing”
Como verificar
Exige logs e métricas do servidor ou do cliente do jogo

Fontes

  1. NetworkConfig class (Netcode for GameObjects 2.5) Unity
    SpawnTimeout: mensagens de entidades ainda não criadas ficam retidas e são descartadas se a entidade não for criada dentro do prazo
  2. Actor Relevancy in Unreal Engine Epic Games
    Atores que deixam de ser relevantes são apagados no cliente e, quando voltam a ser relevantes, são replicados de novo

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