O Que É o Core Loop de um Jogo e Como Projetar o Seu

Entenda o que é o core loop de um jogo, como o ciclo de ação e recompensa funciona, veja exemplos reais e aprenda a projetar e testar o seu.
O Que É o Core Loop de um Jogo e Como Projetar o Seu
O core loop de um jogo é a sequência de ações que o jogador repete o tempo inteiro, do minuto um até a última sessão. Em Tetris: peça cai, você encaixa, linha some, próxima peça. Em Minecraft: explora, coleta, constrói, explora de novo. Se esse ciclo é bom, o jogador fica. Se é fraco, nenhuma quantidade de história, gráfico ou conteúdo segura ele.
É por isso que core loop é a primeira coisa que eu desenho num projeto novo, antes de qualquer arte e antes de quase todo código. Errar aqui é errar a fundação: você só descobre meses depois, com o jogo inteiro construído em cima.
Nesse artigo vou destrinchar como o ciclo de ação e recompensa funciona, mostrar exemplos de jogos conhecidos e passar o processo que eu uso pra projetar e testar um loop antes de comprometer meses de produção.
O que é o core loop de um jogo, na prática
Pense no seu jogo como uma série de ciclos aninhados. O core loop é o menor deles, o ciclo de segundos a poucos minutos que se repete milhares de vezes. Ele tem três partes:
- Ação: o que o jogador faz. Atirar, pular, plantar, combinar peças, escolher uma carta.
- Recompensa: o que o jogador ganha por fazer. Pontos, loot, recurso, progresso visível, ou só a satisfação de ter executado bem.
- Motivação pra repetir: o que puxa o jogador de volta pro início do ciclo. Geralmente a recompensa abre uma possibilidade nova, ou o desafio seguinte já está na tela.
A terceira parte é a que separa um loop de uma tarefa. Lavar louça também é ação e resultado, mas nada te puxa pro próximo prato. Num bom core loop, completar o ciclo cria o desejo de rodar ele de novo: o loot que dropou pede pra ser equipado, o equipamento novo pede um inimigo mais forte, o inimigo mais forte dropa loot melhor.
Loops dentro de loops
O core loop nunca existe sozinho. Em volta dele orbitam ciclos maiores:
- Loop de segundos: mirar e atirar num FPS.
- Loop de minutos: limpar uma arena, completar uma fase.
- Loop de sessão: uma run inteira de um roguelike, uma partida de um MOBA.
- Loop de longo prazo: subir de nível, desbloquear a árvore de skills, terminar a campanha.
Os loops externos dão direção, mas quem carrega o jogo nas costas é o interno. Ninguém grinda 80 horas por uma árvore de skills se apertar o botão de ataque não é gostoso. O contrário acontece direto: jogos com loop de segundos excelente e quase nenhuma meta de longo prazo (Tetris de novo) duram décadas.
O ciclo de ação e recompensa em jogos reais
Olhar jogos de sucesso pela lente do loop é o melhor treino de game design que existe. Alguns exemplos:
Vampire Survivors. Ação: andar desviando da horda enquanto o ataque é automático. Recompensa: gemas de XP espalhadas no chão. Motivação: cada level up oferece uma escolha de upgrade, e o upgrade muda como você anda e desvia. O loop fecha em segundos e o jogo inteiro é só ele, bem afinado.
Stardew Valley. Ação: plantar, regar, colher. Recompensa: dinheiro e itens. Motivação: o dinheiro vira semente melhor, ferramenta melhor e expansão da fazenda, que aumentam o que você consegue plantar amanhã. O ciclo do dia dentro do jogo é o loop de sessão perfeito: termina o dia, salva, "só mais um dia" e já é madrugada na vida real.
Slay the Spire. Ação: jogar cartas num combate por turnos. Recompensa: carta nova, relíquia, ouro. Motivação: cada carta nova muda as combinações possíveis no próximo combate, então a decisão de pegar ou pular uma carta é, em si, parte do jogo.
Counter-Strike. Ação: comprar, posicionar, atirar. Recompensa: round vencido, dinheiro pro próximo round. Motivação: a economia liga um round no outro, e a execução pura (mirar bem) é recompensa intrínseca. Repare que quase não existe progressão permanente, e o jogo roda há mais de vinte anos.
O padrão que se repete: a recompensa não é só um número subindo. Ela alimenta a próxima ação. Quando a recompensa não muda nada no jogo (uma conquista decorativa, por exemplo), ela não fecha o loop, só enfeita.
Como projetar o seu core loop
O processo que funciona pra mim tem quatro passos, e nenhum deles envolve abrir a engine.
1. Escreva o loop em uma frase
Complete: "no meu jogo, o jogador repetidamente ___, ganha ___, e isso o leva a ___". Se você precisa de três frases, seu loop está confuso ou você está descrevendo um loop externo. "O jogador explora a masmorra, encontra equipamento, e o equipamento permite descer mais fundo" cabe numa frase. "O jogador vive uma jornada épica de vingança" não é um loop, é uma premissa.
2. Verifique cada elo da corrente
Pra cada parte da frase, pergunte:
- A ação é interessante por si só? Ela exige decisão ou habilidade? Apertar um botão e esperar não é ação, é assistir. Se a resposta é não, ou você melhora a ação ou aceita que está fazendo um idle game (que é um gênero legítimo, mas tem que ser de propósito).
- A recompensa é percebida na hora? Recompensa que o jogador não nota não existe. Som, número, item no inventário, barra enchendo: algo precisa confirmar "funcionou".
- A recompensa muda a próxima rodada do loop? Esse é o elo que mais quebra. Se o jogador pode ignorar a recompensa e jogar exatamente igual, o loop está aberto.
3. Corte até sobrar o mínimo
Iniciante adora empilhar sistemas: crafting, mais reputação, mais clima dinâmico, mais pesca. Cada sistema extra é um loop concorrente disputando a atenção do jogador e o seu tempo de desenvolvimento. A pergunta certa é a inversa: qual é o menor conjunto de ação, recompensa e motivação que ainda é divertido? Comece por ele. Sistema extra entra depois, quando o núcleo já provou que funciona, e entra pra alimentar o loop central, não pra competir com ele.
4. Defina o tempo de ciclo
Cronometre mentalmente: quanto tempo leva uma volta completa no loop? Não existe número mágico, mas existe coerência com a plataforma e o contexto. Jogo mobile de fila de banco pede ciclos de segundos. Um jogo de estratégia pra PC aguenta ciclos de vários minutos. O problema é o descompasso: um jogo hyper casual com loop de dez minutos morre, e um RPG de 60 horas feito só de microciclos cansa.
Como testar se o core loop funciona
Loop se valida jogando, não discutindo. E dá pra validar barato.
Protótipo feio, rápido e focado
Monte só o loop. Sem menu, sem arte final, sem história. Quadrados coloridos e fontes padrão estão ótimos. O objetivo é responder uma única pergunta: rodar esse ciclo vinte vezes seguidas continua interessante? Se a resposta com quadrados é não, arte bonita não vai consertar, só vai mascarar o problema por mais tempo (e mais caro).
Pra muitos loops você nem precisa de código: papel, dado e post-it testam um loop de deck builder ou de gerenciamento numa tarde.
Playtest de verdade
Coloque o protótipo na mão de alguém que não é você e fique quieto. Não explique, não justifique, não diga "ah, mas na versão final...". Observe três coisas:
- Onde a pessoa para de jogar. O momento do abandono geralmente aponta o elo quebrado: se ela larga depois da recompensa, a motivação pra repetir está fraca; se larga no meio da ação, a ação está chata ou confusa.
- Se ela consegue explicar o loop. Pergunte no final: "o que você ficava fazendo?". Se a resposta dela bate com a sua frase do passo 1, a comunicação do jogo está funcionando.
- O "só mais uma". O sinal mais confiável de loop saudável é o testador pedir pra jogar de novo sem você oferecer.
Meça o ciclo com dados simples
Sensação engana, número não. Instrumentar o protótipo pra medir a duração de cada volta do loop custa poucas linhas. Em GDScript (Godot 4), um medidor mínimo:
extends Node
var loop_start_ms: int = 0
var durations: Array[float] = []
# Chame quando o ciclo começa (ex: inimigo nasce, peça aparece).
func loop_started() -> void:
loop_start_ms = Time.get_ticks_msec()
# Chame quando o ciclo fecha (ex: recompensa coletada).
func loop_completed() -> void:
var seconds := (Time.get_ticks_msec() - loop_start_ms) / 1000.0
durations.append(seconds)
print("ciclo %d: %.1fs" % [durations.size(), seconds])
func _exit_tree() -> void:
if durations.is_empty():
return
var total := 0.0
for d in durations:
total += d
print("ciclos: %d | média: %.1fs" % [durations.size(), total / durations.size()])
Com isso você descobre, por exemplo, que o ciclo que você imaginava em 30 segundos leva dois minutos na mão de um jogador novo, ou que a duração cresce a cada volta porque a dificuldade escala rápido demais. São decisões de tuning que o cronômetro entrega e a intuição não.
Itere no loop antes de escalar
Cada rodada de teste gera ajuste: encurtar a ação, deixar a recompensa mais visível, fortalecer o elo de motivação. Só quando o loop sobrevive a vários testadores sem você precisar defender ele é que vale construir conteúdo em cima. Conteúdo multiplica o que o loop é: multiplica diversão se ele é bom, multiplica tédio se ele é fraco.
Fechando
Core loop é a frase que descreve o que seu jogador faz mil vezes: ação que exige algo dele, recompensa que ele percebe, e uma recompensa que muda a próxima volta. Os melhores jogos que você conhece cabem nessa frase, e o seu também precisa caber.
O erro caro não é desenhar um loop ruim no papel, é descobrir que ele é ruim depois de seis meses de produção. Então faça o barato primeiro: escreva a frase, prototipe feio, coloque na mão de alguém e meça. Se com quadrados cinzas a pessoa pedir "só mais uma", você tem um jogo. O resto é construção em cima de fundação boa.


