MCDungeon will create a procedurally generated dungeon in a preexisting minecraft map. It is not yet feature complete, but can already generate dungeons with quite a bit of variety. It is written in Python and makes use of code from Paul Hodge's minetown project and codewarrior's pymclevel.I primarily use this for SMP and multiworld via Craftbukkit and MultiVerse. But it works just fine in single player too.Thanks to the following for their interest, inspiration, and great ideas! (in no particular order)BeeTLe BeTHLeHeM, codewarrior, Link1999, SoNick, Commander Keen,Yelik, NoiGren, whoiscraig, ChocolateySyrup, Sevminer, AnderZ EL,SuddenLee, Silre, NuclearDemon, bking1138, BarthVader, koredozo,janxious, compgurusteve, and JiFish.
Automatically finds a good location on a map based on range, size, and depth parameters. Can detect player structures and try not to overwrite them.
Dungeons can be removed from a map later and the landscape allowed to regenerate.
Dungeons can be regenerated in place with a new layout, mobs, and treasure.
Can generate multiple of dungeons in a map, or try to fill the map with as many dungeons as possible.
Generates room layouts based on a random weighted selection of rooms. Rooms are filled with ranomd hallways, floors, room features, and ruins on the surface, all of which are configurable.
The density and placement of doors, portcullises, and torches are configurable. Option to place fewer torches as levels go down. Less light == more danger!
A "hard mode" that will attempt to fill in nearby natural caves in an attempt to concentrate random monster spawns inside the dungeon.
Places stairwells between levels, and a tower entrance with a spiraling staircase. The tower height is configurable so it can be seen for many chunks.
Optionally places an exit portal at the bottom of the dungeon to teleport players out to the surface. (requires command blocks)
Places chests with loot around the dungeon in (probably) hard to reach places. An arbitrary number of loot tables can be configured to provide variety. The density of chests is configurable.
Places mob spawners throughout the dungeon. These will likely be near chests, but not always. Mob types are configurable. The density of spawners is configurable. Some 'non-standard' mobs are available.
Random placement of secret traps.
Output floor maps to a terminal with color on ANSI systems.
Output entire dungeon maps to HTML.
Other things I've left out to avoid spoilers.
GIANT WARNING TEXT
This tool will write data to your minecraft maps and may destroy them! MCDungeon will attempt to avoid player structures, but there is no guarantee. NEVER run this against a map that is currently loaded into Minecraft! Make Backups! Work with copies! I'm not responsible if it destroys your 120+ hour Justin Bieber pixel art!
Support Tips
When asking for help, you'll get the best response if you are sure to include the following:
A clear description of the problem you are seeing.
Include your OS version, MCDungeon version, Minecraft version, and any Minecraft mods you are running.
If running from the command line, include the command exactly as you typed it.
Use pastebin to post the complete console output from MCDungeon.
As a fellow fan of MCMapper I must say that I, too, am excited for the release of this tool!
I noticed that you said that this will require a few python dependencies in its current state. What are the dependencies, if you don't mind saying so prior to the release of the tool? It might be nice to download them now so I'm good to go when you're ready to release! =P
I noticed that you said that this will require a few python dependencies in its current state. What are the dependencies, if you don't mind saying so prior to the release of the tool? It might be nice to download them now so I'm good to go when you're ready to release! =P
No problem! I've tested on Python 2.6 and 2.7. My recommendation right now will be to use 2.6, as the depedencies are a little harder to deal with under 2.7, especially under Windows. In fact, Windows is such a PitA, I'm looking into distributing a standalone version built with PyInstaller.
If you want to get a leg up, I'd appriciate the feedback:
Python 2.6 or 2.7. I've tested on 2.6.6 and 2.7.1.
Python Modules:
For Linux users, if you can find these in your disributions package repo, I'd recommend installing them from there. Noise is probably the only one that would need to be manually downloaded under Debian/Ubuntu.
Building the noise module is a bit of a pain on Windows. Other systems should be fine, just make sure you have gcc installed. Quick and dirty howto for building the noise module for 2.7 on windows:
[*:24ptj3d7] Install Python. Make sure the python command is in your path.
[*:24ptj3d7] Install the mingw compiler: http://sourceforge.net/projects/mingw/files/
[*:24ptj3d7] Make sure the mingw bin folder is in your path.
[*:24ptj3d7] from the noise install folder:
python setup.py install build --compiler=mingw32
Rollback Post to RevisionRollBack
MCDungeon - Procedural Dungeons
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
It's more like Angband style vaults. There are no schematics or predefined rooms. Rooms are constructed dynamically by randomly selecting different room shapes, floor styles, room features, traps, etc and then connecting them with halls, and stairwells.
In the spirit of Minecraft I wanted everything to be procedural. You can affect certain aspects of the dungeon and frequencies of features via a config file.
Rollback Post to RevisionRollBack
MCDungeon - Procedural Dungeons
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Hm... The EXE version doesn't appear to work; I can't even get it to produce an HTML output.
The python version, however, appears to be working fine; I've been playing with the options a bit and the maps are kind of interesting! As of this post I have yet to be sure it will successfully write to a world, however; I'm going to play with the config files until I get a decent idea of how to get dungeons I like then I'm going to test that out and do some dungeon-crawling!
Ahh Angband does both dynamic, and the vault system lets you have 'preset map configurations (templates)' that are sometimes loaded in too. I was wondering if you would be able to allow mixed dungeon generation with both vaults (maybe a % of the rooms created are 'vaults'). Vaults are usually the special rooms in the dungeon which is why it's nice to have have them templated as you could put a boss and the better rewards in them.
It says 'mcdungeon.exe' is not recognized as an internal or external command, operable program or batch file. What do I need to do?
It probably says that because the mcdungeon.exe is not in your command path, which is normal. You have to be sure to be in the directory that contains the file.
1. unzip the contents somewhere.
2. Open a command prompt (start menu > run "cmd \d")
3. cd to the folder that contains the files you unzipped
3. mcdungeon.exe --help
Rollback Post to RevisionRollBack
MCDungeon - Procedural Dungeons
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Hm... The EXE version doesn't appear to work; I can't even get it to produce an HTML output.
Can you give me details? What happens when you execute the command? What output does it produce? What is your OS? 32 or 64 bit?
I've tested it on a couple of systems and it appears to work fine. Although I just figured out that I forgot to include the HTML images in the exe zip file. They are in the python archive.
Rollback Post to RevisionRollBack
MCDungeon - Procedural Dungeons
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Ahh Angband does both dynamic, and the vault system lets you have 'preset map configurations (templates)' that are sometimes loaded in too. I was wondering if you would be able to allow mixed dungeon generation with both vaults (maybe a % of the rooms created are 'vaults'). Vaults are usually the special rooms in the dungeon which is why it's nice to have have them templated as you could put a boss and the better rewards in them.
Ah, yes that is true. Right now it's all dynamic, but there are a couple of built-in special "vault-like" rooms. The max tier treasure room at the bottom (always has the best treasure), the MultiVerse portal room, and the entrance room are special rooms that only appear once in a given dungeon. Unless you mess with the config to make them appear more.
Some sort of room definition method is something to think about. Maybe using Angband-like definitions would be cool.
Rollback Post to RevisionRollBack
MCDungeon - Procedural Dungeons
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Hm... The EXE version doesn't appear to work; I can't even get it to produce an HTML output.
Can you give me details? What happens when you execute the command? What output does it produce? What is your OS? 32 or 64 bit?
Ah... I didn't remember the specifics of it so I tested just now and it appears to work fine? This is odd...
In any case, you're correct about the HTML not working for the reason you specified; it creates the HTML files just fine but they're just sets of broken images.
If you still want the data I'm running Windows XP SP 3 32-bit.
I also ran into an odd error wherein the program errored out partway through creating a dungeon on my Beta 1.3_01 world. I later found one of the three dungeons I'd generated in the world that had the tower and everything, but after journeying down to the base floor it had roughly five rooms with no steps to go deeper; digging down revealed the bedrock between the floors, and a small bit of wall-digging revealed no additional rooms. Odds are good that this was my partially-generated dungeon, and I did not get a chance to find the other two dungeons I'd generated before moving all of my Beta 1.3_01 saves to an archival directory to start a new world for Beta 1.4.
I will test dungeon generation on my new map, although it -should- work fine as the save format has not changed between Beta 1.3_01 and Beta 1.4 and the HTML output worked fine.
I'm actually a little torn here! For testing I probably should generate an HTML file to go with the dungeon(s) I generate on the map, but having an easily-accessible cheat sheet takes some of the fun out of exploring them!
The random option sounds rather nice as well! I have an idea how to script that myself, but I may just wait until it's implemented into the program so I don't have a script that will be depreciated shortly after I've written it! =P
I know what you mean by the HTML maps being too tempting! :smile.gif:
It seems to work fine under 1.4. I generated several maps without issues. Next time it errors out, please capture the output and pastebin it for me.
Don't bother scripting the random dungeon sizes. I've already added it! I've also added cookies, and other stuff from 1.4. I should have a small update posted later tonight.
Rollback Post to RevisionRollBack
MCDungeon - Procedural Dungeons
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
MCDungeon will create a procedurally generated dungeon in a preexisting minecraft map. It is not yet feature complete, but can already generate dungeons with quite a bit of variety. It is written in Python and makes use of code from Paul Hodge's minetown project and codewarrior's pymclevel.I primarily use this for SMP and multiworld via Craftbukkit and MultiVerse. But it works just fine in single player too.Thanks to the following for their interest, inspiration, and great ideas! (in no particular order)BeeTLe BeTHLeHeM, codewarrior, Link1999, SoNick, Commander Keen,Yelik, NoiGren, whoiscraig, ChocolateySyrup, Sevminer, AnderZ EL,SuddenLee, Silre, NuclearDemon, bking1138, BarthVader, koredozo,janxious, compgurusteve, and JiFish.
http://mcdungeon.bubblemod.org
Videos
Screenshots
Current Features
This tool will write data to your minecraft maps and may destroy them! MCDungeon will attempt to avoid player structures, but there is no guarantee. NEVER run this against a map that is currently loaded into Minecraft! Make Backups! Work with copies! I'm not responsible if it destroys your 120+ hour Justin Bieber pixel art!
Support Tips
When asking for help, you'll get the best response if you are sure to include the following:
Downloads and Usage
Download the latest version from the official MCDungeon site.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
EDIT: Bookmarked. Can't believe i forgot to.
I loved MCmapper, too bad it's not working, the faster you work the happier I be
I noticed that you said that this will require a few python dependencies in its current state. What are the dependencies, if you don't mind saying so prior to the release of the tool? It might be nice to download them now so I'm good to go when you're ready to release! =P
No problem! I've tested on Python 2.6 and 2.7. My recommendation right now will be to use 2.6, as the depedencies are a little harder to deal with under 2.7, especially under Windows. In fact, Windows is such a PitA, I'm looking into distributing a standalone version built with PyInstaller.
If you want to get a leg up, I'd appriciate the feedback:
Python 2.6 or 2.7. I've tested on 2.6.6 and 2.7.1.
Python Modules:
For Linux users, if you can find these in your disributions package repo, I'd recommend installing them from there. Noise is probably the only one that would need to be manually downloaded under Debian/Ubuntu.
[*:24ptj3d7]numpy:
http://pypi.python.org/pypi/numpy/
[*:24ptj3d7]noise (binaries are only available for 2.6... you'll have to build with 2.7):
http://pypi.python.org/pypi/noise/
http://code.google.com/p/caseman/downloads/list
[*:24ptj3d7]argparse (only required for 2.6, this is included in 2.7):
http://pypi.python.org/pypi/argparse/
[*:24ptj3d7]Windows users will also want pywin32:
http://sourceforge.net/projects/pywin32/
Building the noise module is a bit of a pain on Windows. Other systems should be fine, just make sure you have gcc installed. Quick and dirty howto for building the noise module for 2.7 on windows:
[*:24ptj3d7] Install Python. Make sure the python command is in your path.
[*:24ptj3d7] Install the mingw compiler:
http://sourceforge.net/projects/mingw/files/
[*:24ptj3d7] Make sure the mingw bin folder is in your path.
[*:24ptj3d7] from the noise install folder:
python setup.py install build --compiler=mingw32
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Vault style definitions similar to Angband vaults would be cool.
In the spirit of Minecraft I wanted everything to be procedural. You can affect certain aspects of the dungeon and frequencies of features via a config file.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Please backup your maps! Good luck, godspeed, and let me know what problems you encounter.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
It says 'mcdungeon.exe' is not recognized as an internal or external command, operable program or batch file.
What do I need to do?
The python version, however, appears to be working fine; I've been playing with the options a bit and the maps are kind of interesting! As of this post I have yet to be sure it will successfully write to a world, however; I'm going to play with the config files until I get a decent idea of how to get dungeons I like then I'm going to test that out and do some dungeon-crawling!
It probably says that because the mcdungeon.exe is not in your command path, which is normal. You have to be sure to be in the directory that contains the file.
1. unzip the contents somewhere.
2. Open a command prompt (start menu > run "cmd \d")
3. cd to the folder that contains the files you unzipped
3. mcdungeon.exe --help
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Can you give me details? What happens when you execute the command? What output does it produce? What is your OS? 32 or 64 bit?
I've tested it on a couple of systems and it appears to work fine. Although I just figured out that I forgot to include the HTML images in the exe zip file. They are in the python archive.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Ah, yes that is true. Right now it's all dynamic, but there are a couple of built-in special "vault-like" rooms. The max tier treasure room at the bottom (always has the best treasure), the MultiVerse portal room, and the entrance room are special rooms that only appear once in a given dungeon. Unless you mess with the config to make them appear more.
Some sort of room definition method is something to think about. Maybe using Angband-like definitions would be cool.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Not directly... you could script this pretty easy. That would be neat though. Something to add.
It works if you have a map folder named "dungeon." Are you getting a particular error?
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Ah... I didn't remember the specifics of it so I tested just now and it appears to work fine? This is odd...
In any case, you're correct about the HTML not working for the reason you specified; it creates the HTML files just fine but they're just sets of broken images.
If you still want the data I'm running Windows XP SP 3 32-bit.
I also ran into an odd error wherein the program errored out partway through creating a dungeon on my Beta 1.3_01 world. I later found one of the three dungeons I'd generated in the world that had the tower and everything, but after journeying down to the base floor it had roughly five rooms with no steps to go deeper; digging down revealed the bedrock between the floors, and a small bit of wall-digging revealed no additional rooms. Odds are good that this was my partially-generated dungeon, and I did not get a chance to find the other two dungeons I'd generated before moving all of my Beta 1.3_01 saves to an archival directory to start a new world for Beta 1.4.
I will test dungeon generation on my new map, although it -should- work fine as the save format has not changed between Beta 1.3_01 and Beta 1.4 and the HTML output worked fine.
I'm actually a little torn here! For testing I probably should generate an HTML file to go with the dungeon(s) I generate on the map, but having an easily-accessible cheat sheet takes some of the fun out of exploring them!
The random option sounds rather nice as well! I have an idea how to script that myself, but I may just wait until it's implemented into the program so I don't have a script that will be depreciated shortly after I've written it! =P
I know what you mean by the HTML maps being too tempting! :smile.gif:
It seems to work fine under 1.4. I generated several maps without issues. Next time it errors out, please capture the output and pastebin it for me.
Don't bother scripting the random dungeon sizes. I've already added it! I've also added cookies, and other stuff from 1.4. I should have a small update posted later tonight.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
This has been tested on Win 7 64 bit.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a