Bem-vindo ao quinto artigo da nossa série Vida de Game Dev aqui no Make Indie Games! No primeiro mês, alinhamos a mentalidade certa, desmistificamos engines e fugimos da armadilha do escopo infinito. Agora, chegou a hora de dar um passo adiante e mergulhar em como um jogo realmente roda por baixo do capô.
Todo iniciante já passou por essa cena bizarra: você programa a movimentação do seu herói no seu notebook e tudo parece suave. Aí você manda o jogo para um amigo testar em um monitor gamer de 144Hz ou 240Hz, e o personagem dispara pela tela na velocidade da luz! O que aconteceu?
O que é o Game Loop?
Diferente de um sistema web ou aplicativo tradicional — que fica parado aguardando um clique do usuário —, um jogo é um motor em rotação contínua chamado Game Loop, que se repete dezenas de vezes a cada segundo:
- Processar Entradas (Input): O jogador pressionou o analógico? Apertou o botão de pulo?
- Atualizar o Mundo (Update): Mover entidades, calcular a gravidade, rodar inteligência artificial, processar colisões.
- Renderizar a Cena (Draw/Render): Desenhar sprites, geometrias 3D, luzes e interface gráfica (UI) na tela.
Esse ciclo executa na maior velocidade permitida pelo hardware. Em uma máquina potente, ele repete 120 ou 144 vezes por segundo (144 FPS). Em um computador mais modesto, talvez alcance apenas 30 FPS.
O Erro Clássico da Velocidade por Quadro
Se você escrever no script algo direto como posicao_x += 5; a cada quadro, a física do seu jogo fica amarrada à taxa de atualização do monitor:
- Em um computador a 30 FPS, o boneco se moverá
5 * 30 = 150 pixels por segundo. - Em um monitor a 144 FPS, esse mesmo boneco se moverá
5 * 144 = 720 pixels por segundo!
O jogo fica quase injogável em telas rápidas e extremamente lento quando o computador sofre quedas de performance.
A Solução: Delta Time (dt)
O Delta Time (chamado de delta na Godot, Time.deltaTime na Unity ou dt no Construct) representa a fração exata de segundo que o último quadro levou para ser processado.
A 60 FPS, o delta é de aproximadamente 0.016 segundos (1 / 60). Se a taxa cai para 30 FPS, o delta passa a ser de 0.033 segundos.
Quando multiplicamos qualquer deslocamento pelo Delta Time (ex.: velocidade * delta), transformamos a movimentação de pixels por quadro para pixels por segundo real. Não importa se o jogo roda a 30 ou 240 FPS: o personagem sempre percorrerá a mesma distância no mesmo tempo do relógio!
Exemplos e Material de Apoio
Para ver esse cálculo implementado na prática com scripts comentados em Unity e Godot, você pode baixar os códigos de exemplo diretamente no meu repositório aberto no GitHub (github.com/dfilitto). Se quiser entender a fundo os conceitos de lógica de algoritmos e desempenho computacional, confira também os artigos fundamentais no meu blog de tecnologia dfilitto.blog.br.
No meu canal do YouTube (DFILITTO), demonstro a aplicação do Delta Time em projetos reais. E para quem busca uma formação estruturada em desenvolvimento de jogos do zero ao profissional, conheça a grade dos meus cursos na Udemy.
Você já enfrentou problemas de velocidade de jogo variando em computadores diferentes? Deixe seu comentário abaixo! Na próxima semana: os segredos do ‘Game Feel’ para fazer seu jogo parecer gostoso de controlar.





