한국어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

Almacenamiento lento que retrasa el streaming de assets Slow storage stalls asset streaming

ID de la causa cg-asset-stream · Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Externo (Externo)

Abrir la ficha interactiva con gráficos y simulaciones →

En un almacenamiento lento como un HDD, la lectura de texturas y modelos de un mundo abierto no sigue el ritmo del desplazamiento, así que las entidades aparecen tarde o el juego da tirones mientras espera la lectura.

Por qué Moverse rápido en montura o teletransportarse, o entrar en un sitio con mucha gente, hace que se necesiten muchas texturas y modelos nuevos a la vez → Efecto Un almacenamiento lento como un HDD no lee a la velocidad necesaria, las solicitudes de lectura se acumulan y algunas cargas hacen esperar al hilo principal hasta que terminan → En pantalla Texturas borrosas durante un rato, edificios y personajes que aparecen tarde, y tirones o congelamientos mientras se espera la lectura

Síntomas
Entidades invisibles / fantasma, Tirones, Congelamiento
Factores
Detención
A quién afecta
Solo yo
Cuándo
Al moverse o cambiar de zona, Cuando se junta mucha gente
Responsable
Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Externo (Externo)
Tareas (Equipo de desarrollo)
Streaming asíncrono que no haga esperar al hilo principal, precarga según la dirección y la velocidad de desplazamiento, mostrar primero una resolución baja (mipmaps) o modelos simples y sustituirlos después, limitar brevemente la velocidad de desplazamiento o usar una pantalla de carga si el streaming se retrasa durante un desplazamiento rápido, indicar en los requisitos mínimos y recomendados si hace falta un SSD.
Tareas (Externo)
Indicar a los jugadores que instalen el juego en un SSD y que revisen si en el mismo disco hay descargas o análisis del antivirus en curso.
Cifras de referencia
Según Microsoft, los discos duros antiguos leen decenas de MB por segundo y los SSD NVMe, varios GB por segundo, y los juegos de la generación anterior dedicaban al streaming unos 50 MB por segundo. Si un juego pensado para la velocidad de un SSD, que lee mucho más que eso, se ejecuta en un HDD, es fácil que la lectura no siga el ritmo del desplazamiento.
En el gráfico
Alto solo en algunos · Número de picos de frametime (por tipo de almacenamiento), latencia de lectura del disco
Dónde mirar
Registrar a la vez, durante un desplazamiento rápido, PhysicalDisk\Avg. Disk sec/Read (tiempo medio de una lectura) y Current Disk Queue Length del Monitor de rendimiento de Windows, junto con el tiempo de frame de PresentMon. En una build de desarrollo, stat Streaming y stat AsyncLoad en Unreal, y la advertencia AssetBundle.asset/allAssets del Profiler de Unity (se pide el resultado antes de que termine la carga y el hilo principal espera)
Se confirma si
Al desplazarse rápido, la latencia de lectura y la cola del disco se disparan, y en ese mismo momento hay picos de frame o texturas y entidades que aparecen tarde. Con la misma escena en un SSD, desaparece
Se descarta si
Si el disco está desocupado y las texturas se ven borrosas: “Falta de memoria gráfica (VRAM)”. Si desde la segunda visita al mismo sitio todo va bien: “Carga síncrona y compilación de shaders en el hilo principal”
Se verifica con
En el entorno del jugador
Para saber más
Si solo se detiene la primera vez y después va bien, se parece más a “Carga síncrona y compilación de shaders en el hilo principal”; si se repite en cada desplazamiento solo en PC con almacenamiento lento, es esta causa. “Falta de memoria gráfica (VRAM)”, en la que las texturas se descargan y se vuelven a subir porque falta memoria gráfica, también produce texturas borrosas, así que hay que mirar a la vez la espera de lectura del disco y el uso de memoria gráfica. El análisis en tiempo real del antivirus también puede intervenir cada vez que se abre un archivo del juego y retrasar aún más la lectura.

Fuentes

  1. DirectStorage is coming to PC Microsoft
    Los discos duros antiguos leen decenas de MB por segundo y los SSD NVMe, varios GB por segundo; el presupuesto de streaming de assets de los juegos de la generación anterior rondaba los 50 MB por segundo; los juegos de mundo abierto leen y descartan en tiempo real el paisaje lejano mientras el jugador se desplaza
  2. Texture and mesh loading Unity
    La subida síncrona a la GPU lee y sube los datos en un solo frame en el hilo principal y causa una pausa visible; la subida asíncrona hace el streaming a lo largo de varios frames
  3. Texture Streaming Overview for Unreal Engine Epic Games
    El streamer sube y baja la resolución de las texturas (mips) según el punto de vista; la mayor parte del cálculo se hace en hilos de trabajo asíncronos y se cargan primero los mips visibles en pantalla
  4. Profiler markers reference Unity
    Advertencia AssetBundle.asset/allAssets: se pide el resultado antes de que termine la carga y el hilo principal se detiene a esperar
  5. Stat Commands in Unreal Engine Epic Games
    stat Streaming (memoria y número de texturas en streaming), stat AsyncLoad (estadísticas de carga asíncrona)
  6. Windows Performance Monitor Disk Counters Explained Microsoft
    Avg. Disk sec/Read es el tiempo medio que tarda en completarse una lectura (latencia de E/S); Current Disk Queue Length es la longitud de la cola del disco en el momento de la medición
  7. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Graba el tiempo de cada frame con FrameTime (tiempo de CPU entre frames)
  8. About regular quick and full scans with Microsoft Defender Antivirus Microsoft
    La protección en tiempo real analiza los archivos cada vez que se abren y se cierran

Ver también

Misma capa: L1 Proceso del juego en el cliente

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

Ver la ficha interactiva con gráficos y simulaciones