So... I have been playing around the last months with lots of ideas I had for a dungeon crawler. The maps are grid-like, and now I'm working on proper randomized dungeon generation. To add longevity and re-playability to the game. I started out whith Pre-defined grid info for the dungeons, then experimented with random maze generation. And now I wanted to move on to proper randomized dungeons, but am having trouble thinking up how to do the logic. I am not asking for any code, just for ideas you guys come up with for me to program myself.
Anyone that wants to participate and give ideas/suggestions (no matter what programming experience you have) is welcome, this discussion isnt about code, its more about designing/planning the logic behind it!


I am trying to come up with a new random generator that will create something more dungeon-like and something that will actually be fun to play:

Elements/Concepts:
-all of this is just a simple 2d array, off of this grid I build the floor/walls/doors/etc depending of the value in the array. Don't go crazy thinking of complex 3d stuff, I'm keeping this hobby project simple but fun.
-Of course rooms, what is a dungeon withought random rooms to explore!
-Corridors to connect the rooms and limit the order the player can access the rooms
-Keys! Have you ever played old shooters like doom? Well I want to include something similar, a random set of rooms and corridors, in one of the rooms a red key to unlock the red door and gain access to the random set of rooms in that area, where there is the blue key, yellow, etc, etc...
-Later on I might include puzzles and stuff, but for now lets keep the ideas simple.


Why start a thread on this?:

I am having trouble with comming up with the logic to create this, Creating random rooms is easy. Creating them one by one with simple linear corridors is also easy but I don't want it to be so linear-progression! Creating a maze was wierd, but i got the grasp of it also... Combining both ideas? Now that is the hard part! Also... what if the red key is placed somewhere behind the red door? Or even worse behind the next areas (blue/yellow/etc)! Rendering the whole random dungeon in-completeable! Any ideas would be great.


Exaclty how simple is "simple":

int map[128][128];
0= represents space not used yet by randomizer / available
1= walkable floor
2-3 not used yet / reserved for future floor types, mabe water, destructable wall for secret rooms, I don't know yet...
4= simple door / no key required
5-9= locked door types / colors
10-15= key types / colors
16= not passable / wall

Dosn't get more simple than that, does it? Now how to generate the values in the map array... The tough part is coming up with the logic that will randomly create an array like this:

(PS: forgot one thing, brownish ones are walls)

I am all ears for ideas and feedback!
Meanwhile feel free to watch one of my Random Maze Generators in action creating several different mazes:
http://www.youtube.com/watch?v=4nFvObjOqSQ


Ideas I have already played around with:

-I have already created a random maze generator. Uses a concept I found somewhere (sorry I don't remeber the link) for something the author called "the perfect maze". Basically I create a maze, where if you choose any starting and ending point there is only one possible path to solve it. While it was fun creating it... Sadly I think it is of no use to me since it dosn't take into account rooms and such...

-Line of sight / field of view: only creates floor and walls that are in field of view distance and line of sight. It is periodically updated and works on the grid view. (though the player has free movement and is not limited to the grid, the line of sight works like in rogue-like style) I transform the free postition of the player to the cell he is standing on, and then calculate what walls/floors are visible on the grid, and then translate that back to a 3D coordinates to create the 3d elements.

-The camera style is a third person view, with right-click rotation and mouse wheel zoom, this is why I made the line-of-sight algorithm, so the player cannot cheat and see inside rooms or across walls taking advantage of his semi-isometric perspective. I also incorporated a dual stick shooter aproach to movement and attack but that is off-topic.

-I have made a random room generator that, while it was fun to play around with, is not usefull to me. Created rectangular rooms of varying width and height and randomly places them on the grid taking into account not to overlap exsisting rooms. This generator has no halways or anything to limit room-connections or similar limits...


So now that I have had alot of fun with random things and feel quite comfortable with these concepts, I want to take this little hobby-project a step further and make something that will actually be fun for me and my friends to play, something that will look and feel a little more like a real game.


What I don't want:

-Code! This is not a "I don't know how to program and want someone to build me a game" type thread. What I want are ideas, concepts, mabe after discussing some logic pseudo-code helps transmit a complex idea across. But remeber this is my hobby, I do this for fun in my leasure time, I am not asking for this to be done for me.
-Examples on how to transform the array info into 3d world objects/coordinates. I have already done this alot of times and have several different methods already programmed I can use from previous games. I would prefer this discussion to be more about a random generator of simple info for the array, with the objective of producing data for a random dungeon generator, and then mabe any game design ideas to include / expand upon.



"The more you know, the more you realize how little you know..."

I <3 HORUS
http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=401929&page=1