Is there a way to turn off the "suitable location" check? I use a map generated from the Primordial Desert map generator and your tool cannot find a suitable location for a dungeon. My map is mostly desert, chances are low that it would hit anything important.
As a huge fan of Beetle Bethlehem's MCMapper, I can only applaud what you've done with the project. Building off his successful premise (even if not using his actual code) has provided MCDungeon a solid foundation, and the project soars by exceeding expectations and providing a fantastic variety and constant need to press forward.
Where to begin?
First and foremost I think the basic overall layout is amazing. The clean distinction of rooms and halls, done in such a way (especially with the varied hall types) that it never gets tedious, makes for a much more inviting and navigable dungeon than MCMapper -- perhaps one of its most wanting areas were its twisty and frustrating labyrinthine constructions, even outside of intentional mazes. These layouts are clean and solid and crisp.
The config is comprehensive (and seems to only be getting more robust with each update) and the options are fine-tuned. The loot tables are in-depth and rewarding to toy with, and can be tweaked to every specification I can think of. The ability to include an amount of loot over a stack and have the generator automatically split it into the appropriate size is just one example of how intuitive and ahead of the curve it is. The balance available spans a broad range, from simple, quick and easy to long and challenging -- a true gauntlet.
The decision to split each portion of a room into its own definition was brilliant and provides more variety than most generators could hope for. Pillars of varying materials, checkerboard floors of cloth, chasms and rifts and rivers cutting across the rooms -- they can all be intermixed and played with, and they make every dungeon feel truly unique.
Portcullises, gates and doors only make this better. Traps are implemented in a refined and impressive way. I can only imagine how pistons might play into the generation once they're officially included in Minecraft.
The overall construction of the dungeons is fantastic as well. MCMapper suffered by requiring a very narrow range of chunks and a great depth, and every level felt very, very demanding in terms of vertical space provided. This doesn't feel anywhere near as cramped, and you can get a lot more dungeon out of far fewer floors, largely due to the broad and ample layout of the floors. The most fundamental and important aspect of the mod is one of the best handled!
I'm very eager to see where this all goes. I think the most obvious and beneficial changes would just be more, more, more: more architectural presets, more room types, more set pieces to fill the dungeon with, more decorations and designs, more entrance types to cap the dungeons with, more customization to tweak all the various things (or even add some of your own) -- the mod is going places, no doubt. And the fact that it won't break when Notch updates means we can all keep enjoying it as long as needed.
I only wish I'd known about this sooner. Eagerly awaiting the next installment!
Is there a way to turn off the "suitable location" check? I use a map generated from the Primordial Desert map generator and your tool cannot find a suitable location for a dungeon. My map is mostly desert, chances are low that it would hit anything important.
There is (the --offset option), but this is not the problem you are having. If you try that, it will error out when it cannot load any chunks. Unfortunately, Primordial Desert uses a version of gzip contained in .net that isn't 100% compatible with the zlib used by Python and lots of other programs. As a result, pymclevel and several mapping programs (c10t, pixmap, others) cannot read the chunks created by Primordial Desert.
But, there is a workaround... Read this post. Basically, all you have to do is load up your Primordial Desert map, run around a little bit and save. This will force Minecraft to re-compress the chunks you can see into a format MCDungeon can read. You don't even have to run around much. The initial area around you should be large enough to contain a modestly sized dungeon.
Good luck! The Dungeon will become a million times more difficult on that map. :biggrin.gif:
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
Wow! Thanks for taking the time to put that together. I'm glad you're having fun with it. The maze layout algorithm has changed quite a bit in the next version, but I think for the better. It's configurable and can generate mazes that look much like the current one, but you can also adjust them to be more or less linear with fewer or more loops. It also makes sure that the entrance and exit of each level are as far away from each other as possible. This really makes even small dungeons seem very large.
And pistons! That will be fun.
The problem I'm having with traps right now is that it's hard to make them non-obvious. For example, I have a great trap that consists of a multi-floor pit room with a fall-away sand floor at the top level, but the only way to trigger it would be with a really obvious floor plate. I wish walking over sand would make it trigger. Or if I could trigger it when you open the chest in the middle.
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
One thing I wanted to bring up was the idea of a restored area.
MCMapper instituted this fairly late in its development, but it was a boon: it backed up the generated area and could restore it at will. I know with the new save format this may not be as easy, but loading in dungeons, running them through, and then erasing them without erasing your progress would be a big step in making this easier to use.
I currently do it just by generating a dungeon, running through, then returning home, and replacing the new region folder with an old backed up one from just before the generation, then backing that up for the next dungeon. Of course, this means only carrying one inventoryful of loot, but it really makes you consider what you need and what you don't.
If this is feasible, it could also mean a number of other things: you could decorate the area above the dungeon, not just the entrance. If you add multiple entrance types (like say, a ruins, like MCMapper tried to introduce), you could have a small ruined village, with one leading down below. Even the tower could be surrounded by burning netherrack or just scattered cobblestone for effect. Further, you could even flat-pave the subterranean areas, filling in all the caves with stone to prevent monsters from spawning there, increasing the dungeon's focus. The area would be ruined for spelunking, of course, but if you could get it to restore later, you could implement even these large-scale changes to the world. Just let the users know how to deal with it.
Just some thoughts. I know these may not be very feasible, but I think with enough convenience I'd use these dungeons almost nonstop.
I'm using your generator and enjoying quite a bit, some of the things you have achieved with it are excellent! I'm really looking forward to future improvements, especially those that enhance the character of the dungeon, that sense of place that Primordial Desert has.
Quote from Eggplant! »
The problem I'm having with traps right now is that it's hard to make them non-obvious. For example, I have a great trap that consists of a multi-floor pit room with a fall-away sand floor at the top level, but the only way to trigger it would be with a really obvious floor plate. I wish walking over sand would make it trigger. Or if I could trigger it when you open the chest in the middle.
One thing I wanted to bring up was the idea of a restored area.
I was thinking about that. Yes, the new save format makes this difficult. Plus I didn't really want to reinvent the wheel, so I'm using pymclevel to handle all of the loading, saving, and relighting of chunks. One idea I had was to just save off the locations of the chunks when generating the dungeon, and then "restoring" by forcing Minecraft to regenerate those chunks. This will revert chunks to their original state. It won't save any structures you may have built, but would be a quick and efficient way to remove a dungeon from a map.
Another thing I want to implement is rendering multiple dungeons at a time, and making sure they don't overlap. Most of the code to do this is already there.
If this is feasible, it could also mean a number of other things: you could decorate the area above the dungeon, not just the entrance. If you add multiple entrance types (like say, a ruins, like MCMapper tried to introduce), you could have a small ruined village, with one leading down below.
This is a nice idea. I could see having multiple surface structures and rendering random ones above the dungeon in various states of ruin. Maybe even sprinkle start gear around the village/ruin to give players a reason to explore it. Heck, it could even be generated as a sort of "level zero" with it's own tiles consisting of various buildings, roads, and other structures.
filling in all the caves with stone to prevent monsters from spawning there, increasing the dungeon's focus.
Another nice idea. This would allow for a sort of difficulty slider that searches out caves below and around the dungeon and fills them in to focus spawns inside the dungeon.
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
If a set -o x y z I know where the NW corner is, is there a way to know where the SE corner is? I'm using the tool for SMP and I want to add a WorldGuard region to the whole dungeon so nobody breaks or places blocks
You could create HTML maps at the time of generation to find the exact dimensions.
The rooms are 16x16 blocks, and 6 blocks deep. So, the dimensions of the dungeon will start at the --offset x, y, z, and extend to x+xsize*16, y-levels*6, z-zsize*16. Remember South is +X, East is -Z and Down is -Y.
For example, if you had a 5 x 5 x 4 dungeon starting at --offset 20, 62, -40, the other corner would be 100, 24,-120.
I'll add some output at the end to print the actual world bounds of the dungeon.
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
You could add an option to use specific mods in the config file. Things like trip wire and dead fall blocks to make traps harder and with more variety.
A few more thoughts for easy visual/aesthetic variety beyond just adding more set pieces/room types/hallway types:
You could, with a small percent chance, have some rooms randomized in their basic/wall materials as well as their floors. Instead of just having the floor covered in a swatch of checkerboard wool, the walls themselves could be colored or decorated, or made of a random material like wood, brick, obsidian, etc. It would make certain areas feel more distinct, and (I imagine) if handled similarly to the columns you have already would be simple enough to add. Similarly, you could even distinct each floor by material, for a good sense of visually-recognizable progress. Every time you descend, the walls could change to another material, perhaps at random, so one floor is brick, the next is smooth stone, then snow blocks, etc. It would give a feel of more variety, though I imagine some materials (esp. flammable ones) would give a big risk when combined with lava elements.
MCMapper used a lot of different materials for its set pieces, and while you already have a start with this given your columns of glowstone/obsidian/bedrock/etc., it could go even farther. More exotic materials like brick, clay, sandstone, etc. could help make more visual variety at low cost.
When I enter a dungeon with LAST DAYS texture pack, I imagine I'm raiding a storage room for orbital industries, but due to the area being a safe fallout shelter, bandits, raiders, and creatures stow away in the deeper realms...
I applaude you on this great mod. I played through on the default settings and was impressed. But these settings proved to be a cakewalk. Might I suggest a slightly more challenging set of defaults:
The above settings provide a more robust set of dungeon inhabitants with a corresponding set of rewards. With the default settings, the upper levels are virtually uninhabited, and it is easy to collect rewards. But with the modified settings, more creatures create a better challenge and a better reward.
I started a world and entered a dungeon with the new settings with some leather armor and a sword. By the time I got to level 3, I had managed to forge a bow, while the challenge was increasing. I did not make it to level 4, despite the increased rewards, because I was beset upon by a group of mobs that had jumped me from above (a broken room which was in pitch darkness that I had not discovered before coming to the lower level).
Regardless of what you have as default, this is a great mod. Keep up the good work!
Rollback Post to RevisionRollBack
"In the distant future, there will be more variation such as different terrain types (desert! swamp! snow!) and settlements (goblin village! abandoned stone tower! dragon lair!)" - Notch
Personally I think 0.5 chests per level is plenty, but yes, a very low percentage of torches and a very high ratio of spawners helps a lot when ramping up difficulty, especially as a means of combatting the 'safe spawn' bubble around the player.
The Meaning of Life, the Universe, and Everything.
Join Date:
1/21/2011
Posts:
311
Member Details
NICE!!!
I noticed that you didn't have a banner yet, so i thought I'd make you one :] here it is:
later, i'll make a big one thats a little nicer though... hope you like!
oh and the code:
IndexError: index (145) out of range (0<=index<128) in dimension 2
I ran the stand alone windows batch file, and got this error.
What did I do wrong?
Also, the thing looks epic already.
Hmmm.. hard to say without knowing some additional lines above this. I know of an issue where pymclevel sometimes gives me chunk coords out of range when trying to place a dungeon at one edge of the map. Usually if you try again it doesn't happen the second try.
I found a bug with the bounds checking on the tower height that may have caused this. It's trying to draw blocks above the world height. This will be fixed in v0.1.0. In the mean time, try lowering the tower height to work around it.
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
s3.hosthorde.com:25599
Where to begin?
First and foremost I think the basic overall layout is amazing. The clean distinction of rooms and halls, done in such a way (especially with the varied hall types) that it never gets tedious, makes for a much more inviting and navigable dungeon than MCMapper -- perhaps one of its most wanting areas were its twisty and frustrating labyrinthine constructions, even outside of intentional mazes. These layouts are clean and solid and crisp.
The config is comprehensive (and seems to only be getting more robust with each update) and the options are fine-tuned. The loot tables are in-depth and rewarding to toy with, and can be tweaked to every specification I can think of. The ability to include an amount of loot over a stack and have the generator automatically split it into the appropriate size is just one example of how intuitive and ahead of the curve it is. The balance available spans a broad range, from simple, quick and easy to long and challenging -- a true gauntlet.
The decision to split each portion of a room into its own definition was brilliant and provides more variety than most generators could hope for. Pillars of varying materials, checkerboard floors of cloth, chasms and rifts and rivers cutting across the rooms -- they can all be intermixed and played with, and they make every dungeon feel truly unique.
Portcullises, gates and doors only make this better. Traps are implemented in a refined and impressive way. I can only imagine how pistons might play into the generation once they're officially included in Minecraft.
The overall construction of the dungeons is fantastic as well. MCMapper suffered by requiring a very narrow range of chunks and a great depth, and every level felt very, very demanding in terms of vertical space provided. This doesn't feel anywhere near as cramped, and you can get a lot more dungeon out of far fewer floors, largely due to the broad and ample layout of the floors. The most fundamental and important aspect of the mod is one of the best handled!
I'm very eager to see where this all goes. I think the most obvious and beneficial changes would just be more, more, more: more architectural presets, more room types, more set pieces to fill the dungeon with, more decorations and designs, more entrance types to cap the dungeons with, more customization to tweak all the various things (or even add some of your own) -- the mod is going places, no doubt. And the fact that it won't break when Notch updates means we can all keep enjoying it as long as needed.
I only wish I'd known about this sooner. Eagerly awaiting the next installment!
There is (the --offset option), but this is not the problem you are having. If you try that, it will error out when it cannot load any chunks. Unfortunately, Primordial Desert uses a version of gzip contained in .net that isn't 100% compatible with the zlib used by Python and lots of other programs. As a result, pymclevel and several mapping programs (c10t, pixmap, others) cannot read the chunks created by Primordial Desert.
But, there is a workaround... Read this post. Basically, all you have to do is load up your Primordial Desert map, run around a little bit and save. This will force Minecraft to re-compress the chunks you can see into a format MCDungeon can read. You don't even have to run around much. The initial area around you should be large enough to contain a modestly sized dungeon.
Good luck! The Dungeon will become a million times more difficult on that map. :biggrin.gif:
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Wow! Thanks for taking the time to put that together. I'm glad you're having fun with it. The maze layout algorithm has changed quite a bit in the next version, but I think for the better. It's configurable and can generate mazes that look much like the current one, but you can also adjust them to be more or less linear with fewer or more loops. It also makes sure that the entrance and exit of each level are as far away from each other as possible. This really makes even small dungeons seem very large.
And pistons! That will be fun.
The problem I'm having with traps right now is that it's hard to make them non-obvious. For example, I have a great trap that consists of a multi-floor pit room with a fall-away sand floor at the top level, but the only way to trigger it would be with a really obvious floor plate. I wish walking over sand would make it trigger. Or if I could trigger it when you open the chest in the middle.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
MCMapper instituted this fairly late in its development, but it was a boon: it backed up the generated area and could restore it at will. I know with the new save format this may not be as easy, but loading in dungeons, running them through, and then erasing them without erasing your progress would be a big step in making this easier to use.
I currently do it just by generating a dungeon, running through, then returning home, and replacing the new region folder with an old backed up one from just before the generation, then backing that up for the next dungeon. Of course, this means only carrying one inventoryful of loot, but it really makes you consider what you need and what you don't.
If this is feasible, it could also mean a number of other things: you could decorate the area above the dungeon, not just the entrance. If you add multiple entrance types (like say, a ruins, like MCMapper tried to introduce), you could have a small ruined village, with one leading down below. Even the tower could be surrounded by burning netherrack or just scattered cobblestone for effect. Further, you could even flat-pave the subterranean areas, filling in all the caves with stone to prevent monsters from spawning there, increasing the dungeon's focus. The area would be ruined for spelunking, of course, but if you could get it to restore later, you could implement even these large-scale changes to the world. Just let the users know how to deal with it.
Just some thoughts. I know these may not be very feasible, but I think with enough convenience I'd use these dungeons almost nonstop.
Here's one place/person you might go for trap ideas: viewtopic.php?f=1034&t=207989
I was thinking about that. Yes, the new save format makes this difficult. Plus I didn't really want to reinvent the wheel, so I'm using pymclevel to handle all of the loading, saving, and relighting of chunks. One idea I had was to just save off the locations of the chunks when generating the dungeon, and then "restoring" by forcing Minecraft to regenerate those chunks. This will revert chunks to their original state. It won't save any structures you may have built, but would be a quick and efficient way to remove a dungeon from a map.
Another thing I want to implement is rendering multiple dungeons at a time, and making sure they don't overlap. Most of the code to do this is already there.
This is a nice idea. I could see having multiple surface structures and rendering random ones above the dungeon in various states of ruin. Maybe even sprinkle start gear around the village/ruin to give players a reason to explore it. Heck, it could even be generated as a sort of "level zero" with it's own tiles consisting of various buildings, roads, and other structures.
Another nice idea. This would allow for a sort of difficulty slider that searches out caves below and around the dungeon and fills them in to focus spawns inside the dungeon.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Thanks for the link!
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
You could create HTML maps at the time of generation to find the exact dimensions.
For example, if you had a 5 x 5 x 4 dungeon starting at --offset 20, 62, -40, the other corner would be 100, 24,-120.
I'll add some output at the end to print the actual world bounds of the dungeon.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
You could, with a small percent chance, have some rooms randomized in their basic/wall materials as well as their floors. Instead of just having the floor covered in a swatch of checkerboard wool, the walls themselves could be colored or decorated, or made of a random material like wood, brick, obsidian, etc. It would make certain areas feel more distinct, and (I imagine) if handled similarly to the columns you have already would be simple enough to add. Similarly, you could even distinct each floor by material, for a good sense of visually-recognizable progress. Every time you descend, the walls could change to another material, perhaps at random, so one floor is brick, the next is smooth stone, then snow blocks, etc. It would give a feel of more variety, though I imagine some materials (esp. flammable ones) would give a big risk when combined with lava elements.
MCMapper used a lot of different materials for its set pieces, and while you already have a start with this given your columns of glowstone/obsidian/bedrock/etc., it could go even farther. More exotic materials like brick, clay, sandstone, etc. could help make more visual variety at low cost.
Again, just throwing ideas out.
Great generator.
default:
torches_top: 80
torches_bottom: 10
chests: 0.5
spawners: 1.0
new:
torches_top: 30
torches_bottom: 8
chests: 1.5
spawners: 2.0
The above settings provide a more robust set of dungeon inhabitants with a corresponding set of rewards. With the default settings, the upper levels are virtually uninhabited, and it is easy to collect rewards. But with the modified settings, more creatures create a better challenge and a better reward.
I started a world and entered a dungeon with the new settings with some leather armor and a sword. By the time I got to level 3, I had managed to forge a bow, while the challenge was increasing. I did not make it to level 4, despite the increased rewards, because I was beset upon by a group of mobs that had jumped me from above (a broken room which was in pitch darkness that I had not discovered before coming to the lower level).
Regardless of what you have as default, this is a great mod. Keep up the good work!
I noticed that you didn't have a banner yet, so i thought I'd make you one :] here it is:
later, i'll make a big one thats a little nicer though... hope you like!
oh and the code:
Awesome Minecraft mod! clicky!
I found a bug with the bounds checking on the tower height that may have caused this. It's trying to draw blocks above the world height. This will be fixed in v0.1.0. In the mean time, try lowering the tower height to work around it.
The volume of a pizza of thickness a and radius z can be described by the following formula: pi*z*z*a
Press any key to continue . . .
*presses key*
Window Closes.
._.