Dungeon Design

Posted by beam on Jan. 17, 2008, 4:44 p.m.

It's about time my blogs got back on topic. I just decided, right now, that I want to make a simplistic random dungeon game, in both design and gameplay. I want to be able to make the whole thing in a single sitting, while still making it fun. Of course, I could use my maze/dungeon example, but that would be cheating. I want to make it all from scratch.

I haven't worked on ICOM in a while, but it's actually in a pretty playable state. If you haven't already, check out my project page and give it a play. If you're a fan of roguelikes and dungeon hacks, you might like it. Or it might even introduce you to those wonderful types of games, and start a life-long love. You'll never know.

So anyway, I'm trying to think of the most simple way possible to generate a satisfactory random dungeon. My normal approach is to make a maze, place rooms, and remove all dead-end passages. That takes a considerable amount of code, though. I was thinking there must be some recursive function – some programming Holy Grail – that will generate random dungeons to my liking, and it is up to me to figure it out.

I'll let you know when I do.

Comments

stampede 16 years, 10 months ago

Comments deleted? Why's that?

Idea: Action battles, like in Zelda games. It's more awesome than turn-based battles, at least in my opinion.

JW 16 years, 10 months ago

How I made random dungeons:

Create a room.

Then delete like the inner outer rectangle. One block away from the exit. Then in the center, or at other random position create snakelike objects that can turn and stuff and move for a certain amount of steps and delete walls they touch. You can make them like drop items and exits at their ends.

Make sure the outer walls aren't deleted btw.

It gives cool dungeons. :)

JW 16 years, 10 months ago

Oh, first fill the room with walls. ;)

beam 16 years, 10 months ago

That's actually a decent idea, JW. Even less work than the one I came up with, which is:

1. Fill a room with walls.

2. Hollow out a rectangular room.

3. Connect a passage from the room you just made to the one you made before (if you did make one before)

4. IF ROOMS <= MAX_ROOMS GOTO 2

beam 16 years, 10 months ago

@stampede: I deleted them because they had nothing to do with my post. And yeah I was going to do an action battle system.

@JW: The only thing I see wrong with doing it your way is that it leaves a lot of dead ends that go nowhere.

JW 16 years, 10 months ago

Are you gonna use my engine btw?

Welcome to the cool people's club btw. Your warn suits you.

beam 16 years, 10 months ago

No, I'm not :( thanks though. I'm going to use a slightly modified version of the one I posted.

stampede 16 years, 10 months ago

YESS! Glorious random-generated action!