Search Unity

Procedural Dungeon Toolkit - Dungeon Themed Procedural Generation Toolkit

Discussion in 'Assets and Asset Store' started by r3eckon, Sep 23, 2016.

?

What kind of update would you like to see released first ?

Poll closed May 13, 2018.
  1. Prefab placement helper GUI ( Easily editing the generation point of objects without code )

    8 vote(s)
    33.3%
  2. Generation rules editor GUI ( Editing the current generation parameters for custom levels )

    5 vote(s)
    20.8%
  3. Level type selection GUI ( Easily selecting , adding , removing saved types of levels )

    2 vote(s)
    8.3%
  4. Add more assets to the current level ( Chests , Rare Items )

    3 vote(s)
    12.5%
  5. AI manager script ( For mob pathing / spawning )

    5 vote(s)
    20.8%
  6. Other / Post in thread

    1 vote(s)
    4.2%
  1. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
  2. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    An user stated in a review that the asset could use extra documentation on classes especially class diagrams, so I made a simple graphical representation of the main generation algorithms of the toolkit and description of the flow of data within it.


    And yes, its been made using paint :)
     
  3. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Just sent version 1.15 of the asset for review, it includes various fixes regarding memory usage when generating multiple maps, error handling when trying to generate a map without any prefabs and a new feature for the DrawMap.cs script which enables a map drawing object to draw a specific floor of the map only, enabling for viewing of every floors all at once or even procedural floor plans textures that can be relative to the map instead of the player ( perhaps for office building generation containing a "emergency exit" play with a layout of the current floor ).

    It should release this week if everything goes well!
     
  4. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Asset denied because apparently the Dependencies package "obscure the content of the package". This is the first time I have an issue with this .unitypackage file, I will send a new version of the asset that should work without it shortly but it might involve more drag and drop than before.
     
  5. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    New version is already live :)
     
  6. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Hello everyone, this is going to be a quick report on what I have been doing this past month! I have taken a small step back from the actual asset and have been working with external libraries and languages to figure some stuff out before I can implement the real version in the Generator. Let me explain.

    Besides some minor improvements to the overall algorithm such as memory usage drops and other fixes, I have also been working on a new, much cleaner level generation algorithm ( something thats been on my plate for a while now, I admit ). For instance, rooms are currently very messy and the layouts are quite limited or similar looking if you prefer.

    Now for that purpose and so that I can test the tile map generation in an instantaneous manner I have turned to a completely Unity independent renderer written using LWJGL/OpenGL. The speed at which maps are generated that way is basically instantaneous and allows for randomization of the branching/ending/room/stair placement parameters upon every generation, which allows me to immediately see if my algorithm is delivering wanted results. This also allows me to quickly test new methods of generation for things like office buildings, actual mazes, having room based progression in maps and basically any type of tile map I can come up with.

    I may very well share this tool once I am done so that you guys can also go and try to create your own map generation algorithms without having to wait for the environment to build around the tile map.

    Writing this program gave me an idea for the map drawing using a shader. Indeed, the map drawing script apparently uses a lot of CPU just to draw this single texture, especially when drawing large maps. A shader instead of a CPU based method of rendering should improve the performance of map drawing even in large maps!

    I have to admit however, shaders still give me a bit of a headache so this might not make it to the next version of the asset, but what is sure to make it is the reworked map generation algorithm, the main focus of this next update.

    I'd like to thank everyone who supported the development of this asset and see you all soon :) Remember to send me an email at r3eckon@gmail.com if you have any question or suggestions for the asset !
     
    StevenPicard likes this.
  7. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a quick video I made showing an animated version of the tile map generation algorithm I have been working on. It's still a little messy but the room generation is much cleaner than before.

     
  8. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    If anyone wants to have a look at the new generation algorithm or even play with this map generator, I have created a github repository for this purpose! I updated the repository last night to include some new features and should report soon enough with a video showing off what different parameters combinations can produce.
     
  9. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Hello all, just here to share some more progress on the new tile map generation algorithm. I'm basically done remaking the same level generation we currently have inside of the asset, except we have a little more customization options available!


    First of all as seen in the above video, the ability to induce "turning" instead of branching, either randomly or every time a corridor wants to branch. We also have the "priority" toggle allowing corridors to generate within eachother, which makes for some very dense corridors and open areas inside of dungeons.

    Next up are the usual Stairs being generated, those work the same way they did before and spread the dungeon to more floors of the levels. Since making the video I have added another customization option, which influences the usual direction stairs take when placed.


    Those stairs are represented by gray squares in the above video, and a one second pause has been added before and after the level moves up or down a level to make sure it is easier to see what actually happens when a level is generating.

    One of the most important fixes to the old version of the algorithm is the lack of impossible to access rooms. Some of them still generate on occasion, however most of the cases making this happen have been removed making the levels much cleaner than before. I still have to fix them entirely to make sure it actually never happens, but I think this is much better than before.

    This new algorithm will soon be added to the dungeon generator, likely in the next update alongside a couple UI changes and fixes I have been working on!
     
  10. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Hello again, back with a new feature I am sure you guys will enjoy :)

    This quite simple yet incredibly powerful addition to my recursive tile map generation algorithm is the ability to make custom "room models" and specifying a point which is to be attached to the corridor. The algorithm also rotates the model in the right direction, the shape or size is irrelevant.


    In this demo there are 4 types of custom models randomly being added:
    - Big "Boss" Rooms, in yellow spanning 2 floors
    - Big "Closet" Rooms, in green with a pattern
    - Tall "Closet" Rooms, in green spanning 3 floors
    - Small "Closet" Rooms, in green

    Now I say "room models" its because I mostly used it to make room like additions to the map, however the tile map data added by this new piece of code can also be simple Corridor areas with a particular noticeable feature you would want to show up from time to time. It's also possible to mix every tile type together if this is what was required, meaning its possible to create extremely complex models.

    As you can see in the video, multiple floor models are also possible and work just as great as the other models. Currently, making models is a painful process of dealing with arrays manually. In the asset, the models will be created using a GUI utility very similar to the one already in place for map editing.

    Basically, you will soon have the ability to create custom models for rooms, corridor areas, stairs, and anything you can think of to be placed around the level ! This feature took me quite a while to get right, and the implementation in the Asset might take another week or two to properly integrate along with some other changes, but I believe this new feature will be a most welcome addition to the asset !
     
    recon0303 likes this.
  11. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    can you be more clear, basically? so will I or anyone be able to add our own walls, flooring , chests what ever ? This is must for me. I had this asset on my wish list for some time,but I been waiting to see if this gets added and how well it works, no offense I bought to many assets for people to claim they are going to add something and it never happens, so ends up being wasted money so I tend to NOT buy assets if something is NOT in it yet.

    Once I see this done, I will be happy to buy it. as I been wanting to for some time time.
     
  12. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Well this is has actually been a feature for a long time now :) The ability to use your own models and textures was the main focus of the asset at first and a way to completely customize where and how your own objects are placed has been added back in version 1.7. From this thread's OP :



    This interface lets you add object slots, give them a name and select a prefab. Then you can make your own requirement pattern for the object ( for a wall, you only want to add that object where a walkable area meets a non walkable one ) and set up the translation setting to place the object correctly ( for that same wall, the object must be pushed towards the empty area so that it blocks the hole ). Floors and ceilings are even more simply : every walkable area has one of each, both translated towards the bottom and top respectively.

    To add props to rooms, simply create a custom object with your chest prefab and chose the type of room you want the chest to generate in as the center tile in the requirement pattern. You could also detect an empty tile and translate the chest towards it so that it's resting against the wall, or detect a corner of the room and add the chest at an angle. Item Spawners are also a feature of this Asset, so your chest can easily generate items that the player can pickup, this part requires a little programming however, as it would be impossible for me to know what you want your items to do to your player.

    You should go watch my youtube tutorial on how to use the asset, it should give you a good idea what what can currently be done with it. In it I basically show the entire process behind placing torches inside the layout using custom objects, and I also expand on how to deal with multiple objects trying to generate at the same spot.


    Now, this new update instead focuses on the Tile Map part of the environment generation process, allowing users to make their own room shapes. Rooms are currently all procedurally "grown" inside the available space. This new way to add rooms makes it possible for "Boss Rooms" with distinct shapes or features to be added in their entirety. Basically you make a room model in a grid, and the program will place that model just like any other room, except it is premade instead of being randomly generated. This update wants to combine the hand crafting ability of level designers to the flow of a procedural level layout, making the best use of both worlds.
     
    recon0303 likes this.
  13. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    Oh ok, sorry about that I must of miss under stood. I will give it a whirl and support you. This is for a very future game, but I would love to start messing with it during my free time.
     
  14. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    That's alright no worries :) I too would want to make sure something I buy can accomplish the task I expect it to and my initial explanation about this new update was a little unclear on the concept of what a "model" was so I understand where the question was coming from if you have yet to read the previous posts from this thread.

    If you have any more questions or doubts don't hesitate to ask them here again! You can also contact me directly at r3eckon@gmail.com to reach me faster!
     
  15. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    I am once again back with a new feature. This one is a simple quality of life feature that some of you might find useful : the ability to remove dead-ends! Here are 2 examples of this new feature used to make the levels look much more enjoyable to navigate without a map.

    Example 1 - Before


    Example 1 - After



    Example 2 - Before


    Example 2 - After

    As you can see some corridor loops that are technically dead-ends still remain, however entirety of pointless corridors giving you no choice but to turn around have been removed.

    I'm really looking forward to finally adding this new tile map generation algorithm to the dungeon generator! I cant really think about much of anything else I could add to this generation algorithm that involves complex programming so this might very well be the next thing I do. :)
     
  16. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    To anyone wondering, the [Sale] tag is because of the impending price increase due to a major feature update I have been working on throughout the summer, you can view the previous couple posts for more detail.

    The asset is currently selling at $25 and will go up to $40 some time this month after the asset implementation is completed and tested, so grab it quickly if you want to get the new features and all future updates for a lower price!
     
  17. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Another quick progress report! The random room generation algorithm is finally in a "perfect" working state, meaning it only generates accessible rooms! I figured out the problem, which was due to the algorithm not always removing offending rooms depending on what happened to cause them to stop growing.

    This left a very tiny amount of small room bits that would appear to be entrance-less, compared to the old algorithm which left many inaccessible rooms of various size all over the dungeon, causing some unnecessary objects to generate.

    I still wanted to fix the problem despite it being much better than before, so I implemented a simple check that tells the algorithm to remove the room entirely if the current room has not yet generated in front of it's respective entrance, regardless of what causes it to stop growing. As I said, right now the algorithm is now "perfect" and does not generate any inaccessible parts! I have checked over 500 maps and none of them had any problem!

    I think this algorithm is finally ready to actually be implemented in the asset :) I should come back in a little bit with progress updates for that!
     
    StevenPicard likes this.
  18. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a sneak peek at the UI integration of the new tile map generation algorithm, as you can see it is somewhat similar to the old one, however it includes the ability to save and load settings to external files before applying them to the generator, allowing for easier storage and sharing of generator settings! You can also switch back to the old algorithm at any time.


    I still need to fix a couple things about the new algorithm's integration such as stairs since types have changed slightly, I also have to build entirely new stuff like a UI window based on the Map Editor to allow you guys to make your own room layouts and unlock the full potential of this new algorithm.

    I want to say the update will release this week, but it might take up to the next one if I encounter any major problems, but so far it's been going very smoothly :)
     
    StevenPicard likes this.
  19. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is another sneak peek at the new UI, this time we have the Model Editor Window, used to create your own room "models". The UI is fully working and is currently able to create, save and edit models to files.

    I sense I have to make the distinction between 3D models and those models : Models are simply tile map patterns which are placed as pre made rooms in the generation process. The earlier posts go in more detail through this concept and how it works, my github repo ( also linked above ) for the generation algorithm also contains a good explanation of the role those models play.


    As you can see it is quite similar to the Map Editor Window and works very similarly, however you cannot move through the buffer in x,y. Instead, since most rooms should not require over 15x15 large areas, the whole model is shown for an entire level. Of course you can go up and down levels since rooms can span multiple floors. The Tile Type currently used as a brush can be added to the Compatible Neighbor Types or the Types To Check lists, which are used by the model placement algorithm to survey the map space for any tile types it should avoid.

    Quick edit since I forgot to mention something. You remove types from the lists by simply clicking on them, however the "Empty" type in the Compatible Types list cannot be removed. This is simply because empty tiles are the area we are allowed to use to build levels. If not present, models featuring types to check would never generate. ;)

    To quickly explain the usage of those lists : types in the "Types to Check" list will check that their neighbors are exclusively types that are in the "Compatible Neighbor Types" list. This can be used to ensure that models will not connect to corridors or other rooms, except from particular types, which would be the entrance in the case of a room.

    Again I still hope to be able to push this update and have it release this week, no big problems were encountered during the creation of this UI so things are looking good :)
     
    Last edited: Sep 19, 2017
    StevenPicard likes this.
  20. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    I'm back once again to show you guys the model editor in action, used to generate rooms that span multiple floors! It will allow you to do the same thing as I did with this simple room model featuring a stairwell to access the top floor.

    First let me show you what the room looks like in the model editor :


    As you can see this is a rather simple model. I did not use avoidance lists since I only wanted to test if models correctly generated, therefore preventing some possible rooms from appearing would not help. Using Empty tiles I have made different patterns of holes on each floor to make them easier to notice. One thing to note is that the orientation in which you draw this model is important, but I will address this in more detail when I write a tutorial on how to use this new editor.

    Without more delay lets look at that room inside the dungeon. Here we have the first floor of the test model, with its distinct wall pattern and stairwell :


    Next is the top floor of that room, with its different pattern :


    Finally here is a small generated map containing two types of room models :


    As you can see the algorithm can freely choose between multiple models at generation time, as long as you add some to the list!

    This whole feature is actually really fluid and simple to use compared to how powerful it is, I'm actually really enjoying the ability to create rooms with different patterns and see them appear instantly in the randomly generated dungeons . I'm sure you guys will enjoy it too when I finally release this update :)
     
    StevenPicard likes this.
  21. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a quick video to show off the model editor in action !

     
  22. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a little something I made after a reddit user mentioned having made a similar UI to the map/model editors using rectangles, I had a go at it and it works very well! Here is an improved version of the map editor using this very suggestion. The major improvement besides looking different is the fact that you can drag while holding down the mouse button and it will draw on the map editor :)


    I may end up using this new map buffer rendering method in the Model Editor as well, but right now I want to focus on finishing up the last new features and write the needed documentation to finally send this massive update for review!
     
    StevenPicard likes this.
  23. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Documentation for this new version has finally been completed, I'm going to be taking tomorrow making sure the asset is free of any obvious bugs or annoying quirks, probably make some new screenshots and store page media for the new version and will finally be able to pull the trigger on this new update !

    If anyone wants to read the documentation pieces in the meantime, here they are :

     
    Last edited: Sep 25, 2017
  24. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    I have actually took some time already and finished bug fixing the asset and updating the store page, therefore the asset has been sent for review and should be releasing some time soon :)

    Also, here is a new standalone build featuring two room models : Link
     
  25. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Good news everyone! The update has been released :)
     
  26. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    If you have any problems with the asset regarding new features please let me know as soon as possible! I am actively looking at the thread / emails to make sure none of you guys are left in the dark if you have questions or otherwise.

    I hope you all enjoy the features I worked on throughout the summer! I think you will find they add a lot of possibilities for more complex level generation!
     
    StevenPicard likes this.
  27. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    I have just added a bit of stuff to check out a more fleshed out room using the new algorithm, there is this new pillar prefab and some old prefabs I had turned off in the previous versions are in there like the barrels, tables and a different type of cell bars. I added two new types of item being coin stacks, you can see the medium and big stacks on this screenshot. The HUD is turned on so I could test if the custom amounts of coin each stack delivered was correct.


    I may very well try to create a more convenient way to add items to the generation process using the custom editor for an upcoming update. The current process still requires code editing on that regard and being one of the last parts of the asset needing programming skills, this seems like a good thing to add next. It will also make it more convenient to me and everyone else to add items, since the current process is quite long for its relative simplicity.

    If the next update is about item generation, I might also tackle another type of items I had on my plate : Unique items that generate only once in the layout. Those unique items could enable player features like the oil lamp and the map, so that maybe the player does not start with them and has to find them. Seems quite simple to add but in any case, I will work on this and report back when I have something new to show off.
     
    StevenPicard likes this.
  28. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Hello everyone, here is a quick progress report on the new item generation system. First of all let me begin by saying that I cannot remove the need for some amounts of programming when it comes to item generation, at least for interactive items. The simple reason being that each item has its own gameplay relevance only editable through code, though very simple code in most cases.

    Let me explain. Currently, the script "PlayerInventory.cs" contains a couple variables holding the amount of coins, keys and oil bottles the player has picked up. My items simply increment those variables according to their type when they are picked up. Those behaviors are currently defined in the script "ItemManager.cs" if you want to have a look at them. Bigger coins stacks simply give more coins to the player when it is picked up. Special items and gameplay relevant items that could enable features like the oil lamp and the map, start cutscenes or trigger bosses, etc, can also be programmed. Since I cannot know what you guys want to do with your own items or what I would want future items to do, we need the ability to program each item's behavior accordingly.

    Below is the new script that manages custom item behaviors when they are picked up, featuring my old items as examples. Switch statements are rather simple to understand and my added comments should guide you through the process.


    As you can see I have placed a template case which you can simply replace and fill in with your variables. The ITEM_TYPE is to be replaced with the custom name you can give to each item in the GUI.

    The line that finds the player's inventory and then asks to add a component to increment would be where you add the variable holding the amount of this particular item, in case this is what you want to happen when the item is picked up. You could also add custom item behaviors there.

    Fear not : this "What happens when item is picked up" script is the only part of custom item creation that requires programming, which is also the most complex part of creating items in any kind of game. Everything else is going to be done using the GUI.

    Speaking of, lets have a look at that GUI. As you can see it is quite similar to the Custom Object GUI. Note that there actually is an "Add Slot" button, but it is currently hidden.


    Here, the numbers are the item's "Type" variable. This type is the arbitrary name you can use to check using the code I posted above. In the GUI this name can be written however you like, but keep in mind that when writing custom item behaviors the type is in all caps ( case insensitive checking ), therefore the usage of uniquely written types is advised. The "Prefab" slot is the actual prefab of this item, working pretty much exactly like the current item slots or custom object slots. The "Chance" slider is used to give make some items less likely to appear than others. Finally the "Unique" toggle can be used to create items which only generate once in each level. This feature could be used for more gameplay relevant items.

    This GUI is not complete yet as I need to create a space to edit the list of item spawn types this item can / cannot generate on. This missing feature is used to make sure items such as candles only generate on certain spawners, which you can set to a particular type. Another missing feature is a simple toggle to set the object as pickupable or not, once again for things like the table top candles which are only decorative items.

    Finally, this new feature makes use of persistent data to store information about each item so that is is usable by standalone builds. Like most persistent data used by the Asset, the list file can be found under "Resources/PDTFiles/Saved Data/" as a file named "CustomItemList".


    I hope you guys are as excited about this new feature as I am! Creating custom items of all kinds should become much easier soon enough! Creating decorative items requiring absolutely no programming and actual interactive items only needing a minimal amount of scripting should allow everyone to add more stuff to their levels :)
     
    StevenPicard likes this.
  29. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a quick view at what will most likely be the final version of the Custom Item List GUI ! The 3 items being tested using the GUI are also working and spawned as intended. They are marked as "Unique" meaning that Custom Item Spawners can only spawn one of each type within the whole layout! As soon as an unique object is generated once, it cannot generate again. This feature is intended to be used for rare and more gameplay related items. Anyhow, here is the GUI.



    As you can see I have cleaned up the layout a little bit and added a title bar to each column instead of having inline labels, as those took more space. I have also added a "Pickupable" toggle to make sure some items are not interactive.

    I have also decided to deal with spawn type compatibility using a single enum file that is simple to edit to add more types if you wish to. If you simply want to add more items to my existing props, this drop down features every type you need including "Any" to generate that item everywhere, "Any Surface" to generate on a surface like a table or drawer as well as "Open Surface" to make sure the surface is a table/drawer with an open top for candle generation.

    This feature is much simpler than what I had in mind yet delivers the same usability. If you are creating a custom spawn type for an item that will only go on one type of props, it will not be required to do much more than adding this new type to the CustomItemSpawnType enum and making sure your item is set to generate on spawns of that type, which will instantly appear in the GUI after it is added. To create more complex override types that can accept multiple item types yet must reject others, some basic code additions will be needed. Once again the edits are very easy, the code has been heavily commented and templates are provided to make sure even non-programmers can manage.

    Once again I will be making sure the needed documentation is written to teach you guys everything you have to know about spawning custom items. This update should release some time next week, given that I finish it this weekend like I planned to.
     
  30. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    This post is more directed towards potential yet to be users who stumble on this thread but, would anyone be interested in trying out a lite or free version of this asset?

    I have been considering this for a while now since the price got to above $20 and even more now that the price is $40, I think it would be a nice way to get more people interested in the asset by allowing them to try out a couple key features for free.

    The lite version could allow you to play with the map settings to create different layouts, but entirely remove the ability to change prefabs using the custom object editor. Anyone who would still be willing to modify the program could do it by doing all the programming themselves while paying customers get the full UI and customization potential of the asset, those features being what I worked on for a year and what got the price to where it is right now.

    In any case, let me know what you guys think about this!
     
  31. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    The next update will be coming a little bit later than expected, today I spotted a bunch of stuff that needed to be fixed and decided to tackle some quirks I have wanted to address for a while now. I thought the new feature could probably wait since some of those fixes are quite important for the asset to work as intended.

    First fix is that I've reduced overhead on the door opening script by queuing the opening and closing operations instead of trying to open/close doors until it works, but it is still buggy on top floors ( reason still unknown ). This is the most annoying problem for me because even the profiler seems to fail at revealing what script induces lag when doors are opening.

    Another fix is that occlusion culling now seems to work and does a better job at keeping FPS high than my custom object pooling script. This script actually caused a 5-10 FPS drop on my computer, so I have added a toggle to entirely disable this script, essentially loading the whole dungeon and letting unity's occlusion culling deal with hiding stuff that cannot be seen. It actually seems to work better in some cases and the toggle can be useful for people who wish to see the whole layout.

    Next up is something that has escaped my eye for a while now, custom object requirement patterns used to be incorrectly turned into the Southbound variant. You can test this by creating a custom object, adding any prefab and using the pattern pictured below. This pattern should only generate the object in room corners, while a particular side of rooms ends up being filled with the object with no respect to the pattern. This is due to the fact that the east and west neighbors were not correctly switched to create the Southbound variant.


    Finally, the tile map models were also incorrectly rotated. The Eastbound and Westbound rotations produced models flipped along the horizontal axis due to the "crawling" of the original model happening in the inverted direction vertically. Since the models I used for testing were all symmetrical, rotating those models showed no apparent problem with my algorithm. Using a non symmetric model revealed how horizontal versions of the models were flipped, and how they could not be achieved by "rotating" the northbound version of the model. Simply inverting the variable's direction worked perfectly at creating well rotated models. You can take a look at the actual change on this github commit page if you wish to check it out or implement it right now in the event that you needed it now.

    This is all for now, I still have to write the documentation for the upcoming version before I can send this update. It may or may not come this week, this depends on when I'll actually send it and how rough a week the store validation team is having :)
     
  32. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a look at the item generation system being put to work! I have ported most of the items to the new generation system and I have to say it's much easier to deal with. The settings used are causing every open surface to always generate candles if nothing else is going to spawn so this is why the room is filled with them.



     
    StevenPicard likes this.
  33. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Documentation is completed and available for anyone to read at this link , the asset has also been sent for validation earlier so you can expect the item generation update to come any time soon!
     
  34. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a spooky looking fireplace model I made today, wanna try to build the lighting atmosphere and model diversity around the level. Sadly this wont make it in the upcoming update, but I actually have a bunch of stuff to add in the near future so another update might be coming before the end of the month including this model!


    This is what it looks like in game! I think this is pretty nice for how easy it was to model. It especially adds a lot of atmosphere to rooms when you turn off the player's light.



    By the way, I'm still on the lookout for 3d modelers interested in making textured models for the asset since my 3d modelling skills and especially texturing are not the best. I would provide the asset to you for free in exchange for those models :)
     
  35. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Version 1.17 has been released to the asset store 3 hours ago! You can now download the update :)
     
  36. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a video showing off the custom item spawner system in action. I first create a slot for the new "Cube" item about to be added, then show various configurations and finally hunt for a unique item in a small map.



     
  37. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
  38. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Version 1.18 has released with a couple hotfixes for the few bugs I found in the last version. The asset is also at 25% off until the next update!
     
  39. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is a new feature I have been testing out : post-generation rotation parameters for custom objects! This is something else I have been wanting to add for a while now. As you can see below, it allows the rotation of objects after they have been generated just like the translation parameters.



    Here is the GUI addition, it may change later but it will essentially work the same way as the translation parameters.


    The above rotation settings combined with a 2 instead of -2 Y translation created the following table setup inside the rooms!


    I still have to do some testing to make sure those work with every kind of object and to make sure they respect the orientation of your prefab, but this feature will likely be in the next update (v1.19).

    This feature really makes layouts more interesting and to combine translation/rotation with the randomness of procedural generation I will be testing "random" translation and rotations for custom objects. That feature would add a toggle to allow what will most likely be another Vector3/Vector4 inspector to set a maximum change on each axis for rotation and translation.

    In any case, I will be back soon with updates when I have more information to share on the upcoming update :)
     
    StevenPicard likes this.
  40. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Hello everyone, I'm back with another report on the feature I am currently working on. I have actually went ahead and programmed the random translation and rotations for custom objects :) The feature works flawlessly and feel like it may be very powerful for procedural generation related work!


    As you can see, the pillar custom object is now randomly being translated up and down. It is also randomly rotated up to 90 degrees around the Y axis. Below is a screenshot of the new GUI toggle and Vector fields. It also includes a button to then apply the input parameters and save them to the custom object.


    Here are some more screenshots of the feature in action!




    For this last one I turned on random rotation for the tables and kept the 45 degree constant rotation parameter from last post. As you can see, this table was randomly rotated and almost aligned itself with the room layout!


    Next update is coming along great, I will most likely not be writing extra documentation for the random rotation and translation parameters given how intuitive they are, but I actually have the intention of combining the documentation into a single manual document. This may not make it to the next version, which is currently planned to release after Halloween!
     
  41. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    859
    Since so much has changed can you create a step-by-step tutorial on dungeon creation from beginning to end with at least one enemy? Either written or video (or both :D) would be great. I think that could really help me.
     
  42. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Yes, the new documentation I have in mind would include a full step by step of the whole process including mob spawning. I also want to make a better tutorial video but thats for when I get the time to edit and render it properly since I want to do it right this time on the regard of weird text transitions. It will likely be with voiceover too. It will take much longer to create that video than to write the manual since this tutorial will most likely be longer than a half hour of raw footage to edit into a coherent tutorial with subtitles.

    I think the main problem with documentation right now is that there are so many different documents to read through that users, especially new users, most likely have no idea which one to read to know how to do what they want to do. By combining them into a single "Manual" I would be able to ensure people read the instructions in the right order and will also give me the ability to simply Edit that document to add more instruction or remove obsolete instructions.
     
    StevenPicard likes this.
  43. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Hello everyone, I wanna report on the new guide and say that its coming along great but slowly. I want to make sure the explanations are well detailed and all complemented by lots of examples. In the mean time I have found that I broke the W translation feature while fixing its inverted direction, causing vertically translating layouts to still be inverted. I've now fixed that problem.

    Also, I have create a simple chest model with mapped textures. It's actually my first attempt at texture mapping and I think it looks pretty good even without normal maps or any fancy textures. It does not open nor is it animated since this was only to teach myself how to do texture mapping so that I can make upgraded version of the existing prefabs. I might include it in the next version :)

     
    StevenPicard likes this.
  44. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is the dungeon layout generated using non backfaced walls, floors and ceilings. Its a good idea to use those for mobile builds where every polygon counts, however they require some fixing using extra objects near stairwells.

     
  45. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Another UV mapped model that will be coming soon to replace the existing torches and torch holders! I'm also working on creating nice normal maps for those to get the nice reflections going!

     
  46. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Here is another one, this time the barrel has gotten a much needed upgrade!

     
  47. watercolorheartdev

    watercolorheartdev

    Joined:
    Sep 25, 2017
    Posts:
    17
    New barrel is looking good!
     
    r3eckon likes this.
  48. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Thank you! By the way, I have submitted the asset for an official sale that unity claims will run from November 27th through December 8th, once again I have gone for 25% off :)

    You should be able to get it at a lower price sooner than expected!
     
  49. fancyferret

    fancyferret

    Joined:
    Feb 4, 2017
    Posts:
    31
    I think I added this to my wishlist way back but have not actually looked closely at it until today. Browsing through the forum posts you've made here, the consistency and attention you've given this asset are impressive. I'm definitely going to try it now.

    Do you know if anyone has tried using it with the ORK Framework? Seems like it might be perfect for an old-school dungeon crawler like Eye of the Beholder or Dungeon Master.
     
  50. r3eckon

    r3eckon

    Joined:
    Jul 3, 2015
    Posts:
    506
    Thanks for that! You should wait for the incoming sale so you can grab it at a lower price :)

    On your question, ORK seems like it could actually be compatible but I cant say for sure everything would work out of the box. You may need a bit of extra scripting to get both assets to work as one. Also I have yet to get feedback regarding using the asset in pair with an other asset so right now I have no idea how easy or hard it may be to accomplish.

    For instance, ORK's item system seems to deal with enemies dropping loot and inventory management after items are picked up. My asset has an item spawner / gatherer system that lets you execute custom code upon a particular object being picked up. This could very well be where one would need to add a "Tell ORK that item X has been picked up" line of code which would link the two assets on that regard. Mob spawning is essentially spawning a game object featuring the navmesh agent component, so you should have no problem doing anything in between telling ORK that a particular mob has spawned and simply using the entire generated navmesh created by the dungeon generator with mobs spawned using ORK, assuming that they can use the navmesh for navigation.

    If you already own the framework you wish to use with this asset and want to go ahead and check if what I described above is actually feasible, you can check out the free independent version of Procedural Dungeon Toolkit's Item Spawner. It is the exact same item spawner system I have implemented in my paid asset and should allow you to test out if the item management side of both assets is actually easy to link.
     
    fancyferret likes this.