Laboratório de Delta Time e Timestep Fixo para Jogos

Compare loops de jogo com delta variável e timestep fixo usando picos de frame repetíveis, movimento simulado, passos de recuperação e desvio temporal visível.

Monte o padrão de frames

Frames renderizados por segundo

Tempo extra adicionado aos frames de pico

Tamanho igual do passo de simulação

O campo de testes

Dois relógios, um objeto em movimento

As barras mostram os hitches, as linhas acompanham as duas posições e o traço inferior isola o desvio que os valores finais podem esconder.

Experimento atualizado

O registro do movimento

Posição ao longo do tempo real decorrido. Uma linha tracejada marca passos fixos iguais.

Caminho de delta variávelCaminho de timestep fixoPico de frame

O modelo variável aplica a velocidade uma vez com a duração do frame atual. O modelo fixo acumula todo o tempo real e avança em passos iguais. Nenhum caminho é uma medição de desempenho.

Os seus valores são guardados apenas neste navegador para que o experimento esteja pronto quando voltar. Nenhum dado do jogo ou telemetria é enviado.

Zoom 100%
Estúdio de Utilitários

Quer este utilitário no seu site?

Personalize cores e o modo escuro para WordPress, Notion ou o seu próprio site.

Perguntas frequentes

O que este laboratório de timestep fixo demonstra?

Ele executa o mesmo objeto em movimento em um loop de delta variável e em um acumulador de timestep fixo. Picos de frame repetíveis tornam visíveis o tempo simulado, o desvio de posição e os passos de recuperação sem executar uma engine de jogo.

Qual é a diferença entre delta variável e timestep fixo?

O modelo variável avança uma vez por frame renderizado usando a duração desse frame. O modelo fixo avança em passos de simulação iguais e usa um acumulador para processar os passos exigidos pelo tempo real decorrido. Passos fixos reduzem a dependência da taxa de renderização, mas um frame longo pode exigir trabalho extra.

O que representa a entrada de pico de frame?

Ela adiciona milissegundos extras a cada frame escolhido como pico. O campo de frequência define a cada quantos frames o pico aparece, permitindo criar um hitch repetível em vez de depender de uma captura aleatória.

O que muda ao limitar o delta?

O limite reduz o delta usado pelo modelo variável quando um frame ultrapassa o teto escolhido. Isso pode impedir um salto grande, mas faz o relógio simulado desse modelo ficar atrasado em relação ao tempo real. O acumulador fixo continua contabilizando toda a duração do frame.

Isto é um profiler ou substitui os testes do jogo?

Não. É um laboratório determinístico de aprendizagem e design com números declarados. Ele não mede o seu dispositivo, diagnostica uma engine, modela o custo de renderização nem prova que um loop seja correto para todos os jogos.

# Entenda o relógio dentro de um loop de jogo

Cada frame renderizado entrega ao jogo um novo tempo decorrido. Em um loop de delta variável, o movimento costuma ser atualizado como position += velocity × frameTime. Quando os frames são estáveis, a velocidade média fica próxima da desejada, mas uma atualização pode ter o mesmo tamanho do frame que a produziu. Por isso, um hitch não é apenas uma pausa visual: ele muda a quantidade de tempo de jogo consumida por essa atualização.

# Compare a integração variável com um acumulador fixo

Um loop de timestep fixo soma a duração de cada frame a um acumulador e consome repetidamente um passo escolhido, como 16,667 ms. A simulação recebe atualizações iguais enquanto o render pode manter outro ritmo. A fração restante fica no acumulador para o próximo frame. Quando chega um frame longo, o loop fixo executa várias atualizações pequenas para contabilizar o tempo decorrido. O tamanho do passo permanece estável, mas pode surgir um pico de trabalho de recuperação.
Situação Caminho de delta variável Caminho de timestep fixo Decisão a considerar
Renderização estávelUma atualização usa cada duração normalPassos iguais consomem o tempo acumuladoOs dois caminhos devem acompanhar o mesmo movimento.
Frame longoUma atualização grande pode mover o objeto longe demaisVárias atualizações fixas recuperam o tempoObserve o desvio junto com a contagem de recuperação.
Taxa de renderização diferenteO tamanho da atualização muda com o frame rateO passo de simulação permanece igualPassos fixos reduzem a dependência do render.
Teto do deltaO tempo acima do limite é ignoradoO acumulador recebe a duração completaLimite apenas quando perder tempo for aceitável.

# Veja o que um pico de frame realmente faz

A 60 frames por segundo, um frame normal dura cerca de 16,667 ms. Com um pico adicional de 80 ms, um frame passa a durar cerca de 96,667 ms. O modelo variável consome toda essa duração em uma atualização. O modelo fixo consome em vez disso cerca de seis passos de 16,667 ms. O tempo total decorrido pode coincidir, embora o percurso dentro da simulação seja diferente.

# Leia o desvio de posição junto com a recuperação

A diferença de posição é o caminho variável menos o caminho fixo. Ela mostra o quanto as duas políticas de integração se separaram, não qual delas está automaticamente correta. A contagem de recuperação mostra quanto trabalho fixo foi necessário em um único frame renderizado. Uma diferença grande aponta para uma divergência de movimento visível; muitos passos apontam para um possível problema de orçamento de CPU. Os sinais estão relacionados, mas não dão o mesmo diagnóstico.

# Trate o limite do delta como uma política

Um limite pode impedir que uma aba pausada, um breakpoint ou um hitch grave teletransporte um personagem ou faça um corpo físico atravessar a geometria. O custo é que o relógio variável fica atrás do tempo real decorrido. Se o jogo precisa preservar o tempo, use um acumulador fixo ou outra política de recuperação. Se precisa manter os saltos limitados e continuar responsivo, um limite pode ser adequado, mas o tempo perdido deve ser intencional.

# Escolha o loop pelo trabalho que ele protege

Trabalho do loop Padrão útil Motivo
Física, colisões ou gameplay determinísticoTimestep fixoPassos iguais tornam a simulação menos dependente do ritmo de renderização.
Movimento visual simples sem estado acumuladoDelta variávelA atualização é pequena e normalmente não precisa de uma fila de recuperação.
Simulação de gameplay com renderização suaveAtualização fixa com interpolaçãoA simulação mantém o passo enquanto a apresentação esconde o progresso fracionário.
Recuperação depois de uma pausa gravePolítica de recuperação limitadaEvita transformar um frame ruim em trabalho de simulação ilimitado.

# Use um fluxo de ajuste repetível

Comece sem picos e confirme que os dois caminhos coincidem. Adicione um hitch repetível e mude a sua frequência para ver se o erro visível se acumula ou se estabiliza. Ajuste o passo fixo e observe a contagem de recuperação antes de alterar a velocidade. Por fim, ative o limite e compare o tempo simulado variável com o tempo real. Essa sequência separa a causa de uma divergência da política usada para contê-la.
O que este experimento não pode provar
O laboratório usa durações de frame declaradas e velocidade constante, portanto explica o comportamento temporal, mas não mede um dispositivo nem valida uma engine. Física real, amostragem de entrada, rede, interpolação e orçamento de frame podem mudar o melhor design. Use o resultado para formular uma hipótese e depois verifique-a no jogo real.