[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.

Thread Status:
Not open for further replies.
  1. Offline


    Been some time...has this been forgotten about?
  2. Offline


    @Mukrakiish Not forgotten. I've been waiting for the 1.0 release. With so many big changes, and everyone playing the RCs, it seemed best to wait a while.
    Tanite, phondeux and HSAR like this.
  3. Offline


    Ah, good stuff.
  4. Offline


    Glad to hear it!
  5. Offline


    Update! v0.0.3-PREVIEW has a number of improvements over 0.0.2, including better room editing, better performance, and support for some special blocks (blocks with data, like colored wool, torches, etc).

    This version also includes a very basic starting room library (if you don't want to use it, don't copy the dungeonator folder, just add dungeonator.jar as usual).

    MAJOR CAVEAT: The majority of the work for 0.0.3 was done before MC 1.0.0 came out. I have done a quick testing pass to confirm that the basic generation and room editing functionality is still working, but I have not done thorough testing. As always, use at your own risk, and please, please, please, do not use this on any server instance you plan on using for anything else.

    • Minecraft 1.0.0
    • CraftBukkit 1509
    • JNBT 1.1
    Download v0.0.3
  6. Offline


    Is it backwards-compatible with CB1337?

    It's great to see progress. I'll see if I can run some tests tonight!
  7. Offline


    @HSAR I have no idea, sorry. I jumped straight to the very latest build; I believe 1337 is for MC 1.8.1. There were some changes to the ChunkPopulator interface in particular that may cause trouble; I'm not sure when they were added.

    Are a lot of people still on the 1.8 versions?
  8. Offline


    Our live server is on 1509, but I still have 1337 for testing as it's more stable. However, I got the impression from your post that you built this for 1.8.1, so I wondered whether it would be better to test on that.
  9. Offline


    @HSAR Nope, it's built for 1.0.0 (CB 1509).
  10. Offline


    Some early work on room theme palettes for automatic material translation: http://dev.bukkit.org/paste/4308/

    Basically the idea is that you can flag a room as available for multiple themes (e.g. "default,wood,frozen"), and Dungeonator will instantiate the room in the generator with key materials converted to their thematically appropriate counterparts. Thus you can build a room once, and have it appear in multiple forms (with different materials) with no extra work.
  11. Offline


  12. Offline


    Got a few questions;

    Would you happen to have some screenshots; also, is this WGEN?


    I had an idea, where if you enter a certain zone with a party for example, it teleports you to a:
    --> New Generated World (Which would be whatever you make the dungeones spawn x-z, or have pre defined areas for dungeons
    -----> So new "world" temporarily, once the map is beaten, they all get teleported back, essentially.
  13. Offline


    @BioRage This version mainly added performance and functionality improvements, so not much visual difference. The full screenshot album can be found here: http://imgur.com/a/C3DZn

    I'll be adding some more screenshots as I build up a more interesting room library. If anyone currently trying out 0.0.3 has added some interesting rooms or has a screenshot to show, feel free. :)

    0.0.4 will have widgets and room sets (and maybe the aforementioned automatic material translation system), so that should be more exciting to look at.

    The zone-based teleport is planned. What I'd like to do is extend the world generator for normal worlds to periodically add ruins that have teleport zones into the dungeon world.

    I've considered instances (temporary dungeons) as well. I'm not sure if a plugin can delete a world; if it can, that's fairly simple. Are you suggesting restricted X/Z bounds on the instanced dungeon as well? That might be more difficult.
  14. Offline


    So currently it just adds to the WGEN right? Or do you self spawn things?

    What I meant by X/Z is that they are all different dungeons;

    however, if it's possible, you can bound it to the zone based-teleport; for the instances... if instances were applicable.


    May have an idea on deleting a world... this way it could be less server intensive...
  15. Offline


    @BioRage It's WGEN, yes. There are some editor commands for loading/editing specific rooms, but it's primarily intended to be an infinite automated generator like any other.
  16. Offline


    Here are the planned features for 0.0.4:

    My goal is that 0.0.4 will actually be roughly playable. The primary features are:
    • Widget support (nodes, widget editing, generator instantiation)
    • Room set support (creation, editing/loading, generator reservation, instantiation)
    • Automatic Material Translation (AMT) (editor previewing, save pre-caching, generator selection)
    • Chest Loot (manual item support, editor loot flagging, generator loot instantiation)
    • Improved starting library (better up/down exits, passage collection, generic room collection, chamber collection, widget collection)
    I'm still proceeding with the assumption that I'll be doing all of this myself, but if any reasonably experienced plugin devs out there are interested in:
    • Room/Widget building for the library
    • Helping out with the coding tasks
    I would definitely be interested in talking to you. :)
  17. Offline


    I'm interested, but "reasonably experienced" doesn't apply to me. Sorry. :(
  18. Offline


    @HSAR You may be able to help with room/widget building; that doesn't require coding knowledge, just some in-game commands for using the editor.

    I need to finish the AMT, room sets, and widget support before it will really be worthwhile for anyone to add to the library, but if that sounds like something you might be interested in participating in, let me know and I can give you a heads-up when 0.0.4 is a bit closer to completion. :)
  19. Offline


    Some pictures from the early AMT progress, converting from the Default theme (mostly stone) to the Wood theme.


  20. Offline


    The AMT functioning in the generator:

    Bonus pic. This is what happens when an uncaught exception occurs in the generator: http://i.imgur.com/1rjEL.jpg
  21. Offline


  22. Offline


    First picture reminds me of the Skylands of old.

    It looks like progress is pretty steady, keep it up! I've taken a fork of the main branch, but to be honest it's more to take a look at what you're doing; the probability of me doing anything useful is very slim.
  23. Offline


    @HSAR Yes, I've been trying to be a little more rigorous about making progress every day or two. I had a ridiculously busy fall and will have a very busy winter, but if I don't keep working steadily this will never get done. :)

    I'm documenting my progress on the issue tracker. Anyone who wants to provide feedback on the planned features is welcome to.

    A couple more crazy generator images:

  24. Offline


    This is amazing, hell, that looks like Fjord from WoW :D
  25. Offline


    Im having problems
    I put both dungeonator files into plugins folder and created a world using multiverse with the commands
    /mv tp world -g Dungeonator

    when the world was created,it was just a normal world...
  26. Offline


    Dungeonator is not directly multiverse compatible at the moment. It overrides the default world.
  27. Offline


    Test of the Room Set feature in the editor:
  28. Offline


    A (boring) 2x1x2 room set in the generator!
    This is a bigger deal than it might look. This feature took about 12 solid hours of coding yesterday and today, an has been one of the biggest technical hurdles since the original room generation process. Getting a room set from concept to population requires:
    1. Editor support. Room sets are semi-arbitrary volumes. A room set can be 2x2x2, 10x1x3, etc. The editor adds full doorway and corner hinting for the entire room set volume. Doorways can be specified per-room (though specifying doorways for internal rooms would be silly).
    2. Saving and loading. Room sets are stored in their own subfolder (per set) with an additional meta data file to store set bounds.
    3. Room reservation. As the generator does its thing, it "looks ahead" for spots it can drop room sets in the future. It does this by randomly selecting a few points at a distance from the currently generating chunk, selecting a few random sets, and comparing the bounds of the sets to the available space around the target chunk. If there's enough room, it stores the room coordinates for each room in the bound, to let the generator know that when those chunks do eventually come up in the generator, it should prioritize the reservations over the random room assignment.
    4. Room population. The generator checks each chunk for reservations before selecting random rooms, and pulls the appropriate set files.
    Widget support is underway. Keen readers will recall that there are three major features planned for the next version: 1) Room sets, 2) Widgets, and 3) a better starting room library. #1 is functioning; #2 and #3 are underway.
    You can see the status of the current milestone here: https://github.com/Timberjaw/Dungeonator/issues?milestone=6&state=open
  29. Offline


    Literally amazed by this project, great to see its still going, and getting closer to being usable!
    Sondre Berntsen likes this.
  30. Offline


    Widget progress:
    • Widget editor: new, save, load, multiple sizes, hinting
    • Node editor: new, add, remove, move, autotarget, save, load
    • Generation: random widget selection (not theme-aware)
    This just leaves the starting Library as the last major barrier to releasing 0.0.4 (and a million tweaks and fixes, of course). I'm pretty excited. :)

    The leafy bits sticking out of the floor are widgets (they're not a part of the room itself). Not very exciting widgets, but widgets nonetheless. This room has 2 'tiny' (2x2) widget nodes.

    Feature Cuts:
    I've cut a couple of the technical features from 0.0.4 while I consider options: separate library and active databases, and exact door matching.

    For the databases, it's very convenient to be able to JOIN in results to get the library information along with the active information. There are workarounds, but they're time consuming.

    For the exact door matching, it's just an issue of math. To allow exact door matching, the Library requires 2^14 (16384) rooms, which will require a somewhat unreasonable amount of effort, to say the least. I'm considering how best to approach this, as I want to minimize the number of dead-end doorways. I may prioritize Up, Down, and NESW, and put less importance on NNE, WSW, etc.
Thread Status:
Not open for further replies.

Share This Page