Voltar para o Blog
Quest Log

Como Fazer um Roguelike no Godot do Zero (Passo a Passo)

Cena de roguelike 2D top-down com uma sala gerada cheia de inimigos e itens espalhados pelo chão

Como fazer um roguelike no Godot do zero: geração procedural, RNG, ondas de inimigos, itens e meta progressão para render a rejogabilidade de verdade.

Ferramenta:Godot

Como Fazer um Roguelike: Rejogabilidade com Pouco Conteúdo

Se você está sozinho ou num time pequeno e quer um jogo que rende muitas horas sem precisar desenhar cem fases à mão, aprender como fazer um roguelike é uma das melhores apostas que existem. A lógica do gênero é direta: em vez de você construir todo o conteúdo manualmente, o jogo monta as partidas na hora, combinando peças que você criou. Um punhado de salas, inimigos e itens bem feitos vira centenas de partidas diferentes. É escopo de arte pequeno gerando rejogabilidade grande, e é por isso que o gênero é tão querido por quem faz jogo indie. Brotato e Halls of Torment, dois sucessos feitos em Godot, são exatamente desse estilo. Detalhes de game feel ajudam muito aqui: um ímã que puxa os itens coletáveis pro jogador, do jeito que os materiais voam até você em Brotato, faz a colheita de recompensas viciar.

Este texto é o mapa do gênero pra iniciante. A ideia não é entregar um roguelike pronto dentro de um post, e sim te mostrar quais são as peças, por que o gênero encaixa tão bem no trabalho solo e em que ordem montar tudo sem se afogar. Quando esse mapa fica claro, qualquer tutorial passa a fazer sentido, porque você para de copiar passos e começa a enxergar o sistema por trás.

O que define um roguelike (e o que é roguelite)

Três coisas formam o coração do gênero. A primeira é a morte permanente, o permadeath: quando o personagem morre, a partida acaba e você recomeça, não tem salvar e voltar de onde parou. A segunda é a geração procedural: o mapa, os inimigos e os itens mudam a cada partida, então nunca é a mesma corrida duas vezes. A terceira é a estrutura de runs, ou partidas: cada partida é uma tentativa fechada, com começo, meio e fim, e o jogo é feito pra você jogar muitas delas. Junte isso a uma progressão que evolui entre as partidas e você tem a fórmula.

A diferença entre roguelike e roguelite, sem academicismo, é só o quanto fica de uma partida pra outra. No roguelike purista, morreu, perdeu tudo, volta totalmente ao zero. No roguelite, você morre e recomeça do mesmo jeito, mas guarda algum progresso permanente, como upgrades, moedas ou personagens novos desbloqueados. Essa progressão que fica entre partidas é a meta progressão, e ela dá um senso de avanço mesmo quando você perde. A maioria dos sucessos modernos é roguelite, e pra quem está começando esse é o caminho mais agradável de fazer e de jogar.

Por que o roguelike é tão bom pro indie

Aqui está o motivo de o gênero ser quase um cheat code pra quem trabalha sozinho. Num jogo linear, cada hora de gameplay costuma exigir horas de fase desenhada à mão, arte específica, level design cuidado, tudo manual. Num roguelike, o conteúdo é gerado por sistema. Você cria as peças uma vez, e o jogo as recombina infinitamente. O custo de arte e de level design não cresce na mesma proporção que o tempo de jogo, e essa é a diferença que cabe no bolso e na agenda de uma pessoa só.

Pensa no Brotato. O escopo de arte dele é enxuto, mas a quantidade de partidas diferentes que ele entrega é enorme, porque a variação vem da combinação de armas, itens e inimigos, não de cenários pintados um por um. Esse é o truque. Você investe seu tempo nos sistemas que geram variedade, e a variedade aparece sozinha durante o jogo. Pra quem não tem equipe de artistas nem anos de prazo, é a forma mais eficiente de transformar pouco conteúdo em muita rejogabilidade. A mesma matemática sustenta o primo mais próximo do gênero: no guia de como fazer um jogo deck builder a variedade vem das combinações de cartas em vez de salas.

Os pilares pra construir um roguelike

Vale conhecer as peças antes de sair montando, porque entender o papel de cada uma economiza horas de confusão depois.

Geração procedural. É o que monta o mundo a cada partida. Pode ser o layout das salas, a forma do mapa, quais itens aparecem, qual inimigo nasce onde. Não precisa ser sofisticado pra funcionar: sortear um inimigo de uma lista já é geração procedural. O nível de complexidade cresce com o jogo, mas o princípio é sempre o mesmo, deixar o sistema decidir em vez de você fixar tudo na mão. Quando chegar a hora de gerar o mapa de verdade, o tutorial de geração procedural de dungeon 2D na Godot 4 monta esse sistema passo a passo.

Aleatoriedade controlada. Roguelike é movido a sorte, mas sorte sem freio destrói o jogo. Controlar o RNG, o gerador de números aleatórios, significa garantir que o sorteio nunca produza uma combinação injogável, e que o jogador sempre tenha alguma chance. Aqui também entra o conceito de semente, ou seed: um número que alimenta o gerador e faz o resultado ser reproduzível. Mesma semente, mesma partida. Isso é ouro pra testar e pra depurar, porque você consegue repetir exatamente o cenário que deu errado. Se esse assunto é novo pra você, vale firmar a base lendo sobre aleatoriedade e RNG no Godot antes de avançar, porque é a engrenagem que move o gênero inteiro.

Inimigos em ondas ou spawn. O desafio do roguelike costuma vir do fluxo de inimigos. Eles aparecem em ondas, ou nascem em pontos do mapa conforme você avança. Esse sistema de spawn é o que mantém a tensão, e é onde boa parte da dificuldade é calibrada. Montar um spawner que solta inimigos no ritmo certo é um dos primeiros sistemas que você vai querer ter funcionando.

Itens e sinergias. Os itens são o tempero. Cada partida você pega itens diferentes, e a graça aparece quando eles combinam entre si de formas inesperadas, as sinergias. Dois itens medianos que juntos viram uma máquina de destruição: é esse momento que faz o jogador querer mais uma partida. Você não precisa de cem itens pra isso. Precisa de itens que conversem entre si. Essa lógica de combinar cartas e efeitos é o coração de uma variação muito popular do gênero, o roguelike deckbuilder, e se ela te interessa vale ver como fazer um jogo de cartas no Godot pra aproveitar as sinergias num baralho.

Meta progressão. É o que fica entre partidas e dá razão pra continuar mesmo perdendo. Pode ser desbloquear armas novas, personagens, melhorias permanentes. Ela transforma a derrota em progresso e é o que segura o jogador no longo prazo.

Dificuldade que escala. Uma partida tem que ficar mais difícil conforme avança, senão vira monótona. Mais inimigos, inimigos mais fortes, ondas mais frequentes. O segredo é deixar esses números num lugar fácil de ajustar, porque calibrar a curva é trabalho de muitas tentativas.

Curso de Godot
Quer fazer seu primeiro jogo na Godot?

No curso de Godot da CursoGame.Dev você vai do zero ao primeiro jogo, com um desafio prático em cada level e suporte individual no WhatsApp quando travar.

Conhecer o curso de Godot
Suporte no WhatsAppAcesso vitalícioGarantia de 7 dias

Como começar pequeno

O erro que mais derruba projeto de roguelike é querer construir o gerador inteiro antes de ter um jogo divertido. Faça o contrário. Comece com uma única sala fixa, montada à mão, com um personagem que se move, alguns inimigos e um item pra pegar. Sem geração procedural nenhuma ainda. O objetivo é só responder uma pergunta: andar, atirar, pegar o item e enfrentar esses inimigos é divertido por conta própria?

Se a resposta for sim, você tem uma base. Se for não, nenhum gerador procedural do mundo vai salvar, porque a procedural só multiplica o que já existe. Multiplicar algo chato dá muito conteúdo chato.

Com o loop de uma sala funcionando e gostoso, aí sim você introduz variação, e de forma gradual. Boa parte do combate de roguelike vem de atirar, então se ainda não tem isso de pé vale montar o sistema de tiro e projéteis antes, porque é o que torna o loop divertido por conta própria. Primeiro, sorteie qual inimigo nasce, em vez de fixar. Depois, sorteie o item que aparece. Depois, varie o layout da sala. Um passo de cada vez, testando se continua divertido a cada adição. Sortear um item de uma lista, por exemplo, é simples assim:

extends Node

var itens: Array[String] = ["espada", "escudo", "bota", "amuleto"]

func sortear_item() -> String:
    var indice: int = randi() % itens.size()
    return itens[indice]

O randi() devolve um inteiro aleatório, e o % pega o resto da divisão pelo tamanho da lista, garantindo um índice válido. Isso já é geração procedural de item. Quando você quiser que uma partida seja reproduzível, troca o gerador global por um RandomNumberGenerator com semente:

extends Node

var rng := RandomNumberGenerator.new()

func iniciar_partida(semente: int) -> void:
    rng.seed = semente

func sortear_dano() -> int:
    return rng.randi_range(5, 15)

Guardando a semente, você consegue repetir exatamente a mesma sequência de sorteios, o que é uma mão na roda pra encontrar um bug que só acontece numa combinação específica. Com a base sólida, o próximo sistema a montar costuma ser o de inimigos, e o guia de spawn de inimigos em ondas cobre esse pedaço com calma.

Erros comuns que afundam o projeto

O primeiro já foi dito, mas merece repetição porque é o mais letal: construir o gerador procedural complexo antes de o gameplay base ser divertido. É a armadilha mais comum do gênero. A pessoa passa semanas num sistema lindo de geração de masmorras e nunca para pra checar se mover e lutar naquele jogo é gostoso. Quando descobre que não é, já gastou o fôlego todo no encanamento. Inverta sempre: diversão primeiro, geração depois.

O segundo é RNG sem controle. Aleatoriedade pura, sem regras, gera partidas injogáveis. O jogador abre a primeira sala e leva dez inimigos de uma vez, ou passa a partida inteira sem encontrar um item útil, ou recebe uma combinação que torna a vitória impossível. Sorte é o tempero do gênero, mas sorte sem freio é frustração. Sempre coloque limites: um mínimo de itens úteis, um teto de inimigos por onda, regras que impeçam o pior caso. O jogador tem que sentir que perdeu por uma decisão, não por um sorteio cruel que ele não tinha como contornar.

O terceiro é escopo. O gênero tenta te seduzir a adicionar mais um item, mais um inimigo, mais um sistema, infinitamente. Resista no começo. Um roguelike pequeno e redondo, com poucas peças que combinam bem, é muito melhor que um gigante pela metade que nunca sai do papel.

Próximos passos

Você já tem o mapa: entender permadeath, partidas e procedural, montar um loop de uma sala divertido antes de qualquer gerador, e só então introduzir variação controlada com RNG, ondas de inimigos, itens com sinergia e meta progressão por cima. Esse é o esqueleto de qualquer roguelike, e tudo que você aprender depois se encaixa nele.

O próximo passo prático é hoje, e é pequeno. Abra o Godot, crie uma sala fixa com o personagem, um par de inimigos e um item no chão. Faça esse loop ficar divertido por conta própria, sem sortear nada ainda. Quando ele estiver gostoso, adicione o primeiro sorteio, o do inimigo, e sinta a partida mudar. É assim que todo roguelike começa, uma sala de cada vez. E se quiser ver até onde esse caminho leva quando alguém termina o trabalho, vale conhecer outros jogos comerciais feitos em Godot e lembrar que cada um deles, lá no comecinho, foi alguém colocando um personagem pra andar numa sala. Aqui no CursoGame.Dev a gente acredita que jogo se aprende fazendo, então comece pequeno, termine o que começar, e deixe os sistemas fazerem o trabalho pesado de gerar conteúdo por você.

Perguntas frequentes

Qual a diferença entre roguelike e roguelite?

Roguelike é a forma mais purista: morreu, perdeu tudo e recomeça do zero, sem nada que carregue de uma partida pra outra. Roguelite é mais flexível: você ainda morre e recomeça, mas guarda algum progresso permanente entre as partidas, como upgrades ou personagens desbloqueados. A maioria dos sucessos modernos é roguelite, porque a progressão que fica dá uma sensação de avanço mesmo quando você perde.

Dá pra fazer um roguelike sozinho?

Dá, e é um dos gêneros mais amigáveis pra quem trabalha sozinho. Como o conteúdo é gerado por sistema em vez de desenhado à mão, você não precisa criar dezenas de fases manualmente. Um punhado de salas, inimigos e itens bem feitos rende muitas partidas diferentes. O esforço vai pros sistemas, não pra quantidade de arte.

Preciso mesmo de geração procedural?

Pra render rejogabilidade alta com pouco conteúdo, sim, ela é o coração do gênero. Mas você não precisa de um gerador complexo no dia um. Comece com uma sala fixa e gameplay divertido, depois introduza variação aos poucos: sorteie inimigos, depois itens, depois o layout. A procedural entra quando o jogo base já é bom.

Qual engine usar pra fazer um roguelike?

O Godot é uma excelente escolha pra começar, especialmente em 2D. É gratuito, leve e tem ótimo suporte a 2D top-down, que é o formato mais comum do gênero. Sucessos como Brotato e Halls of Torment foram feitos em Godot, então a engine claramente dá conta. Pra um primeiro roguelike, é um caminho honesto.

Como faço a dificuldade aumentar ao longo da partida?

O jeito mais simples é escalar com o tempo ou com o progresso. Aumente o número de inimigos por onda, a vida deles ou a frequência de spawn conforme a partida avança. O segredo é deixar esses números num lugar fácil de ajustar, porque você vai mexer neles muitas vezes até a curva ficar gostosa.

Quanto tempo leva pra fazer um roguelike jogável?

Um protótipo de uma sala com inimigos e um item você monta em poucos dias se já souber o básico da engine. O que leva tempo é calibrar: ajustar o RNG, balancear itens, fazer a dificuldade subir de forma justa. O gênero é rápido de começar e longo de polir, e a maior parte do trabalho está no polimento, não no esqueleto.