![]() |
#1 |
Swordsman
Join Date: May 2016
Posts: 330
![]() |
On dungeon generation
So I've been slowly hacking on my roguelike, and it was time to write a map generator. At first, I wanted to just copy something from Angband or Sil, but, upon closer examination, it occured to me that they use an overly complicated method.
They first place all rooms and then try to connect them with tunnels. The tunneling phase is difficult and it can fail. So people hacked in some matrixes that check connections, floodfill algorithms doing the same and what not. It still can fail and then Angband aborts the generation and tries again, starting from scratch. I used a simpler way instead, as follows: Code:
1. Place the frist room. 2. Choose a place for (another) room. 3. See if it can be connected with tunnel to one of previous rooms. 4. If it can, place the room and the tunnel (and if not, then don't) 5. If not enough rooms yet, goto 2. Then, of course, you can do some postprocessing, for example, building more tunnels (the algorithm has a tendency to create some far-flung rooms with only one tunnel leading to them). But that's an easy step. So I figured maybe some of you would want to know that, in case you decide to write more dungeon profiles for Angband or something ![]() ![]() ![]() Last edited by t4nk; August 24, 2018 at 12:21. |
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Pyrel dungeon generation | fizzix | Variants | 50 | December 7, 2012 01:32 |
Making dungeon generation more interesting | Nomad | v4 | 5 | November 10, 2011 17:48 |
Disconnected dungeon generation | Derakon | Vanilla | 41 | January 6, 2011 00:25 |
Over-engineering dungeon generation | RogerN | Variants | 39 | July 19, 2010 05:21 |
Edit File For Dungeon Generation? | Zero | Vanilla | 3 | January 9, 2008 19:17 |