Geração Procedural de Dungeons
Robson Cruz
![](https://s3.amazonaws.com/media-p.slid.es/uploads/robsoncruz/images/995344/88x31.png)
Introdução
Dungeon
- Uma prisão subterrânea.
- Uma configuração labiríntica composta de salas e corredores.
- Muito comum em jogos roguelike.
![](http://aaron3dart.weebly.com/uploads/1/3/5/8/1358646/6881369_orig.jpg)
Roguelike
- Um tipo de gênero de jogos;
- Possui, entre outras características:
- Permadeath;
- Resource Management;
- Procedural Content Generation;
![](https://www.klei.com/sites/default/files/styles/thumb/public/games/dont-starve/video-thumbs/920x680large-tile.jpg?itok=CZEkMT3o)
![](http://www.hardcoregaming101.net/roguelegacy/roguelegacy.jpg)
![](http://static.tvtropes.org/pmwiki/pub/images/darkest_dungeon_v5_by_harrybana_d8i59ry.png)
Geração Procedural
- Consiste na geração aleatória de conteúdo;
- Normalmente ocorre nos momentos de carregamento;
![](http://noelberry.ca/wp-content/uploads/2013/06/procgendun2.png)
- Fatores relacionados ao jogador podem ser utilizados para a geração;
Geração Procedural
![](http://i.imgur.com/OFsFQZz.png)
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;
![](https://s-media-cache-ak0.pinimg.com/736x/f8/89/71/f889712ea352fd3ac51366f707ea7a77--dungeon-room-dungeon-tiles.jpg)
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.
![](http://www.theilluminerdy.com/wp-content/uploads/2015/11/RandomDungeonCorridor.jpeg)
Montagem do Grafo
- Um grafo então é montado, contendo as salas(vértices) e corredores(arestas).
![](https://s3.amazonaws.com/media-p.slid.es/uploads/265645/images/4023801/Screenshot_from_2017-08-01_18-17-07.png)
- 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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/265645/images/4023801/Screenshot_from_2017-08-01_18-17-07.png)
Considerações Finais
Links interessantes
Donjon Dungeon Generator https://donjon.bin.sh/d20/dungeon/
![](https://s3.amazonaws.com/media-p.slid.es/uploads/265645/images/4023864/Screenshot_from_2017-08-01_18-46-48.png)
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
- 57