[WGEN] The Dungeonator - A Procedural Dungeon Crawl Generator [v0.0.3 Preview Now Available!]

Discussion in 'WIP and Development Status' started by Timberjaw, Feb 26, 2011.

  1. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Room Editor with border and corner hinting:
    [IMG]

    Room Editor with border, corner, and doorway hinting:
    [IMG]

    Center doorways are 4 blocks wide. Secondary doorways are 3 blocks wide. Note that this represents the maximum doorway size for each doorway location; in practice doorway and passage sizes will vary somewhat.

    As always you can see all the Dungeonator images in the imgur album.
    dak393, Adondriel and dark navi like this.
  2. Offline

    Adondriel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    That looks difficult to code... lol i cant wait to see this in a giant cave!
  3. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @Adondriel This is the easy part; it only gets worse from here ;)
  4. Offline

    Adondriel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    lol, i guess that's true but the other thing is, once its done, it will be EPIC :D lol
  5. Offline

    dak393

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Great work loving these updates :D
  6. Offline

    Sondre Berntsen

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    This looks fairly intriguing, I remember the game though... awesome.

    Anyhow, isn't this also a planned gamemode for minecraft?
  7. Offline

    Adondriel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Any updates? progress? :D
  8. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Remember what game?
  9. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    A few design aspects I'm contemplating at the moment:

    Overworld
    I've been considering some concepts for the overworld:

    1. The previously-mentioned 'slices' idea; top ~32 blocks normal world, lower blocks dungeon
    2. Multi-world; normal Minecraft world with scattered ruins containing portals to the dungeon
    3. No overworld

    I'm leaning toward a combination of #2 & #3: allowing server operators to choose between a 'challenge mode' (dungeon only) and a hybrid mode (dungeon world + overworld). #1 has a certain appeal since it wouldn't require teleporting to travel between the underworld and the overworld, but ultimately it seems too kludgy.

    Thoughts?

    Primordial Desert: Good and Bad
    My friends and I have recently been playing a Primordial Desert map, and I kept the Dungeonator in the back of my mind while we explored PD's dungeons. There are a few design flaws I'd like to avoid (though we've been enjoying PD immensely).

    1. Tedium: exploring the PD dungeons basically amounts to a tedious crawl through dark corridors. Fight monsters in confined space, build bridge over chasm (mobs set off ~95% of the traps before players get there), put up torches, rinse, repeat.

    2. Variety: chambers and tunnels are all roughly the same size and shape. Chambers contain either empty glass tetrahedrons, a couple glowstone, or a fountain with lapis. One chamber contained a treasure chest with some arrows and torches.

    3. Rewards: overall I would describe the PD rewards as inconsistent, with a healthy serving of disappointment. the first 5 or so dungeon crawls (including 100% exhaustive explorations of every side tunnel) turned up a couple glowstone here and there, and a decent amount of lapis. It wasn't until the 6th that we found our first treasure chest, which contained...some arrows and a few torches. On the 7th we hit paydirt in the form of ~200 diamond ore.

    Design elements I do like:

    1. Limited resources: starting out in a hostile land with severely limited resources proved challenging in a good way. Surviving the first night was quite intense; most of us didn't make it. Being forced to rush through the process of building a settlement at our first oasis, secure the border, and work up to stone tools involved a great deal of time and peril. Limited availability of iron and coal have made us conscious of our resource usage, but we've slowly increased our holdings and acquired better an better gear and more and more territory. With the eventual mother lode of diamonds, we've more or less conquered the desert and beat the odds. Fun stuff.

    2. Concentrated resources: in PD, ores are only available in the mountains, dungeons, and caves. Wood and animals are only found at the oases. This allows for more 'special' discoveries ("hey guys, I found another iron mountain!"), and rewards exploration.

    Crafting & Constructing
    I want there to be opportunities for the more traditional Minecraft experiences even within the dungeons. Ideally, I think it should be possible (with sufficient exploration/lucky finds) to set up a self-sustainable home base within the dungeon.

    A few concepts to aid in that goal:

    1. Waystations - safe rooms or dwellings, perhaps part of the ruins, perhaps left by previous adventurers. These could have crafting stations, beds, etc.

    2. Biomes - I touched on this briefly in the original spec, but I'd like to have things like underground forests or other medium/large-scale natural features scattered throughout the dungeon. This would provide natural resources like wood, pork, fish, wheat, etc.

    3. Storerooms - abandoned storage facilities for various resources, including tools/weapons

    4. Mega-caves - probably as part of the biome concept; complete with ores, lava, etc
  10. Offline

    Sondre Berntsen

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Dungeon Crawl Stone Soup... : P
  11. Offline

    HSAR

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    If you could override the default nether world creation in Minecraft 1.6, you could use the default portals which would be an elegant solution. Otherwise, I think that #1 is the best solution - because loading chunks when teleporting is a) boring if you have a slow connection and b) a waste of precious server connection.

    Besides, you have 255 or so blocks up and down to play with, so I think even if you expand to 64 overworld 192 dungeon you would still have plenty of space to do mind-boggling tricks of 3D maze-generation.

    These are really great ideas. They introduce another layer to what would otherwise be a straight-up dungeon crawl, and makes the proposed "challenge mode" more approachable.

    1. Great idea. No-spawn areas, or maybe small/medium size spheres in which monsters take damage (think Alan Wake streetlight style)?
    2. Might be a bit difficult to integrate with the dungeon generation, but if you can pull it off if would supplement the first idea in a great way. Don't make them too large though as players will have lots of bonemeal and so could quickly grow lots of trees for a wealth of wood resources. Maybe have them as very rare chambers heavily guarded and far away from any safe area?
    3. Great. Some storage minecarts lying derailed, a few chests and gravel on top of everything?
    4. Generate a few of these poking into the sides and bottom of the map and you have created the feeling of a dungeon falling to the sands of time!
  12. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @HSAR Thanks for the feedback!

    Unfortunately this isn't the case. You have a total of 128 blocks up and down. So it would be 64/64 or 96/32. Getting a bit cramped.
  13. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Haven't played that one, but I did try ADOM briefly (and was horrible at it) :).
  14. Offline

    HSAR

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    No problem!
    Ah, that's right. I would still suggest keeping an overworld on the map, for the reasons I gave. However, you could always generate more levels, I guess. It's all rather inconvenient...

    Although in some respects having a cramped overworld makes a lot of sense. Y'know, since the players are meant to be down in the dungeons instead of playing vanilla minecraft on the surface...
  15. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @HSAR Yeah, I don't think there's a perfect solution. Multiworld is simpler in terms of technical difficulty, but less convenient. On the other hand, there's some cool stuff that could be done with the multiworld angle...expansive ruins, etc. It's probably possible to compress that into a small overworld area; it will just be kind of a funny-looking world ;) (and will have very limited ores).

    Will hold off on a decision on that for now. It'll be a little while before I even have the dungeon part working.

    Additional input from anyone is welcome, of course.
  16. Offline

    Sondre Berntsen

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    hehe, it's basically the same as ADOM, but perhaps with more features. : )
  17. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Thomas Bucher has put together an interesting world generator based on my generator override method: SphereWorld

    Worth a look :)
  18. Offline

    HSAR

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I saw that, but had no idea you did the override behind it. Awesome!

    Maybe you should ask him for the code so you can get your micro-biomes in :)
  19. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @HSAR He's made his code available already, I believe; I had a chance to look at some of it before the first release. He's letting the regular generator do its own thing, then remove everything outside the defined spheres. It's a little bit wasteful, performance-wise, but it avoids the need to write a custom terrain generator from scratch.

    Mine will probably need to be done from scratch (same if I do the compressed overworld); the normal generator is obfuscated, and as a result somewhat nightmarish ;). I'd need to extract portions of the code for specific biomes, then heavily modify those portions to restrict the Y-axis they operated on.

    I'm keeping some of this in the back of my mind though; I have a feeling that to get any kind of reasonable performance in placing these biomes/mega-caves/whatever, I'll need to either 1) enforce a box-shaped volume for such features, or 2) pre-"reserve" rooms (sub-chunks) within chunks that haven't been generated yet. The order in which chunks are generated is unpredictable, so for large-scale features (where the scale is not entirely a byproduct of random processes), you have to either plan ahead a bit (pre-reserve space for the features) or overwrite previously-generated chunk data.
  20. Offline

    HSAR

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    What you could do is pre-generate large open spaces, then fill them in procedurally with different rooms. Boss fights, storage spaces, saferooms, biomes might well all fit some kind of "standard" shape with known (or variable within known parameters) entry points.
  21. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @HSAR Yeah, that's kinda what I've been visualizing with the pre-reserved rooms. Basically I would define an X*Y*Z volume (measured in # of rooms, so 3 rooms wide by 4 rooms tall by 5 rooms long, for example), OR define an arbitrary list of adjacent rooms that constitute an irregular volume. Then, when a chunk is generated, I can do a lookup to see if the chunk contains any reserved rooms, and handle them appropriately.

    Tricky stuff. The box volume is much easier to wrap my head around, but not as interesting (though from inside it, you might not even be able to tell that the biome volume is box-shaped).
  22. Offline

    HSAR

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @Timberjaw: You could achieve a pseudo-random irregular effect buy using X*Y*Z in doubles instead of integers, so that the big room cuts into smaller rooms beside it. By detecting the air blocks one outside the volume, you could feed appropriate data into the generator so that it can create entrances/exits/walls/floors/ceilings/magic.
  23. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Completely unrelated to the above discussion:
    [IMG]
    phondeux and dak393 like this.
  24. Offline

    HSAR

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Awesome!
  25. Offline

    Mukrakiish

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    That is friggin awesome to see. Just wow.
  26. Offline

    Adondriel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Ok so thinking on the terms of multiworld i like the idea like. youfind the dungeon. then once your there there is a portal that takes you to the real thing that is its own world so you can have a lot to work with. and on the main world there owuld be no over world! unless you made it really cramped my idea of a dungeon crawl is a DUNGEON crawl not oh look theres grass and sissy animals roaming up there! i want to spawn in the dungeon and never be able to get out! :D or make it configurable.
    Over-world on: yes/no|true/false
    I love the mazeish thing you have do we get the download for that generator?
    :D
  27. Offline

    Timberjaw

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    @Adondriel Thanks for the feedback!

    Re: the maze generator: maybe at some point. It's not a maze generator right now so much as a random wall generator. ;)
  28. Offline

    Adondriel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    that's what i meant by mazeish, but could you make it into a maze generator? lol that would be awesome! for a time killer. :p
  29. Offline

    dak393

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
  30. Offline

    Adondriel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME

Share This Page