View Single Post
Old November 9, 2011, 22:51   #1
Nomad
Knight
 
Nomad's Avatar
 
Join Date: Sep 2010
Location: England
Posts: 958
Nomad is on a distinguished road
Making dungeon generation more interesting

So, v4 having finally given me the push to figure out how to compile on Windows and start doing some proper coding, this is one of the big things that I'm interested in.

My current project is implementing loading of room layouts from an edit file, similar to the way vault.txt works, so that rooms of any irregular shape or design can be generated easily and new ones can be added without any coding required. So far I've got this functional but the rooms are a bit sparse; I'm working on ways to be able to add monsters/treasure/traps from the edit file without making the positions as rigidly fixed as in vaults.

I'm trying to keep things as flexible as possible, to prevent the need for creating many very similar templates for basic variations on the same room. I've managed to implement random doors, and I'm thinking about adding optional walls that are generated 50% of the time, so that a single template would produce multiple possible room layouts, like this:

Code:
 template                  possible results

D:###1###      ###+###    #######    ###+###    #######
D:#.....2      #.....#    #.....+    #.....#    #.....+
D:#.....#      #.....#    #.....#    #.....#    #.....#
D:#xxxxx#  =>  ####### OR ####### OR #.....# OR #.....#
D:#.....#      #.....#    #.....#    #.....#    #.....#
D:2.....#      #.....#    +.....#    #.....#    +.....#
D:###1###      ###+###    #######    ###+###    #######
If I can figure out how to duplicate the monster and treasure generation aspects, it should be possible to move all the fixed sized 'special rooms' (i.e., 2x2, checkerboard and other moated rooms) from generate.c to the edit file. Flexible sized rooms like the round ones would still have to be generated in the code though.

I'm hoping that by the time I've got this done, I'll know enough about what I'm doing to do a similar thing with a layout file for pit designs, so monster pits could appear in different shapes and sizes, and perhaps have different layouts according to type. (e.g., cavern type rooms for animal nests, more structured fortifications for orcs pits, etc.)

So what other stuff would people like to see done to make levels more interesting? Rooms with themed selections of monsters and/or treasure are certainly something else I'd like to do, but I suspect that's a bit beyond my grasp of the code at the moment...
Nomad is offline