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

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

Picos de frame time Frame hitch

ID da causa cg-hitch · Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento)

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

Um frame leva várias vezes mais que o normal para ser calculado, e a imagem para por um instante.

Por quê Explosão de efeitos de skill, spawn em massa e atualização da UI inteira se acumulam no mesmo frame → Efeito O frame não termina em 16,7 ms e leva 50–300 ms → Na tela A imagem dá um engasgo e, no frame seguinte, todos se movem de uma vez

Sintomas
Engasgos, Travamento
Fatores
Paralisação
Quem é afetado
Só eu
Quando
Quando junta muita gente, Ao fazer ações específicas, Aleatoriamente, de vez em quando
Responsável
Responsável principal Desenvolvimento do cliente (Equipe de desenvolvimento)
O que fazer (Equipe de desenvolvimento)
Dividir o trabalho pesado entre vários frames, encontrar com um profiler os frames que dão pico, limitar o número de efeitos.
Números de referência
Em 60 FPS, um frame dura 16,7 ms. Basta um único frame acima de 50 ms para o jogador sentir que o jogo “engasgou”.
No gráfico
Picos aleatórios · Frame time
Onde olhar
Gravar com o PresentMon, durante o jogo, o frame time (FrameTime) e o tempo que a CPU e a GPU gastaram em cada frame (CPUBusy, GPUBusy). No mobile, as métricas de sessões lentas e de renderização lenta do Android vitals
Confirma se
O frame time, normalmente perto de 16,7 ms, dispara acima de 50 ms em momentos que coincidem com efeitos de skill, spawns em massa ou atualização da UI inteira, e o ping não muda nesses momentos
Descarta se
Frame time estável, mas só os outros personagens dão engasgos: aponta para a rede, como “Buffer de interpolação ausente ou curto demais”. Picos em intervalos regulares: verifique primeiro “Coleta de lixo (GC) no cliente”
Como verificar
Verificação no ambiente do jogador

Fontes

  1. Slow rendering Android (Google)
    Para rodar a 60 FPS, cada frame precisa ser desenhado em 16 ms; se atrasar, frames são pulados e aparecem como engasgos (jank)
  2. Slow Sessions (games only) Android (Google)
    O Android vitals considera lento o frame de jogo que passa de 50 ms (20 FPS) ou de 34 ms (30 FPS)
  3. PresentMon Capture Application (README-CaptureApplication.md) Intel
    FrameTime (tempo de CPU entre frames), CPUBusy e GPUBusy (tempo que a CPU e a GPU gastaram para produzir aquele frame)

Veja também

Mesma camada: L1 Processo do jogo no cliente

Mesmo sintoma (Engasgos) em outras camadas

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