Crie um jogo original de exploração de cavernas com um pequeno gráfico de salas e uma semente repetível. Nas fictícias Cavernas da Lanterna, uma semente coloca um perigo no ramo esquerdo e um tesouro no direito. Outra os inverte, enquanto uma rota segura para a saída permanece aberta.
Comece com movimentos discretos entre salas e um ponto de vida. Uma semente visível, um registro de movimentos e uma verificação do caminho seguro tornam o nível fácil de reproduzir e diagnosticar antes de adicionar saltos ou mapas maiores.
Comece com uma caverna repetível

A listagem do Spelunky da Mossmouth descreve um platformer com níveis randomizados, armadilhas e tesouros. Use a ideia geral de explorar uma caverna em constante mudança para projetar seus próprios quartos, perigos e identidade visual.
Para este protótipo, use uma grade de quartos de 3 por 3. As coordenadas são escritas como (coluna, linha), começando em zero no canto superior esquerdo. O jogador começa em S, a saída é E e os dois quartos de ramificação podem conter um perigo ou um tesouro.
Construa o grafo dos quartos
| Linha | Coluna 0 | Coluna 1 | Coluna 2 |
|---|---|---|---|
| 0 | S (0,0) | Aberto (1,0) | Parede (2,0) |
| 1 | Branch (0,1) | Open (1,1) | Branch (2,1) |
| 2 | Wall (0,2) | Open (1,2) | E (2,2) |

Conecte cada sala aberta aos vizinhos abertos adjacentes ortogonalmente. Um movimento entra em uma sala adjacente e custa um turno. Rejeite um movimento para uma parede, fora da grade ou diagonalmente, mantendo a posição e a contagem de turnos inalteradas.
A espinha dorsal garantida é S → (1,0) → (1,1) → (1,2) → E. Essas cinco salas permanecem seguras em ambos os layouts. As salas ramificadas em (0,1) e (2,1) criam uma pequena escolha sem quebrar a rota para a saída.
Compare duas sementes
Para uma semente inteira par, coloque o perigo em (0,1) e o tesouro em (2,1). Para uma semente ímpar, troque-os. Comece com vida 1 e tesouro 0. Entrar em um perigo reduz a vida a zero e encerra a execução. Entrar no tesouro o coleta uma vez e limpa a sala. Entrar em E completa a execução, independentemente de o tesouro ter sido coletado.
| Semente | Perigo | Tesouro | Mover para baixo a partir de S |
|---|---|---|---|
| 8 | (0,1) | (2,1) | A rodada termina após um movimento. |
| 9 | (2,1) | (0,1) | Colete um tesouro; a saúde permanece em 1. |

Para qualquer semente, a espinha dorsal chega a E com segurança em quatro movimentos. Com a semente 8, o caminho para a direita, para baixo, para a direita chega ao tesouro em três movimentos. Mais um movimento para baixo chega a E. Em um reinício com a mesma semente, restaure o mesmo conteúdo da sala, a saúde e a contagem de tesouros.
Verifique a rota gerada
Antes de permitir uma rodada, busque no grafo da sala de S para E, tratando a sala de perigo como bloqueada. Aceite o layout apenas se existir um caminho. Uma busca em largura pode registrar as salas visitadas e adicionar cada vizinho seguro não visitado a uma fila até que alcance E ou esgote a fila.
Se a busca falhar, exiba um erro de geração e rejeite o layout. Se a mesma semente produzir posições de perigo diferentes após o reinício, inspecione a regra da semente e verifique se o reinício não está sorteando silenciosamente uma nova semente. Estas são verificações para o modelo de sala criado, não medições de um jogo finalizado.
Dê à IA o fixture completo da caverna
Construa um jogo de caverna original para navegador chamado Lantern Caves.
Use uma grade de 3x3 com coordenadas (coluna, linha), base zero a partir do canto superior esquerdo.
Início S=(0,0); saída E=(2,2).
Salas abertas: (0,0), (1,0), (1,1), (1,2), (2,2), (0,1), (2,1). Todas as outras células são paredes.
Conecte salas abertas adjacentes ortogonalmente. Um movimento válido entra em uma sala aberta adjacente e custa um turno.
Rejeite paredes, movimentos fora da grade e movimentos diagonais sem alterar a posição ou a contagem de turnos.
Uma semente inteira par coloca perigo (0,1), tesouro (2,1). Uma semente inteira ímpar os troca.
Saúde inicial 1, contagem de tesouro 0. Entrar no perigo define a saúde como 0 e encerra a rodada.
Entrar no tesouro o coleta uma vez e limpa a sala. Entrar em E completa a rodada com ou sem tesouro.
Antes do jogo, execute uma busca em grafo de S para E tratando o perigo como bloqueado. Rejeite um layout se não existir um caminho seguro.
O eixo principal (0,0), (1,0), (1,1), (1,2), (2,2) é seguro para as sementes 8 e 9.
Com a semente 8, mover-se para baixo uma vez encerra a rodada. Com a semente 9, esse movimento coleta tesouro e deixa a saúde em 1.
Com a semente 8, direita, baixo, direita coleta tesouro; depois, baixo alcança E.
Dê a cada movimento um ID. Ignore um evento repetido com o mesmo ID.
Reiniciar com a mesma semente restaura o conteúdo das salas, saúde, tesouro, contagem de turnos e IDs de ação.
Exiba a semente, a sala atual, a contagem de turnos, a saúde, o tesouro e um log de movimentos legível.
Use arte de caverna original e controles acessíveis por teclado.
Teste o eixo principal seguro com ambas as sementes. Em seguida, repita o primeiro movimento para baixo sob cada semente e compare os resultados. Tente um movimento contra uma parede e um ID de evento duplicado. Veja o guia de primeira construção para adaptar o fixture.
Construa Lantern Caves no SEELE AI Game Maker e verifique o grafo e o comportamento de reinício antes de adicionar mais perigos.
Perguntas frequentes
Quão grande deve ser o primeiro nível de caverna?
Comece com um pequeno grafo de salas que você possa inspecionar completamente. Uma grade de três por três é suficiente para mostrar uma rota garantida e duas salas de ramificação variáveis. Depois que os testes de reinicialização e de caminho funcionarem, expanda o gerador mantendo as mesmas regras de validação.
Por que manter a semente visível?
Uma semente visível permite reproduzir um arranjo específico de salas e relatá-lo quando algo der errado. Reiniciar o layout da semente fictícia 8 deve restaurar o perigo e o tesouro para as mesmas salas. Uma nova semente pode ser introduzida intencionalmente após a reprodução passar.
Como posso verificar se uma caverna gerada é solucionável?
Busque do início até a saída usando apenas salas conectadas e seguras. Trate o perigo como bloqueado para esta verificação e rejeite um layout se nenhuma rota existir. O fixture Lantern Caves mantém uma espinha dorsal de cinco salas segura para ambas as sementes de exemplo.
O que deve fazer um movimento inválido?
Mantenha a posição do jogador e a contagem de turnos inalteradas quando um movimento visa uma parede, a borda da grade ou uma sala diagonal. Explique por que a entrada foi rejeitada. Isso torna os erros de movimento distinguíveis de um movimento válido para uma sala perigosa.


