Dungeon Generator- Rougelike games

Community Forums/Showcase/Dungeon Generator- Rougelike games

Ryan Burnside(Posted 2008) [#1]
I made a typo should read "Roguelike games" in the title. Could a Moderator please fix this?

This project has been a labor of love and should prove useful when complete.

This program generates random dungeons that you can seed with treasure for your hero.

I'm now fairly happy with a bug free first release. Please try the source code provided. This is a fairly simple and open-ended engine so you can take this where you want to go in your project.

Here is a rough demo, please hit spacebar for new dungeon.

http://storeandserve.com/download/842177/Burnside_Dungeons.rar.html

alternate mirror

http://www.mediafire.com/?4bu8xsjnucn

An image from the source. (demo is now a bit outdated)



Here is the first release of the source. I think it is pretty well documented! I would like credit if you use this. This is to be released for free as a service.




Retimer(Posted 2008) [#2]
Link isn't working for me =(


Matty(Posted 2008) [#3]
Looks very useful to myself actually...


deps(Posted 2008) [#4]
Will it place items and monsters for you too?
Would be nice. People could feed the generator with strings and the probability of it showing up on the map.
map = new TMap
map.set_rooms( 10 )
map.add_entity( "Ogre", 10 ) ' 10% chance that one will be added
map.add_entity( "Pile o gold", 75 )
map.add_entity( "The one ring (fake)", 50, 10 ) ' 50% chance, no more than 10 rings allowed
map.add_entity( "The one ring (fo real!)", 1, 1 ) ' 1% chance of it being added, and an upper limit of 1

Or something. I'm just brainstorming a bit while coffee #2 sinks down.


Ryan Burnside(Posted 2008) [#5]
Actually there is a function to seed a room with a value. With this tile value you provide the number that would fit your system. I used a single random room seeding of the value 3 to denote my stairs here. (The orange square)

Lets say that value 3 is a treasure chest. You simply call the function and give it the parameter 3.

One might do something like:


seed_room(d:dungeon,n:int,r:room)

If the room parameter is -1, ALL rooms are possible to contain the value.


Let me tell you a bit more about the structure of the dungeon generator.

The basic type is the Dungeon. These are objects that contain an array and also rooms. The array inside holds values for the map. The empty rooms and passages have the value 0. The walls have a value of 1. The dungeons are made of rooms. Rooms are there to act like containers for your random items. They can also be accessed directly within the dungeon because they are held in a list. There is no global dungeon list to store dungeons, I left the storage and maintenance up to the programmer.

I'm not really sure that I want to code an entire game engine. This may just provide you with the dungeon and some placeable values. It would be up to the programmer to code battle systems and GUI''s.


Why0Why(Posted 2008) [#6]
Looks nice. I am looking forward to seeing the code.


deps(Posted 2008) [#7]
Sounds nice, and keeping it simple is probably a good idea. I'm too looking forward to hack around with the code when it's released. :)


Ryan Burnside(Posted 2008) [#8]
If people are having trouble downloading from the crappy host please try this mirror.

http://www.mediafire.com/?4bu8xsjnucn

*First Source released. Expect more in the future if there is interest!


Ryan Burnside(Posted 2008) [#9]
Hmm I'm a bit surprised to see that interest has fizzled out. Was the engine a bit of a letdown for everyone? I wanted to have a dungeon generator that was powerful yet very flexable.


Retimer(Posted 2008) [#10]
Actually, i've been extremely interested in this. I just haven't had the time to open the hood on this new release.

I've been watching since the beginning of your last topic:
http://blitzmax.com/Community/posts.php?topic=77574

Which I really appreciate you sharing the code. I do plan on using it to generate full maps (with tiles/scene variation) for my engine.


*(Posted 2008) [#11]
Its a very interesting project for me too, I too intend to use it to make a dungeon crawl like Diablo but full 3d at a later date. Thanks for sharing the code :)


slenkar(Posted 2008) [#12]
thanks for the code!


Matty(Posted 2008) [#13]
Haven't been near the Internet since early last week, so haven't had a chance to download the source code to try it. Still very interested, will have a look now.


deps(Posted 2008) [#14]
Very much interested in it, but have been really busy with real life stuff this weekend. And my little project. Will have a look at the code and play around with it when time permits.

Thanks for sharing! :)


Why0Why(Posted 2008) [#15]
I have spent more time with this and it is very nice. It is very clean and the dungeons have a nice feel. Thanks again for posting.


caff_(Posted 2008) [#16]
Neat - I like roguelike games.

Can you submit this to the code archives? Quite a useful intro to map generation.


Ryan Burnside(Posted 2008) [#17]
Sure I'll put it into the code archives. I don't know how much more I'll work on this. I have a game and some other projects in the works.


Thanks for all of the support.


Retimer(Posted 2008) [#18]
Any chance for an option to set min/max cooridor widths? That would really top off this tool for me =p

Love the code, it's a lot easier to work with.


Axel Wheeler(Posted 2008) [#19]
Hey, you're the same guy doing the "Infinite Maps" thing. Our minds are definitely on the same wavelength. Except I work in Blitz3d, so your code frightens and confuses me :)

I used to do dungeon generators in C64 and Amiga when I played Dungeons and Dragons. I used to love designing the political and social climate in the dungeon, but not the actual rooms. I wanted to be able to take a dungeon and say, "Ok, this whole side is controlled by gnolls, with the lead gnoll in this chamber attended by the elite guard. All the treasure in that area is in that room. But at the entrances to their territory there are periodic incursions by the Kobolds in room 4a, who are now mostly injured and will try to enlist the party to do a diversionary..." You get the idea. That way there is a back story that the players can discover and have a lot more fun than just killing monster A in room B with treasure C.

The point is, when you see the floor plan you start to imagine the regional territories that might develop within it.

You might want to consider an app that does this for those who still play role-plaing games.

Anyway, keep up the great work!