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

Guia do Lag em Jogos › L1 Processo do jogo no cliente

Streaming de assets atrasado por disco lento Slow storage stalls asset streaming

ID da causa cg-asset-stream · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Externo (Externo)

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

Em armazenamento lento, como um HDD, a leitura de texturas e modelos de um mundo aberto não acompanha o deslocamento do personagem: entidades aparecem tarde ou o jogo engasga esperando a leitura.

Por quê Deslocamento rápido com montaria ou teletransporte, ou entrada em um lugar cheio de gente, exige muitas texturas e modelos novos de uma vez → Efeito Um armazenamento lento como o HDD não lê na velocidade necessária, as leituras se acumulam na fila e alguns carregamentos fazem a thread principal esperar até o fim → Na tela Texturas borradas por um tempo, prédios e personagens aparecendo tarde, e engasgos ou travamentos nos momentos em que o jogo espera a leitura

Sintomas
Invisível / entidade fantasma, Engasgos, Travamento
Fatores
Paralisação
Quem é afetado
Só eu
Quando
Em movimento ou ao trocar de mapa, Quando junta muita gente
Responsável
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento) · Também envolvidos Externo (Externo)
O que fazer (Equipe de desenvolvimento)
Usar streaming assíncrono que não faça a thread principal esperar a leitura, pré-carregar conforme a direção e a velocidade do deslocamento, mostrar primeiro versões de baixa resolução (mipmaps) e modelos simples e trocar depois, limitar por um instante a velocidade de deslocamento ou usar uma tela de carregamento quando o streaming atrasar em deslocamentos rápidos, informar nos requisitos mínimos e recomendados se o SSD é obrigatório.
O que fazer (Externo)
Orientar os jogadores a instalar o jogo em um SSD e a verificar se há downloads ou varreduras de antivírus rodando no mesmo disco.
Números de referência
Segundo a Microsoft, discos rígidos antigos leem dezenas de MB por segundo e SSDs NVMe leem vários GB por segundo; jogos da geração anterior usavam cerca de 50 MB por segundo para streaming. Um jogo pensado para a velocidade de um SSD, que lê muito mais que isso, tende a não acompanhar o deslocamento quando roda em HDD.
No gráfico
Alto só em alguns · Número de picos de frame (por tipo de armazenamento), latência de leitura do disco
Onde olhar
Registrar juntos, durante deslocamentos rápidos, PhysicalDisk\Avg. Disk sec/Read (tempo médio de uma leitura) e Current Disk Queue Length do Monitor de Desempenho do Windows e o frame time do PresentMon. Em build de desenvolvimento, stat Streaming e stat AsyncLoad no Unreal, e o aviso AssetBundle.asset/allAssets no Profiler do Unity (o resultado foi pedido antes de o carregamento terminar e a thread principal ficou esperando)
Confirma se
Em deslocamentos rápidos, a latência de leitura e a fila do disco disparam e, no mesmo momento, há picos de frame ou texturas e entidades aparecem tarde. A mesma cena rodando em SSD não tem o problema
Descarta se
Disco ocioso e texturas borradas: “Falta de memória de vídeo (VRAM)”. Normal a partir da segunda visita ao mesmo lugar: “Carregamento síncrono e compilação de shaders na thread principal”
Como verificar
Verificação no ambiente do jogador
Saiba mais
Se o jogo trava só na primeira vez e depois fica normal, o caso está mais para “Carregamento síncrono e compilação de shaders na thread principal”; se o problema se repete a cada deslocamento e só em PCs com armazenamento lento, é esta causa. A “Falta de memória de vídeo (VRAM)”, em que texturas são descarregadas e recarregadas porque a memória de vídeo não basta, também deixa texturas borradas, então verifique a espera de leitura do disco junto com o uso de memória de vídeo. A verificação em tempo real do antivírus também pode entrar no meio toda vez que o jogo abre um arquivo e atrasar ainda mais a leitura.

Fontes

  1. DirectStorage is coming to PC Microsoft
    Discos rígidos antigos leem dezenas de MB por segundo e SSDs NVMe, vários GB por segundo; o orçamento de streaming de assets dos jogos da geração anterior era de cerca de 50 MB por segundo; jogos de mundo aberto leem e descartam a paisagem distante em tempo real durante o deslocamento
  2. Texture and mesh loading Unity
    O upload síncrono lê e envia os dados em um único frame na thread principal e causa uma pausa visível; o upload assíncrono faz o streaming ao longo de vários frames
  3. Texture Streaming Overview for Unreal Engine Epic Games
    O streamer aumenta e reduz a resolução das texturas (mips) conforme o ponto de vista, faz a maior parte do cálculo em threads de trabalho assíncronas e carrega primeiro os mips visíveis na tela
  4. Profiler markers reference Unity
    Aviso AssetBundle.asset/allAssets: o resultado foi pedido antes de o carregamento terminar, e a thread principal parou para esperar
  5. Stat Commands in Unreal Engine Epic Games
    stat Streaming (memória e quantidade de texturas em streaming), stat AsyncLoad (estatísticas de carregamento assíncrono)
  6. Windows Performance Monitor Disk Counters Explained Microsoft
    Avg. Disk sec/Read é o tempo médio para concluir uma leitura (latência de I/O); Current Disk Queue Length é o tamanho da fila do disco no momento da medição
  7. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Grava o tempo de cada frame com o FrameTime (tempo de CPU entre frames)
  8. About regular quick and full scans with Microsoft Defender Antivirus Microsoft
    A proteção em tempo real verifica os arquivos toda vez que eles são abertos e fechados

Veja também

Mesma camada: L1 Processo do jogo no cliente

Mesmo sintoma (Invisível / entidade fantasma) em outras camadas

Ver o card interativo, com figuras e simulações