Platform Dungeon Generation?

Been throwing some gameplay ideas around in my head. I was thinking it’d be cool to make a platform game dungeon generator, nothing too crazy. Just ledges, platforms, chests, and doors to the next floor. How would one program this and make sure it’s not broken?

I want to hear everyone’s input! :wink:

Well, random platforming can be fun, but at times it’s… Meh. However, the way I’d do it if you want to ensure that everywhere is reachable using just basic jumping would be to create a set of ‘room’ parts, that have some sort of rules for the edges that connecting parts would have to meet to connect. Then starting some one position, do a breadth or depth first expansion, randomly placing these room parts.

Of course, if you have ‘closed’ edges you’ll eventually run into places where the map is not going to be strongly connected (Try using Tarjan’s Strongly connected graph algorithm to check). If it’s not strongly connected, check through the closed edges until you find a workable set of replacements that will connect the two regions. Then repeat.

I’m not interested in dungeon but I remember that Kev’s has article about this on his site.

Random dungeons can work, as seen by Diablo levels.

But its not just the architectural layout, but also the right “rythm” of enemies and rewards.
So that the content scales with the players level.

Well, there’s a difference between what you guys are talking about and what was just asked about. A platformer has much different requirements for generating rooms than games like Diablo or what was described by Kevglass (Which seemed to be more about room definition for a dungeon, than anything).

However, enemy placement is very important. If you haven’t, watch what’s linked to here http://www.java-gaming.org/topics/sequelitis/25713/view.html . The first, then the second, videos. Basically, randomly placed enemies are less interesting or fun than intelligently placed enemies. They’re a lot more frustrating and difficult to deal with. Especially when you get enemies spawning in a way that their typical weakness is completely removed (Like, say an enemy that you’re supposed to be able to attack from beneath spawning where you can’t do that).

As mentioned Kev’s article on this covers what you need to know.

http://old.cokeandcode.com/node/1445

Thanks guys! Very helpful! :slight_smile:

[quote]Given just how long 2d platformer games have been around it is perhaps surprising that no random 2D platformer level generator has ever been truly viable. However, there is a degree of balance and precision to successful platformer level design that cannot duplicated by any method other than careful design, calibration and testing.
[/quote]
Read more here

Short: There is a reason that there are no platform level generators. A machine cannot generate a level that has soul.

Read more here

Short: There is a reason that there no platform level generators. A machine cannot generate a level that has soul.
[/quote]
No dungeon generator I’ve ever played with has been able to achieve this. Not even the normal ones. So, I’m not worried about it.

Maybe stuff from the Mario AI Championship - Level generation track is interesting for you. I think there are some papers about rythm of platformer games and flow stuff. These might help to make generators for levels that appear to have a soul :slight_smile:

I can’t really decide on how I’m going to do it yet, actually.

Kevin used rooms in his generator and placed them accordingly, but I don’t know if I can get away with this in my engine. It may break the rhythm.

I was thinking it’d be possible to make 6x6 rooms, made up of 16x16 tiles, then at each rooms “door” that would be two tiles high, in either the low, middle, or high point of the room, would have a connector to the next room. Although, this may really feel “slow” when you’re playing through it. The connectors would be fairly hard to make too. Although, I could make a stair system with platforms at each level of the room. Which would still feel a bit slow, and break the fast paced-ness that I’d like to have.

I’m kind of going for the speed the Megaman Zero games have. What do you guys think?

I highly agree with that. Yet the people who made Terraria still come darned close!

This was once written about machines and their generation of electronic music.

If machine can not generate levels with soul it is simply because the programmer has not given it the tools to do so.