Created for /r/proceduralgeneration's monthly challenge.

Press Enter to generate a new dungeon, more shortcuts ⌨️here. All the options are available via the context menu (right-click on the generator).

This generator is a part of 🃏Procgen Arcana.

Made with Haxe + OpenFL.

You can use images created by the generator as you like: copy, modify, include in your commercial rpg adventures etc. Attribution is appreciated, but not required. Please consider supporting this project on Patreon☕!

StatusPrototype
CategoryTool
PlatformsHTML5
Rating
Rated 4.9 out of 5 stars
(1,121 total ratings)
Authorwatabou
GenreRole Playing
Made withHaxe, OpenFL
TagsDungeon Crawler, Generator, Procedural Generation
Average sessionA few seconds
LanguagesEnglish
InputsKeyboard, Mouse, Touchscreen
AccessibilityColor-blind friendly, High-contrast
LinksPatreon, Twitter/X

Development log

Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 40 of 275 · Next page · Last page
(+2)

Thanks for another tool. I love all the ones you created.
(+1)

Cheers!

Could we have larger dungeon maps with more rooms?  Maybe a Huge, Enormous, Labyrinth settings ?

Is there any chance of having a multi-level version? So stairs down on one level align with stairs up on the next.

What does alignment mean when two levels have different shapes? For example, how can you know that these two levels are not aligned:

?

(+1)

I'm working on a similar project to this, in hope of better understanding procedural generation. Would it be at all possible for you to share roughly how this algorithm works, or just some general techniques? My apologies if not. 

There are many algorithms for dungeon generation. This one is my own invention and as such it's not exactly elegant. Its advantage is that it can produce maps that look kind of human-made, because they are they are "partly symmetrical". Here is how it works:

  • First we create a "root" room. Every room incl. this one has an origin/entrance.
  • Until some end condition is reached (e.g. we've spawned enough rooms), we pick one of the rooms and add symmetrical children to it: two on both sides from the entrance, one on the opposite end from the entrance or both (three children).
  • This way we get a symmetrical tree of connected rooms. Perfect symmetry doesn't look good, so occasionally we spawn children rooms unsymmetrically - of different sizes or just one to the side from entrance etc.
  • This gives us a "partly symmetrical" map, but it's still a tree and a decent map needs loops, so we add some loops by connecting adjacent room, adding tunnels etc.

That's it. There are some nuances to make it work and more nuances to make it work adequately, but that's the idea.

(+1)

I am working on a rule lite RPG system for itch.io could I add a QR code to your GitHub for Procgen Arcana? (with credit of course) I would like to 1. use the fantasy city/village generator for the worldbuilding in the book and 2. suggest the dungeon/cave generator for GM's using the system

Sure!

(+1)

Thank you, you are making some great tools for GMs and game devs

(1 edit) (+1)

Have you considered some form of api for this and other projects?

I don't it's possible since all my generators are purely client-side applications.

I just found your work and Its awesome, I think I can learn a lot from your code if its available anywhere, I seek for your Github public repos and didnt found this or other of your proyects, are they available anywhere to study?

(+1)(-1)

i like potato

This project is not open source at this moment, sorry.

Sorry to read that, anyway if  in any time or moment do you pusblish it or want to send me a way to download the code for studing I will appreciate it very much, but if you dont its ok, it is your prerrogative off course

You can try to examine the published js code as @BorisTheBrave did with the cave generator: https://www.boristhebrave.com/2023/11/19/how-does-cave-glade-generator-work/

(1 edit) (+1)

Thank you so much for your reply and for sharing the link I'll definitely go through it and study the concepts. I truly appreciate the effort you've put into your work, and I can only imagine how valuable it is to the community.

I completely understand if it's not the right time to release the code as open source, but if there's any chance I could have access to a part of it for personal study, it would mean a lot to me. I’m eager to learn from it, and I believe it could greatly enhance my understanding. Of course, I would respect any limitations you’d like to set.

Either way, thank you again for the insights and your time. I'm really grateful for your work!

Hello, I recently found your tool and I'm definitely gonna use it for my games. I also feel pretty inspired to create some tool of my own.

I would have feature request for you if not already possible. I wish to generate dungeons with traps.

(1 edit) (+1)

Thank you for that wonderful tool. would it be possible to define the number of rooms?

In the current version it is not possible to request a specific number of rooms, but you request a small (3-6 rooms), medium (6-12 rooms) or large dungeon (12-25 rooms).

(1 edit) (+1)

The randomly generated dungeons look really impressive and wonderful! Im wondering if there's any way for me to find out / learn what algorithms and code stands behind generating such nice looking dungeons?

(+1)

Not an algorithm, but the idea: the main difference with this generator is that its output contains elements of "local symmetry". This is supposed to make a dungeon look human-made, like there was a purpose or a plan for it.

(+1)

I was wondering if it would be possible to have an option for a different kind of legend, one that provides a prosaic description of each room (ie. only the features visible on the map, without any imagined details added).

For example:

1. This 20' x 30' rectangular room has a doorless archway on the north wall and a set of double doors on the east wall. A crate and some rubble is lying on the floor.

2. [Description of Room #2]

...

This would help LLMs or other AI models better understand the dungeon layout so they can generate themes and embellished room descriptions that more closely match the map.

Example Prompt:

"The attached image shows the layout of a dungeon. Please provide a theme or history for this dungeon, then write a detailed description of it including specifics for each of the numbered rooms."

Note that this would work best with unrotated maps, unless a "North" indicator is provided (and AI gets smarter).

It's an interesting idea, but it seems a bit too niche to implement it as a standard option. However, someone could create a standalone tool for translating an exported JSON into this kind of description.

(+1)

Works quite well on mobile until I try to open the tags menu. Not sure if it's something you can fix but would be super Handy 😊

You mean the Tags window is too large for a mobile screen?

(+1)

Yes the top and bottom of the menu screen are cut off which also means it isn't possible to close the window. Not sure if this is something fixable but fingers crossed

(2 edits) (+1)

Now thats a perfect tool.

Is it possible to add fixed cell size for SVG exports? 

Could come very handy for VTT imports and as someone mentioned for mix and match several dungeons in one big dungeon in SVG editor.

Maybe. Using SVG with VTT doesn't seem very common to me, though.

(+1)

Sure, it can be just mine specific use case and i definitely can go with PNG.

And i'd like to appreciate all your works on procgen - those are just simple perfect!

(+1)

Can you possibly add a button or some GUI to allow us to manually rotate the map? 

I use this alot for grabbing some rooms from one generation and other rooms from another generation and sometimes the shadows don't match up, if i was able to rotate it the shadows would be uniform.

Great tool either way!

I'll think about it, although your use case is probably too uncommon. For now you can try disabling the shadows (Layers > Shadow or via the Style dialog).

Complete noob to this, but can someone explain how to save generated dungeons with all the notes to my files?  When I export, all I get is the dungeon, no area descriptions.

You need to choose Save as PNG (not Export as > PNG...) to get the image with all the notes.

(+1)

This is gonna sound ultra newbie - but... how do I print this so that each square is 1 inch long? Can someone help me out?

(1 edit)

I haven't tried it myself, but in theory it should work like this: choose Export as > PNG... in the context menu, enter some reasonably high value in the dialog (or leave the default 70) and then print the resulting png file with DPI equal to that value you entered.

(+1)

Amazing work !
Is there a way to integrate this app direclty in another webapp ? Or a way to set tags without configure with app menu ? 
Thanks :) 

You can request a dungeon with a set of specific tags via the url parameter "tags"

https://watabou.github.io/one-page-dungeon/?seed=177003564&tags=backdoor,chaotic....

It is also possible to make the browser download a map (as png/svg/json) right after it's generated:

https://watabou.github.io/one-page-dungeon/?seed=1143801683&export=png

Since it's a purely client-side application, there is no real api to work with it.

(+1)

Nice, it's a very good starting point :) 
I'll have a look how can I integrate this.
Thanks a lot ! :) 

(+1)

Watabou, this is amazing. The ONLY thing I need it to do is be able to lock the proportions of the output image and grid scale.

Doesn't "Export as > PNG..." do that?

(+1)

Hello watabou. Is it possible to add tags, for example to force every room to be connected, even to force multiple entrances to every room, to generate a couple of levels connected to each other by one or many stairs ? Regards.

Unlike Cave Generator (with its connected and tree tags), here I have much less control over the way rooms are connected. I'll think about it, but right now I don't how this could be implemented in this generator.

(+1)

hey, I could be wrong but I remember you had a world generator somewhere too and I can’t find it at all! is it available anywhere? love your generators :)

(+1)

You are probably talking about Azgaar's Fantasy Map Generator (made by Azgaar), there is some limited integration between this world generator and my city generator. The closest thing I've ever done is Perilous Shores.

(+1)

This is amazing!

(+2)

This tool is amazing.  Thank you so much for this!
My one wish is to have the option to label each room with a number.

(+1)

Try selecting Notes > Numbers in the context menu, probably that's what you need?

(+2)

*Facepalm*
Thanks!  I don't know how I missed that.

(+2)

Is there any way to pass a modified json file back into this generator? I'm looking for a way to make small adjustments, or even have this tool re-skin something I've generated separately. New to this whole platform so I'm not sure if there's source code available.

No way to do it, sorry, but you can try loading a modified json in one of the editor which support this format.

(+1)

This tool is great and the generation is really nice. But the design of the graphical interface needs a lot of work. Using only a context menu in an editor program is frustrating. But over all, it is really nice and a good time saver. Thanx a lot. 

(+3)

Well, it's not exactly an editor, it's mostly a generator. UI is a boring part of the project and if I made it for myself, there would be only Enter for building a new dungeon :)

(+3)

I've been using your maps for a long time now, both as a dungeon master and as a developer for testing our team's tabletop map projection software Infinite Realms.

I recently implemented support for the Universal VTT file format in our app and was wondering if you would be interested in this as well for this generator. UVTT supports light, grid and wall placement information and more. The information is in JSON format and the map image is a base64 encoded string in the same file.

The format is supported by a growing number of map generators and VTTs, so it may be worth a look... ;)

Arkenforge has posted a blog post on the specs, along with a demo file here: https://arkenforge.com/universal-vtt-files/

(+1)

Yeah, I'm considering adding this, although I haven't looked closely at the specification yet.

(+2)

I love this generator (and all your others). I was playing with it, and decided to play around with the water level settings a bit. I wondered what it would be like with various water depths indicated (so like, this area is water level 1, that area is deeper, like 5, etc) - I decided to layer levels 1 to 5, so that the smallest area (where depth 1 covers) is 5, the next is 4, etc. Here are my results:

 it would be cool if you could include something like this, but even without, this is a really great tool. Thanks for all the cool stuff you make, and especially for sharing it freely!

(+1)

The colours look very nice!

(+1)

do you have a preffered commerical credit copy? Link to Patreon? link to your itch.io account? Either way, thanks for all you do. 

Yeah, a link to my patreon, itch or twitter (whatever looks better for you) is fine. Cheers!

(+1)

in the props layer, what does the star in the circle means?

Statue: https://dysonlogos.blog/2013/12/23/the-key-to-all-this-madness/

(+1)

do you plan to make a "starship" branch/fork?

I do not, I'm just not familiar enough with the genre. But I guess some of the maps could work as spaceship plans as they are?

(+1)

some of them, yes, there is some tags that doesn't quite fit well and others tag that are "missing". also the style is a bit different, I know is only aesthetic but still..
2 of the main difference would that the general shape should be far more compacted and the final map must resemble some kind of "shape" (squared, elongated, triangular...).

(1 edit) (+2)

Is there any chance for a standalone download? The Itch.Io UI overlaps the top right quadrant of the entire generator unless I set my browser zoom to 75%.


Or a paid tool to let us manually make dungeons using the elements in the generator?

Occasionally I build native versions of my most popular generators (including 1PDG) for my patrons. The last time I did this was some time ago, so the next time is gonna be soonish. But if that UI thing is the only thing that bothers you, you can try the Arcana version of this generator.

I have no plans for making an editor (vs. generator) at this moment.

(+1)

Awesome project! Thanks for sharing it with us.

(1 edit) (+1)

Hey, I really want to use these models in MagicaVoxel, but when I drag the file in, nothing happens. I see on twitter that other people have gotten it to work. I can import it as an image fine, but that's just a flat image. I was able to import other .vox files made with different software just fine though. I think perhaps MagicaVoxel has changed the details of their file requirements since you made that export function.

It also could not import your .md or .svg files, on further investigation.

(1 edit)

I am using 0.99.6.2 for macOS and it imports dungeons normally for me. I guess it's a pretty old version, but unfortunately I can't test a newer one right now. I'll try to do it a bit later. 

I didn't get what is the issue with md and svg files. Where are you importing them?

(+1)

OK, yup, switched to 0.99.6.4 for Windows, and it works just fine. Not sure what they changed in the more recent release that breaks it.

I am on an M1 Max - Ventura. I can't get the older or newer version to accept the Vox  or SVG file.  It loads Magica OK but just has a blank screen.  Please can you share if there is anything extra you did to get it running on the mac. Thanks 

I am on M1 Pro, Ventura and I'm pretty sure I didn't do anything special to make Magica load these vox files (although there was something about moving the folder??? to make Magica start normally). Apparently, there is no newer version to test. 

I don't get why you guys keep mentioning svg...

(+2)

Thank you very much for your work!

My English is not very good, so I borrowed translation software for this evaluation.

May I ask if you are considering adding support for other languages? I can help you complete the Chinese section (in fact, I have made some modifications, but I don't know how to preserve both languages at the same time).

In addition, I hope to add API functionality to directly generate image versions of maps based on website addresses, so that robots can directly obtain maps and send them to the chat software we use.

非常感谢您的作品!

我的英语不太好,因此这段评价借用了翻译软件。

请问您是否考虑对其他语言添加支持?我可以帮助您完成中文部分(实事上我已经修改了一部分,但是我不知道要如何同时保留两种语言)。

另外我希望能够增加直接根据网址生成图片版地图的API功能,以便机器人直接获取地图并发送到我们使用的聊天软件中。

(+1)

Hi! Thanks for your message and offer of help, but I'm not planning to add other languages at the moment. I mean, yeah, it would be nice to have support for translations, that would make the generator more accessible I guess. But to do it right, it would require a lot of work and it's not exactly the kind of work I like. Also some parts of the generator (specifically, text generation) are much harder to localize.

(+1)

could you give us the downloadable file?

That's one of the very few rewards exclusive to my patrons. Didn't build native versions for a while though, since nobody reminded me...

(+1)

oh ok

(+1)

This is great! Hope for adding language support?

(+3)(-2)

Came here looking for chess. Not sure how exactly I wound up here. Seems like a nice community here in these comments. Maybe this project could be used to make alternative chess maps! I think we have some potential there perhaps? I will be leaving this page soon, but before I do that I am compelled to recommend the greatest game of our time: Chess. Give it another go, there are many lovely versions right here on this website! But no matter, I am just a 47 year old man, trying to make the world a better place through chess. Thank you all and have a blessed day my friends. 

Kind regards, 

CL

(+7)

OP you HAVE to tell me more what do you MEAN custom chess maps? Is that a thing? And if so please tell me more i am so intrigued

(+1)

I now feel compelled to create custom chess maps and special rules to allow one to use dungeon maps for chess..

this sounds amazing and there goes way too much time down the rabbit hole..

(+1)

Ok so I don't understand something here. I have the Tags window up and have selected tags I want to use. Then I select generate and it adds additional Tags I don't want. Why is it doing this? Am I doing something wrong?

(+1)

In 1PDG tags work a bit differently comparing to my other generators (e.g. Perilous Shores). The idea here is that you need to specify only aspects of the dungeon you care about. For example, if you need a totally random dungeon, select no tags. You won't get a featureless dungeon, instead your empty choice will be augmented with a few random tags. If you need a large dungeon, but you don't care water, select the "large" tag and sometimes the "dry" or the "wet" tags will be added. But if there has to be no water, select "dry". And so on.

(+4)

Love this, made an account just to say that lol

Is there a way to(or for you to implement) a way of "marking" doors/stairs so they remain in the same spot for the next map generation? I'm going to use these for a video game and it would be easier if I can load up multiple maps and have the entrances already aligned. In the end its not really a big deal just a time saver, thanks

(1 edit) (+3)

No way to do this, other than brute-forcing it (i.e. generating maps untils their doors coincide with marked locations), sorry. I don't know how useful this is for you, but the entrance (the staircase) always has the same coordinates (0, 0).

(+1)

Thanks for the reply, like I said not a major issue just a little time saver. Great work on this generator, most others I used just don't have the same quality

(+1)

Would it be at all possible to implement something to manually adjust room sizes?

Sometimes you get a dungeon that's just near perfect but it needs a few little tweaks.

(+2)

you can upload it into dungeon scrawl and edit everything

That's what I was going to suggest. And Dungeon Scrawl is not the only editor capable of importing these maps.

(+1)

How do you upload to dungeon scrawl? Dungeon Scrawl does not seem to support the export options.

(+2)

On the left side toolbar click the third button (Plugins) to display the Plugins pane. One of the plugins is "Import One Page Dungeon | Watabou".

(+1)

Woah - that just made this generator even more incredible - thank you!

(+2)

These look nice, but the contents are pretty random. Gnome with key…man hiring you (while sitting alone in a dungeon)…blood stain (why?).

I had a think about alternative methods, and came up with a new procedure:

  • make dungeon (caves or mine)
  • allow [elves/ dwarves/ gnomes] to make it a liveable space underground, with libraries, rooms, art, traps, et c.
  • have invading [lich/ goblins/ sickness] kill everyone (or turn them undead), and errect some new traps.

There’s a basic python example: https://github.com/Andonome/dungen

Would something like that be possible here?

(+5)

Hey, sorry it took me so long to reply. It's actually a big topic, so I didn't answer right away to think about it first, and only now I remembered that I didn't answer at all. Here is a list of my thoughts:

  • Yes, these dungeon notes are too random, can’t argue with that.
  • The generator is inspired by “one page dungeons” and they tend to be like that (because of the format). The idea is that one is supposed to connect the dots somehow to see a “story” behind small pieces of text.
  • One of the reasons why it doesn’t really work is the generator was made for a jam and I didn’t have much time to implement this part properly*. After the jam ended, it turned out that people were more interested in the hatching and in the way rooms connect.
  • *I did try to make this all more coherent by introducing “themes”. For example, a dominant race is chosen for each dungeon, so if it’s a dwarven dungeon, dwarf npcs are more likely to spawn.
  • Another (probably more important) reason is that compelling (even if random) vignettes are needed and text generation is a special skill I am lacking.
  • I don’t know python, so I can’t comment on your example, but I encourage you to make it into a full-fledged application :)
  • Regarding the approach you suggested, I personally wouldn’t adopt it here. It’s a question of “faking vs. simulation” and I am a proponent of “faking”.
  • You see, I believe that if a screenshot (e.g. a map) of a complex system (e.g. a dungeon) is needed, in most cases  just “painting” such a screenshot is a better way to make it than creating and running a model of the system.
  • Models are harder to implement, fine-tune and debug. Models are prone to getting stuck in a limited number of states including bad ones. 
  • Of course, you can’t do without simulation if not a still image is needed, but a running thing. Or if a still image is expected to be very closely inspected (e.g. like in Obra Dinn).

As I said, it's a big topic :)

(+1)(-1)

I don’t know how to generate images (or code really - that’s my first python project up there), but if you ever change your mind I’m happy to jump on a project to generate text and such. I’ve not seen your code, but I’m sure what I’ve done is simpler.

Viewing most recent comments 1 to 40 of 275 · Next page · Last page