One Page Dungeon
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.
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☕!
Status | Prototype |
Category | Tool |
Platforms | HTML5 |
Rating | Rated 4.9 out of 5 stars (1,111 total ratings) |
Author | watabou |
Genre | Role Playing |
Made with | Haxe, OpenFL |
Tags | Dungeon Crawler, Generator, Procedural Generation |
Average session | A few seconds |
Languages | English |
Inputs | Keyboard, Mouse, Touchscreen |
Accessibility | Color-blind friendly, High-contrast |
Links | Patreon, Twitter |
Development log
- Keyboard shortcutsFeb 18, 2023
- 1.2.4: assorted new features and improvementsFeb 17, 2023
- 1.2.3: custom notes and rear entrancesJun 30, 2022
- 1.2.2: seeds, SVG export and other improvementsSep 09, 2021
- 1.2.1: various QOL featuresJun 02, 2021
Comments
Log in with itch.io to leave a comment.
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?
i like potato
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.
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).
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?
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.
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.
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?
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
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.
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!
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.
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?
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.
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" :
It is also possible to make the browser download a map (as png/svg/json) right after it's generated:
Since it's a purely client-side application, there is no real api to work with it.
Nice, it's a very good starting point :)
I'll have a look how can I integrate this.
Thanks a lot ! :)
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?
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.
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 :)
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.
This is amazing!
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.
Try selecting Notes > Numbers in the context menu, probably that's what you need?
*Facepalm*
Thanks! I don't know how I missed that.
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.
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.
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 :)
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/
Yeah, I'm considering adding this, although I haven't looked closely at the specification yet.
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:![](https://img.itch.zone/aW1nLzEzMzg3OTYwLnBuZw==/original/iZB9zX.png)
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!
The colours look very nice!
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!
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/
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?
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...).
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.
Awesome project! Thanks for sharing it with us.
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.
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?
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...
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功能,以便机器人直接获取地图并发送到我们使用的聊天软件中。
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.
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...
oh ok
This is great! Hope for adding language support?
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
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
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..
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?
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.
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
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).
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
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.
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.
How do you upload to dungeon scrawl? Dungeon Scrawl does not seem to support the export options.
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".
Woah - that just made this generator even more incredible - thank you!
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:
There’s a basic python example: https://github.com/Andonome/dungen
Would something like that be possible here?
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:
As I said, it's a big topic :)
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.
Hey! I don't know how to get in contact with you, but I think someone on Amazon is using this generator to make and sell their own dungeon books.
In the footer it says the maps are free for commercial use and even attribution is optional. But yeah, does feel like the author deserves more than credit, these maps are hella cool.
I know https://www.reddit.com/r/FantasyCities/comments/yydmeg/comment/ixc5x76/?utm_sour... :-/
Hi! I was looking for a way to generate these kinds of maps for a roguelike game. They're amazingly organic and feel man-made. Are there any clues about how this was developed on your patreon, or can I get in touch here to ask a few questions about your methods?
Hey, I was wondering if there's an easy way of importing these maps into Godot. Can you point me in some direction @watabou?
thanks!
You can try parsing exported JSONs. Their structure is very simple, it's basically a list of rectangular rooms (incl. corridors) and a list of doors.
right, it was more of a godot question :D
vmaark
Right click on the map to export as JSON. In GODOT you can load JSON files just like any text file, then you can work with it as a dictionary in GODOT, which will allow you to place rooms, doors, items, secrets etc... in your game.
thanks, I'll try this
thanks, I'll try this
These little maps give you the impulse to play new adventures!
I'm trying to switch from squares to hexagons, have you ever thought to add a hexagon option? Straight walls and hexagons means a lot of badly cutted hexagons, we know, but... :)
I'll consider it. I did the opposite thing with caves before - there I overlay maps made of hexes with poorly matching regular grid :)
Amazing webpage, I often use it for my dungeons when playing on Foundry VTT through the importer.
There are two things I think could be huge improvements:
1. Have hard corners automatically have walls that stop line of sight past them. Here is a link to a number of examples where I added the corner manually: https://imgur.com/ghXx6gY
2. Allow the grid to be half as large as it currently is (or perhaps even smaller?) for dungeons that were built by larger than average creatures. Optimally, this would only change the grid size (allowing 4 creatures in each normal square on the map) while still maintaining the placement of walls and doors.