Who doesn't like more, EVEN BETTER dungeons? You can never have enough dungeons!!
Dungeons2! will be a new Minecraft mod that adds procedurally generated, customizable dungeons to your world.
Why Dungeons2!? Because Dungeons! (1) is a highly customizable, procedurally generated dungeon system, but it is also very complex and requires a lot of external files to build a dungeon. I wanted to create a SIMPLIFIED system that still procedurally generates dungeons and requires very few extra external files for customization.
little to no reliance on previously used libraries ie. do not use PlansAPI and LaybrinthsAPI (as they were designed to build structures and series of structures from pre-defined customizable template files).
use 1 config (default mod config) file for mod customization
use 1 external style file for customization of dungeon/rooms appearance
style file should have a simplified JSON/HOCON structure.
in general, don't use any predefined structures or plans but purely style-driven procedurely generated. (there may be exceptions for special rooms such as boss rooms or treasure rooms etc).
* Method *
My level generator implementation generally follows the technique found here.
These are the steps I use:
1. Generate and separate rooms
2. Triangulate Room and build graph
3. Minimize paths by creating a Minimum Spanning Tree (MST)
Update. Entire dungeon layout with multiple levels has been completed. I'm currently working on applying themes, styles and support calculations to the rooms.
One thing I would suggest is that you either add a way to restrict the spread of rooms across chunks or do so by default. Most people have lots of other mods running and things can start to run into each other if there isn't a way to limit the size of a dungeon. Personally, I'd set my world up with lots of smaller dungeons, then bigger sprawling ones.
One thing I would suggest is that you either add a way to restrict the spread of rooms across chunks or do so by default. Most people have lots of other mods running and things can start to run into each other if there isn't a way to limit the size of a dungeon. Personally, I'd set my world up with lots of smaller dungeons, then bigger sprawling ones.
There will be config settings allowing you to setup # of rooms, room size, x/z spread, max # of levels etc. However, I can't see a way of preventing generated content colliding with other mod's generated content unless they expose some method that indicates the world position where it generated. I did this with the original Dungeons mod - I exposed a DungeonRegistry from which you could get the BlockPos where the all the dungeons were generated so you could avoid those general areas. If anyone knows another way of doing this, please share.
Here's an update. This is a small 15-25 room level that was generated. The stonebrick are rooms, whereas the obsidian are the hallways. (only obsidian to help me debug).
Just an update. I have completed the dungeon generation a couple of weeks ago. I've been testing and fixing bugs with the hallway generation and room styling. Anyway here is some pics and video.
After a long hiatus, I have resume development of this mod.
I was wondering if anyone is interested in creating a series of "decoration" images. Think mossy stonebrick but without the stonebrick - just moss with transparent background. I overlay these images on the walls, ceilings and floors to give the dungeons a more weathered look. A min size of 32x32 is preferred.
In my opinion it's good to stick to 16x16 textures, as that's what vanilla minecraft uses. Unless someone has a higher resolution texture pack higher resolution textures just end up looking out of place.
Rollback Post to RevisionRollBack
GENERATION 40: The first time you see this, copy it into your signature on any forum and add 1 to the generation. This is a Social experiment.
I like a base of 32x32 because even with vanilla it doesn't look too out of place, especially if well done. As well, if you are using a higher res texture pack, say 64x64, then your graphics still fit in.
------------
I also just wanted to give an update, that is mod is about 90% done now.
Wow, this mod seems really amazing! I'm currently trying to figure out the Dungeons! 1, and it will take some time XD
From what I understood there is a "style sheet" that the mod uses to generate randomly scaled rooms, unlike the first version of the mod that uses pre-made rooms. So how do you make sure there will be an entrance, or a boss room, for example? And how exactly do you plan on handling the spawners and chests generation and customization? Final question: about the styles, it will only define the blocks on the walls or can you build small structures inside rooms, depending on their size?
I'm really looking forward to this mod, an excellent tool for a modpack maker.
Ps: I saw you want 32x32 textures for the moss and stuff... well, I prefer having thhe default 16x16. I get really annoyed when textures are too different =(
Dungeons! 1 would allow you to really customize anything. But the trade-off is that it is a lot more complex programmatically and design-wise. It also introduces A LOT of extra files to keep track of. So with Dungeons2! I really tried to simplify things while still allowing some customization. You are correct, there is a "style sheet" for the room generation. There is also a "chest sheet" for chest customization and a "spawn sheet" for spawners. So i'm a little off from my original post on the number of files.
The entrance room is a special generated room that has some random features like, pillars, cornice, parapet, merlons etc. The entrance has it's own special layout and styles in the style sheet. Dungeon generation is performed top-down, so it starts with determining if the landscape can support an entrance and then proceeds with the dungeon. Then entire dungeon is calculated before it is rendered, so if something won't work right or an exception is thrown then dungeon isn't made (so no half-made dungeons).
Every level has a start and end room. The end room of the bottom level is a treasure room. Currently chests and spawners are randomly generated (except treasure room that always has a chest). Both are controlled (their contents populated) by their sheets.
Each room has a number of different design elements that can be controlled by the style sheet, such as the floor, walls, ceiling, pillars, base and capital, gutters, grate. With this simplified version you can not add any other structure within the room.
Here are examples of the style sheet: (reduced for brevity)
It really looks a lot simpler than the other mod, perfect for what I need. I think I'm going to wait for the dungeons 2 intead of using the first one, you said it's already 90% done anyway XD I sitll have a lot of work with other mods in my modpack.
I don't know what you have already planned or done, but later I would like to see tiered chests and the one-time spawners from the other mod, even better if I can customize the NBT of the mobs to make simple bosses, like a zombie with a lot of health and some cool modded armor. It may need some room specific stuff, I don't know a lot about coding and your logic, so it is all up to you.
That decay function was a nice addition, it seems way easier to make better looking walls and stuff.
Well, it has different tiers of chests, but not like in Treasure! (another mod I made), where you need to find a lower level chest to be able to open a higher level chest via keys, nor do the chests improve the deeper you go. I've made different categories of chests (common, uncommon, rare, epic\boss) which can contain different groups of items. Each category of chest has a weight, so when they are randomly selected, the heavier category is more likely to be chosen. So in general each category of chest could occur anywhere in the dungeon, but chances are it will be a common or uncommon chest. And these settings are all configurable in the chest sheet. The epic category is reserved for the treasure room at the bottom of the dungeon.
Unfortunately I am not adding one-time spawners at this time. And you can't edit the NBT of the mobs. Mobs is the last thing and least developed thing I added... trying to just get the mod done at this point However, those are good ideas for an updated version.
Well, I should be releasing Dungeons2! later this week. I had to remove the specialty moss, lichen, blood decorations as I couldn't make a decent looking one (well, that's a half-truth, they looked good with Fancy graphics turned on, but not fast graphics).
1. Generate and separate rooms
2. Triangulate Room and build graph
3. Minimize paths by creating a Minimum Spanning Tree (MST)
4. Add hallways by using the MST
9/10/2016:
Update. Entire dungeon layout with multiple levels has been completed. I'm currently working on applying themes, styles and support calculations to the rooms.
Thanks, so do I!
Looks cool. I like the original Dungeons! mod, and this looks even cooler!
One thing I would suggest is that you either add a way to restrict the spread of rooms across chunks or do so by default. Most people have lots of other mods running and things can start to run into each other if there isn't a way to limit the size of a dungeon. Personally, I'd set my world up with lots of smaller dungeons, then bigger sprawling ones.
There will be config settings allowing you to setup # of rooms, room size, x/z spread, max # of levels etc. However, I can't see a way of preventing generated content colliding with other mod's generated content unless they expose some method that indicates the world position where it generated. I did this with the original Dungeons mod - I exposed a DungeonRegistry from which you could get the BlockPos where the all the dungeons were generated so you could avoid those general areas. If anyone knows another way of doing this, please share.
Here's an update. This is a small 15-25 room level that was generated. The stonebrick are rooms, whereas the obsidian are the hallways. (only obsidian to help me debug).
Do you have a github repo for this? I'd love to check it out!
GENERATION 40: The first time you see this, copy it into your signature on any forum and add 1 to the generation. This is a Social experiment.
Unfortunately no, I do not have a github repo for this yet. I think that is something I'll setup when I get a little further down the line.
Just an update. I have completed the dungeon generation a couple of weeks ago. I've been testing and fixing bugs with the hallway generation and room styling. Anyway here is some pics and video.
9/10/2016:
After a long hiatus, I have resume development of this mod.
I was wondering if anyone is interested in creating a series of "decoration" images. Think mossy stonebrick but without the stonebrick - just moss with transparent background. I overlay these images on the walls, ceilings and floors to give the dungeons a more weathered look. A min size of 32x32 is preferred.
I might be able to help. send me a pic of an example of what you are wanting
Here is a pic of various types of moss/fungus/blood and puddle I was trying to make. They look like someone puked on the wall.
In my opinion it's good to stick to 16x16 textures, as that's what vanilla minecraft uses. Unless someone has a higher resolution texture pack higher resolution textures just end up looking out of place.
GENERATION 40: The first time you see this, copy it into your signature on any forum and add 1 to the generation. This is a Social experiment.
I like a base of 32x32 because even with vanilla it doesn't look too out of place, especially if well done. As well, if you are using a higher res texture pack, say 64x64, then your graphics still fit in.
------------
I also just wanted to give an update, that is mod is about 90% done now.
Wow, this mod seems really amazing! I'm currently trying to figure out the Dungeons! 1, and it will take some time XD
From what I understood there is a "style sheet" that the mod uses to generate randomly scaled rooms, unlike the first version of the mod that uses pre-made rooms. So how do you make sure there will be an entrance, or a boss room, for example? And how exactly do you plan on handling the spawners and chests generation and customization? Final question: about the styles, it will only define the blocks on the walls or can you build small structures inside rooms, depending on their size?
I'm really looking forward to this mod, an excellent tool for a modpack maker.
Ps: I saw you want 32x32 textures for the moss and stuff... well, I prefer having thhe default 16x16. I get really annoyed when textures are too different =(
Dungeons! 1 would allow you to really customize anything. But the trade-off is that it is a lot more complex programmatically and design-wise. It also introduces A LOT of extra files to keep track of. So with Dungeons2! I really tried to simplify things while still allowing some customization. You are correct, there is a "style sheet" for the room generation. There is also a "chest sheet" for chest customization and a "spawn sheet" for spawners. So i'm a little off from my original post on the number of files.
The entrance room is a special generated room that has some random features like, pillars, cornice, parapet, merlons etc. The entrance has it's own special layout and styles in the style sheet. Dungeon generation is performed top-down, so it starts with determining if the landscape can support an entrance and then proceeds with the dungeon. Then entire dungeon is calculated before it is rendered, so if something won't work right or an exception is thrown then dungeon isn't made (so no half-made dungeons).
Every level has a start and end room. The end room of the bottom level is a treasure room. Currently chests and spawners are randomly generated (except treasure room that always has a chest). Both are controlled (their contents populated) by their sheets.
Each room has a number of different design elements that can be controlled by the style sheet, such as the floor, walls, ceiling, pillars, base and capital, gutters, grate. With this simplified version you can not add any other structure within the room.
Here are examples of the style sheet: (reduced for brevity)
It really looks a lot simpler than the other mod, perfect for what I need. I think I'm going to wait for the dungeons 2 intead of using the first one, you said it's already 90% done anyway XD I sitll have a lot of work with other mods in my modpack.
I don't know what you have already planned or done, but later I would like to see tiered chests and the one-time spawners from the other mod, even better if I can customize the NBT of the mobs to make simple bosses, like a zombie with a lot of health and some cool modded armor. It may need some room specific stuff, I don't know a lot about coding and your logic, so it is all up to you.
That decay function was a nice addition, it seems way easier to make better looking walls and stuff.
Well, it has different tiers of chests, but not like in Treasure! (another mod I made), where you need to find a lower level chest to be able to open a higher level chest via keys, nor do the chests improve the deeper you go. I've made different categories of chests (common, uncommon, rare, epic\boss) which can contain different groups of items. Each category of chest has a weight, so when they are randomly selected, the heavier category is more likely to be chosen. So in general each category of chest could occur anywhere in the dungeon, but chances are it will be a common or uncommon chest. And these settings are all configurable in the chest sheet. The epic category is reserved for the treasure room at the bottom of the dungeon.
Unfortunately I am not adding one-time spawners at this time. And you can't edit the NBT of the mobs. Mobs is the last thing and least developed thing I added... trying to just get the mod done at this point However, those are good ideas for an updated version.
Chest Sheet:
Well, I should be releasing Dungeons2! later this week. I had to remove the specialty moss, lichen, blood decorations as I couldn't make a decent looking one (well, that's a half-truth, they looked good with Fancy graphics turned on, but not fast graphics).