Random Dungeon Project


For the past few months I've been developing something
that the rest of the staff and I had initially placed
on the Undermountain wish list.

What we wanted was a Weekly (or perhaps Daily) Dungeon crawl
that was procedurally generated. That is, the map, mobs, treasures
and other assorted features of the dungeon are created by the
codebase itself.

This would mean new areas could be made not in months, but in minutes.

It would mean players that enter the map would have to be well-prepared
since they couldn't know in advance what to expect.

My goals for the project are:

1. Randomly generated areas with mobs, etc. that can be tailored to
the number of participants and their levels.

Got three players of level 60? Ok, we can make an area in a few minutes
with rewards and challenges suitable to that group. Or even a soloist.

2. Easily add new mobs, new traps and challenges, and multiple missions.

I envision a system in which I set a personal goal of adding X number of
new features to the system, and then they could turn up the next time a map
is generated. I want a system with GOALS baked into the map. Goals like:

Extermination -- go in, kill as many mobs as fast as you can, perhaps sparing
other mobs, and whomever clears the area fastest, or gets the most kills, wins.

Kill the Boss -- standard goal of going in, finding the boss mob and killing it.

I could go on an on, but hopefully you get the idea.

For those of you who went into the Umber Warrens, that's a result of the work so far.
It was not entirely generated by my code. The project generated the map and the room
descriptions, and I just went about and set up the mobs and tweaked a few rooms.
My nudging the zone to my tastes took me a week. The zone itself was generated in
under 30 minutes.

Where is the code right now?

Right now I can generate maps of various styles depending on what boundaries
I give to the code. I can theme these maps (and change the theme) and the resulting
room descriptions change accordingly. So the map could be a dungeon, or a forest
or a series of gnawed out tunnels. Whatever we would need it to be.

What needs to be added?

While I can create a map and the code to place mobs would be easy, a FUN area
requires more than just rooms and mobs. That means puzzles, locked doors, traps.
That means I'm getting into graph theory, which I'm still wrapping my brain around.

I'm very excited and hopeful for this project. While it may not be perfect and
a procedurally generated area will never compare to a skillfully designed hand-crafted
area, it will still be a lot of fun.

Some other fringe benefits of this project: I can hand-craft an area
a lot faster using this code.

Questions? Comments? Faint Praise? Send me a tell, or a note.


-Torog, the Procedure that Generates.