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

Libro blanco del lag en juegos › L1 Proceso del juego en el cliente

Carga de renderizado de multitudes Render/animation cost of crowds

ID de la causa cg-crowd · Responsable principal Desarrollo de cliente (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

Cuando cientos de jugadores entran en la misma pantalla, como en un asedio o un world boss, el costo de dibujarlos se vuelve inasumible.

Por qué Cientos de jugadores y efectos se superponen en la misma pantalla → Efecto El costo de animaciones, sombras, nombres sobre los personajes y efectos crece en proporción al número de jugadores → En pantalla Los FPS caen (60 → 15), todos los movimientos van a tirones y los inputs también responden tarde

Síntomas
Tirones, Input lag
Factores
Detención
A quién afecta
Una zona o un canal, Solo yo
Cuándo
Cuando se junta mucha gente
Responsable
Responsable principal Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Simplificar por distancia (LOD), limitar los jugadores mostrados, ofrecer una opción de efectos simplificados, reducir la frecuencia de actualización de las animaciones.
Cifras de referencia
Aunque cada personaje cueste solo 0.02–0.1 ms, con 300 son 6–30 ms. El presupuesto del frame a 60 FPS es de 16.7 ms, así que solo con eso se consume más de 1/3 y, en el peor caso, se supera.
En el gráfico
Sube con la carga · Tiempo de frame, número de personajes en pantalla
Dónde mirar
Comparar el tiempo de frame y CPUBusy/GPUBusy de PresentMon antes y después de un asedio o un world boss. En una build de desarrollo, stat Unit de Unreal (tiempos del hilo del juego, del hilo de renderizado y de la GPU)
Se confirma si
El tiempo de frame sube a medida que aumentan los jugadores en pantalla, y mejora al instante al limitar los jugadores mostrados o activar la opción de efectos simplificados
Se descarta si
Si hay picos sin relación con el número de jugadores: “Pico de frametime” o “Recolección de basura (GC) en el cliente”. Si los FPS están bien pero solo se retrasan los movimientos de los demás: “Cuello de botella al procesar paquetes en el hilo principal”
Se verifica con
En el entorno del jugador

Fuentes

  1. Introduction to level of detail Unity
    Sin LOD, incluso los objetos que se ven pequeños en pantalla se dibujan con la misma complejidad; el LOD reduce el costo de dibujado
  2. Animation Budget Allocator in Unreal Engine Epic Games
    Reduce de forma dinámica la actualización (tick) de las animaciones de las mallas esqueléticas para mantener dentro del presupuesto el tiempo dedicado a la animación
  3. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Con FrameTime, CPUBusy y GPUBusy se distingue si es la CPU o la GPU la que retrasa el frame
  4. Stat Commands in Unreal Engine Epic Games
    stat Unit: tiempo total del frame y tiempos del hilo del juego, del hilo de renderizado y de la GPU

Ver también

Misma capa: L1 Proceso del juego en el cliente

Causas de otras capas con el mismo síntoma (Tirones)

Ver la ficha interactiva con gráficos y simulaciones