Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Feedback [ALPHA] Procedural level generator - 2D dungeons

Discussion in 'Assets and Asset Store' started by OndrejNepozitek, Feb 27, 2019.

  1. OndrejNepozitek

    OndrejNepozitek

    Joined:
    May 1, 2017
    Posts:
    11
    Hi everyone!
    I'm the author of this procedural level generator library and I finally managed to implement a wrapper for the library as a Unity plugin.

    The plugin is completely free and can be found on github. The plugin is currently in its early alpha stage so you should be prepared to deal with bugs, incomplete documentation, lack of features, etc.. The plugin is also far from usable in production scenarios, mainly due to its performance issues which will be addressed in future versions.

    The main goal of this thread is to gather any feedback from people who decide to try the plugin. I'm interested in anything you have to say about the plugin. Do you think that there's a place for such plugin in the Unity ecosystem? Is there a missing feature that's a dealbreaker for you? What would you like to see in future updates? Is the plugin easy to use? Etc.

    Based on your feedback I'll decide whether to continue developing the plugin or not.

    If you find a bug, you can report it directly to the github issues page.

    Relevant links:
    - installation
    - documentation and examples
    - source code of the plugin
    - source code of the underlying algorithm
    - my blog about procedural generation


     
    Last edited: Feb 27, 2019
  2. AHA1ZINT

    AHA1ZINT

    Joined:
    Jan 3, 2016
    Posts:
    12
    Great job its kind of you to make it free
     
    OndrejNepozitek likes this.
  3. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,314
    Hello,

    Thanks for this very interesting free asset :)

    I just had a quick view in the documentation and saw you can use a seed and later use the same seed again so you would get the same result, Right?

    I am working on my chunk based game. Think of it as minecraft, chunks are being created dynamically in real time around the Player and in front of the Player etc.

    My world is around 6x6 km large and 250 meters high.

    I would like to have a huge Underground dungeon area (it would be nice if it would be over the whole world under the Surface). I would like to create a random seed for it when creating a new world.

    But since I am creating the world in runtime using only stored seeds for height etc to have the same whole world created again later I would use something like this:

    ushort block = GetUndergroundBlock(worldX, worldY, worldZ);
    (of Course with a dungeon seed in Background, Maybe more parameters)

    Block would be a Zero for empty, and a 1 for wall. That would be great!

    Even greater would be 1-10 for different walls, 11 for a torch and 12 for a Monster and 13 for a treasure lying on the Ground.

    Can your asset be used this way? Even if it is just 2D, can it be used to get a 2D "section" this way I can "pump" up 3 meters high to get my 3D dungeon this way?

    Thanks a lot. Very interesting :)
     
  4. OndrejNepozitek

    OndrejNepozitek

    Joined:
    May 1, 2017
    Posts:
    11
    Hey!
    Unfortunately, I think that this asset is not the best choice for you.

    Reasons:
    - You don't seem like you need/want to control the high-level structure of generated dungeons, which is the main focus of this asset. In such a case, it's better to use simpler (and often faster) algorithms.
    - It's not possible to retrieve a block type for given coordinates without generating the whole dungeon. It's not even planned in the future because the underlying algorithm simply doesn't support that.
     
  5. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,314
    Thanks for the info :)
     
  6. foobraco

    foobraco

    Joined:
    Oct 20, 2012
    Posts:
    12
    I just want to say thank you for this asset @ondraN! We've been using it as the base of our procedural generated levels and the way the pipeline works has made it very flexible to work with! Are you planning to continue the development of the asset?
     
  7. OndrejNepozitek

    OndrejNepozitek

    Joined:
    May 1, 2017
    Posts:
    11
    Hey! I'm glad you like the asset. Improving the underlying algorithm (and probably also the asset itself) should be one of the goals of my Master thesis. However, I need to deal with some other projects first before returning to this asset.

    I'd be happy to hear any feedback on this asset. Suggestions, possible improvements, etc..
     
  8. foobraco

    foobraco

    Joined:
    Oct 20, 2012
    Posts:
    12
    Have you considered moving the generation to the new Job System to improve the performance?

    Also, do you have any idea what would be a good approach to construct a minimap out of the layout? I know I can access the sequence of rooms, but is there a way to know the sizes of each one with the current standard Payload?
     
  9. BIGTXY

    BIGTXY

    Joined:
    Jan 20, 2017
    Posts:
    7
    Thank you ondraN for making such a great plugin!. I am developing a 2d-roguelike dungeon game for my studio and it really helps me boosting up my developing process.

    Just some thoughts, I saw you are trying to make the corridor extendable (as in not need making prefab), but I think making prefab for each corridor is actually more convenient for sometimes you don't want the corridor to be plain but with some traps/decoration. It is just my own opinion:0.

    Also, im trying to integrate your plugin with Unity's new addressable system to load rooms since it was just out of preview, will let you know if I have made any progress :).

    I will provide more useful feedback for you in the future, thanks again for the great plugin.

    Regards,
    Bale
     
  10. OndrejNepozitek

    OndrejNepozitek

    Joined:
    May 1, 2017
    Posts:
    11
    Thanks for your feedback!

    The reason for wanting corridors without special prefabs is that it gives the algorithm more freedom when laying out the dungeon and therefore making the algorithm faster (it is better for the algorithm to choose from 50 more generic corridors than from 5 hand-made prefabs). And I think that such corridors don't have to be plain - you can always apply some postprocessing to place traps/decoration, but you would have to implement that yourself. The idea is that we may want to have hand-made rooms but do not care that much about the shape of corridors and rather want to have faster algorithm with a larger number of different corridors. But it's totally up to you. You can always choose what's best for you and do it that way.

    It'd be great if you could share your developing process and how the plugin helps you achieve your goals. Because as I'm not a game developer myself, it's quite hard to imagine how would be the plugin used in a real life scenario.
     
  11. starfoxy

    starfoxy

    Joined:
    Apr 24, 2016
    Posts:
    183
    hey @ondraN really great work you've done here! I just jumped in today and am loving your asset. Just wanted to say thanks. :) I will keep you posted as I plan on using this pretty extensively.
     
    Last edited: Nov 25, 2019
  12. OndrejNepozitek

    OndrejNepozitek

    Joined:
    May 1, 2017
    Posts:
    11
    Hey! I'm glad you like it. I'm now working on improving the underlying algorithm so any feedback is appreciated and may help shape the future releases of the algorithm/plugin.