Geração Procedural de Dungeons
Robson Cruz
Introdução
Dungeon
- Uma prisão subterrânea.
- Uma configuração labiríntica composta de salas e corredores.
- Muito comum em jogos roguelike.
Roguelike
- Um tipo de gênero de jogos;
- Possui, entre outras características:
- Permadeath;
- Resource Management;
- Procedural Content Generation;
Geração Procedural
- Consiste na geração aleatória de conteúdo;
- Normalmente ocorre nos momentos de carregamento;
- Fatores relacionados ao jogador podem ser utilizados para a geração;
Geração Procedural
Modelagem
Objetivos
- Criação de um mapa completamente aleatório
- Dada determinada densidade, obter uma dungeon com maior ou menor quantidade de corredores;
Vértices
- São geradas m salas, contendo as informações necessárias (largura, altura, armadilhas, monstros, etc).
- Cada sala é então, tratada como uma vértice;
Arestas
- São gerados n corredores, conectando as salas de forma aleatória.
- Assim como as salas, os corredores podem conter armadilhas, emboscadas, ou armadilhas.
- Cada corredor é então tratada como uma aresta do grafo.
Montagem do Grafo
- Um grafo então é montado, contendo as salas(vértices) e corredores(arestas).
- As vértices brancas são "candidatas" a spawn-room;
Montagem da Dungeon
- Escolhemos uma das candidatas a spawn-room, e inicializamos uma busca em largura a partir dela.
- As arestas não selecionadas pela busca em largura são descartadas, e removidas do grafo;
Montagem da Dungeon
- Salas que não possuem nenhum corredor ganham um corredor para o grafo se tornar conexo.
- Algumas arestas extras são adicionadas para criar alguns ciclos no grafo;
Finalização
Considerações Finais
Links interessantes
Donjon Dungeon Generator https://donjon.bin.sh/d20/dungeon/
Rooms and Mazes: A Procedural Generator
http://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/
Procedural Content Generation in Games
http://pcgbook.com/
TP2: Grafos
By Robson Cruz
TP2: Grafos
- 78