If you’re into this stuff -this one does cities (make your own Skara Brae):
This is one of the Big Dogs:
It does worlds, dungeons, monsters (for different editions of the game), quests, and a ton of other stuff.
I recognize that this is a significantly challenging task, but hey, if Dwarf Fortress can do it...
This looks very cool! But I noticed something odd: I generated several cities of various sizes and almost every city block is marked as "craftsmen". This can't be right...
The other similar resource I know about is the ancient In the Labyrinth manual for Steve Jackson's The Fantasy Trip.
 Jackson recently got back the copyrights for The Fantasy Trip and they have a kickstarter going on now for newly-reissued (and updated, I think) copies.
It’s why I’ve been working on something similar over the past few years and dungeon generating is definitely on the roadmap. It’s called OpenDnD and it’s attempting to be a complete set of open source DM and player tools. The first 5 tools are fairly useable but very much still beta. For those interested, the code’s up on GitHub: https://github.com/opendnd/opendnd.
Maybe I'll even contribute! ;)
Are you planning on adding support for other versions as well (for those features where it matters), or will it just be 5e?
I had a quick peek on GitHub now, and it brought up:
So, is there any reason to roll your own from scratch rather than contributing to one of the existing projects?
If it's to have your own project that you have complete control over, or if it's just to do something fun yourself, that's totally cool. I'd just like to know.
That being said, I'm aware that other projects are out there now that have similar goals -- some further along than us as it's mostly been me working on it in my free time. However, I would say that our design decision is pretty different from the others in that each component is designed to be a separate standalone tool that can be used as a component to build other things. Because the end goal is so ambitious I think this design decision is critical if the project is ever to get close to achieving that goal. If I had to summarize in one sentence what we're trying to achieve, it's kind of a Dwarf Fortress level of detail but fully open source and fully interconnected components.
I'll pop you an email and we can continue discussion via a format better suited for this kind of discussion.
And world building resources:
The maps don't use any of the optional starting rooms, for starters.
All 45 degree options are missing, as are odd shapes, stairs, pits, etc, resulting in ignoring or heavily modifying Tables II, III, III.B, V.A, V.E, VI, VII, and VIII,.
The rules also specify that the dungeon must start with a stairs entering a room, but it appears that this actually starts with a passage instead, which doesn't appear to require entering a room immediately.
The entrance enters the room using a secret door, however there shouldn't be a door between the entrance and the first room.
Although if there was enough interest, I might implement those rules minus the dungeon dressing/encounters and some of the "unusual shapes".
As for the older DMG rules that you have, I'll post them up if I end up implementing that version. Otherwise I'll cause confusion :)
Of course, given how unworkable most of the rest of the DMG was if treated strictly literally, patching the almost entirely unworkable outcomes that result from literal readings of the DMG was pretty much the core Dungeon Master skill.
1. Generate a pile of random rectangles. This is an additive operation (this is only important for #4, below).
2. Check to see if any overlap. If they do, remove one.
3. Repeat 2 until no more overlap.
4. Check to see if there are too few rooms in the map. If there are, go back to 1.
5. Add corridors (this is a whole 'nother topic).
Whenever the program goes to place a room or corridor, it firstly checks whether those squares are unoccupied. If not, the room/corridor isn't placed.
I originally made it place the room anyway, since it might result in some interesting structures. But in practice, it just made a complete mess and there was no easy way to decide when to make the algorithm stop.
An empty hallway is great for storage and requires much less support than building out a room. It could also be explained by venting or similar that might not show up on a map.
I used to work at the old IBM buildings in Austin; there were a few halls that went around a few corners only to dead-end. With a bunch of spare desks and chairs piled against the end wall.
The random tables allow a corridor to end in a false or secret door (or stairs, but I stripped those out). So by the same logic, a corridor must be allowed to 'stop' or a dead-end would always mean "trap/secret" to the players.
But as others have said, it's not entirely unrealistic ;)
I'd probably open-source it before I abandon it though.
What features would you like to see?
I've added the answer to the FAQ :)
I'll try to modify it this weekend so allow slightly bigger maximums, and probably to allow you to specify the size of dungeon desired.
fwiw if a page doesn't load with third-party cookies disabled, it should be considered broken
I think this could be improved by moving the stylesheet up in the DOM (in the head, and not at the end of the body as it's the case now).
That's ... unusual to say the least and if I'm honest, the wording "most stupid, brain dead thing I've seen in a long time" was the first thing that crossed my mind.
That's quite an ugly optimization step. You left out the step where you inline the necessary CSS styles in the head that's why the unstyled page flashes up for a second. But as you use bootstrap, this might be a lot to inline and not worth the effort.
I'd say this is a case where you shouldn't care too much about a highscore :-)
Maybe I'll just bite the bullet and do my own CSS.
Framing it as an absolute where you shouldn't use two tools that make it easier to make a website is unnecessary and makes you look dogmatic rather than wise.
The author obviously had plenty of page weight to spare.
BUT, I wanted to have a play with Bootstrap, which I hadn't used before and it was/is comforting to have the ability to expand the look to include other features if I need to :)
(IIRC the 1st edn AD&D DM's guide dates to roughly 1982. (Can't find my copy to verify: that's going from memory of when I got mine.))
So let me restate that: you take a set of rules from a 30+ year old book, create a graphic from that and claim copyright on the graphic that was derived by those very rules from a random or manually entered seed?
Why do you think you have more power over the output than the original author of the DMG?
EDIT: spelling cc-nc
# 306 The Human Authorship Requirement
The U.S. Copyright Office will register an original work of authorship, provided that the work
was created by a human being.
The copyright law only protects “the fruits of intellectual labor” that “are founded in the creative
powers of the mind.” Trade-Mark Cases, 100 U.S. 82, 94 (1879). Because copyright law is limited
to “original intellectual conceptions of the author,” the Office will refuse to register a claim if it
determines that a human being did not create the work. Burrow-Giles Lithographic Co. v. Sarony,
111 U.S. 53, 58 (1884). For representative examples of works that do not satisfy this requirement,
see Section 313.2 below.
# 313.2 Works That Lack Human Authorship
The Office will not register works produced by nature, animals, or plants. Likewise, the Office
cannot register a work purportedly created by divine or supernatural beings....
Similarly, the Office will not register works produced by a machine or mere mechanical process
that operates randomly or automatically without any creative input or intervention from a human
author... Example: A claim based on a mechanical weaving process that randomly produces irregular
shapes in the fabric...
https://www.copyright.gov/comp3/docs/compendium.pdf (Warning, approx 1200 pages)
> Similarly, the Office will not register works produced by a machine or mere mechanical process that operates randomly or automatically without any creative input or intervention from a human author... Example: A claim based on a mechanical weaving process that randomly produces irregular shapes in the fabric...
There is clear direction in the program here; it does not operate randomly without any creative input or intervention from a human author.