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

Libro blanco del lag en juegos › Problemas que solo afectan a algunos

Mensajes de aparición descartados durante la carga Spawn messages dropped before the client is ready

ID de la causa pt-loading-drop · Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Desarrollo de servidor (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

En cuanto el personaje entra en una zona, el servidor envía los mensajes de aparición de los NPC cercanos, pero el cliente todavía está cargando el mapa y los descarta.

Por qué El servidor envía los mensajes de aparición de las entidades cercanas justo después de procesar la entrada → Efecto El cliente está cargando y todavía no tiene el manejador (handler) de esos mensajes, así que los descarta → En pantalla El servidor los da por enviados y no los repite. El NPC no se ve hasta que sale del rango de visión y vuelve

Síntomas
Entidades invisibles / fantasma
Factores
Pérdida de paquetes
A quién afecta
Solo un cliente en tu PC, Solo yo
Cuándo
Al conectar o tras un mantenimiento, Al moverse o cambiar de zona
Responsable
Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Cliente: enviar “listo” al terminar la carga, o guardar los paquetes recibidos durante la carga y procesarlos después. Servidor: enviar la información del entorno solo después de recibir “listo”.
Cifras de referencia
Si dos clientes cargan a la vez en la misma computadora, o el que carga está en una ventana en segundo plano, se reparten la CPU y el disco y además su procesamiento queda limitado, así que esa carga puede tardar varias veces más. Si el servidor procesa las entradas más rápido, el mismo bug también sale a la luz.
En el gráfico
Alto solo en algunos · Tiempo de carga por cliente, mensajes descartados durante la carga
Dónde mirar
Comparar el número y el tipo de mensajes que el cliente recibió y descartó durante la carga, y la hora en que terminó la carga, con la hora en que el servidor envió los mensajes de aparición. Es fácil de reproducir cargando dos clientes a la vez en la misma computadora o dejando el que carga en una ventana en segundo plano
Se confirma si
El servidor envió el mensaje de aparición del NPC invisible, llegó antes de terminar la carga, y a esa hora aumentaron los mensajes descartados. Solo ocurre en el cliente que tarda más en cargar
Se descarta si
Si el mensaje de aparición llegó después de terminar la carga y aun así no se ve, apunta a “Pérdida del snapshot de referencia (baseline)” o “Confusión por reutilización de IDs de entidad”. Si el servidor ni siquiera envió el mensaje de ese NPC, apunta a “Condición de carrera en el registro de visibilidad (AOI)” o “Diferencias de canal, instancia o phasing”
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego

Fuentes

  1. NetworkConfig class (Netcode for GameObjects 2.5) Unity
    SpawnTimeout: los mensajes de entidades que aún no se han creado se retienen y, si no se crean a tiempo, se descartan
  2. Actor Relevancy in Unreal Engine Epic Games
    Los actores que dejan de ser relevantes se borran en el cliente y, cuando vuelven a serlo, se replican de nuevo

Ver también

Misma capa: Problemas que solo afectan a algunos

Causas de otras capas con el mismo síntoma (Entidades invisibles / fantasma)

Ver la ficha interactiva con gráficos y simulaciones