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

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

Procesamiento limitado de las ventanas en segundo plano Background window throttling

ID de la causa pt-background · Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Externo (Externo)

Abrir la ficha interactiva con gráficos y simulaciones →

Cuando la ventana del cliente está en segundo plano, el juego, el motor y el SO reducen sus frames y su procesamiento. Los paquetes recibidos no se procesan a tiempo y se acumulan o desbordan.

Por qué Límite de frames en segundo plano de las opciones del juego o del driver gráfico (p. ej., el driver de NVIDIA permite elegir entre 20 y 200 por segundo), ahorro de energía, ajuste del motor que detiene el juego en segundo plano. El SO también da prioridad de CPU y GPU a la ventana en primer plano → Efecto Se procesan menos paquetes por frame, la cola crece y, si el búfer de recepción se desborda, se descartan → En pantalla Al traer la ventana al frente todo aparece de golpe, o algunos NPC no llegan a verse nunca

Síntomas
Entidades invisibles / fantasma, Cámara rápida, Desconexión
Factores
Detención, Pérdida de paquetes
A quién afecta
Solo un cliente en tu PC
Cuándo
Tras un rato inactivo, Siempre
Responsable
Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Externo (Externo)
Tareas (Equipo de desarrollo)
Seguir recibiendo de la red en un hilo separado del bucle del juego, garantizar un procesamiento mínimo también en segundo plano, activar el ajuste de ejecución en segundo plano del motor (runInBackground en Unity).
Tareas (Externo)
Indicar a los jugadores que desactiven el límite de frames en segundo plano del driver gráfico y el modo de ahorro de energía de su PC.
Cifras de referencia
En Unity, si runInBackground está desactivado, el bucle del juego se detiene en el instante en que la ventana pierde el foco. Si la recepción solo se hace en ese bucle, mientras tanto no se procesa ningún paquete.
En el gráfico
Hueco y luego ráfaga · Intervalo entre frames del cliente, paquetes procesados por frame
Dónde mirar
En la misma computadora, poner una ventana delante y la otra detrás, intercambiar los papeles y comparar. Medir con PresentMon el intervalo entre frames de los dos procesos y, si hay logs del juego, ver el estado de foco de la ventana y los paquetes procesados en cada frame
Se confirma si
Solo con la ventana en segundo plano el intervalo entre frames crece mucho (si es el límite del driver, se queda plano en el intervalo que corresponde a los frames configurados) o el procesamiento se detiene, y al intercambiar las ventanas el problema pasa al otro cliente
Se descarta si
Si también ocurre en la ventana en primer plano, no es por el límite en segundo plano. Si siempre falla el mismo cliente, esté donde esté su ventana, apunta a “Opciones de visualización distintas” o a una diferencia de versión
Se verifica con
En el entorno del jugador

Fuentes

  1. Application.runInBackground Unity
    El valor predeterminado de runInBackground es false, y en ese caso la aplicación se pausa en segundo plano
  2. Manage 3D Settings (reference) — NVIDIA Control Panel Help NVIDIA
    Background Application Max Frame Rate: limita los frames máximos de un juego en segundo plano a 20–200 por segundo
  3. Priority Boosts Microsoft
    Windows sube la prioridad del proceso de la ventana en primer plano por encima de la de los procesos en segundo plano
  4. PresentMon README Intel
    Herramienta que recoge, por aplicación, los tiempos de frame de CPU, GPU y pantalla de las aplicaciones gráficas de Windows

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