Skip to content

Procedural Dungeon v3.7.0

Latest

Choose a tag to compare

@BenPyton BenPyton released this 17 Nov 14:52

An example project for UE5 is available here (you can change easily the engine version with a right click on the .uproject file).
Make sure to install the plugin in your engine or in the example project to be able to open the example!

If you have any bug or crash, feel free to open an issue in the Github repo.
If you have suggestions, questions or need help to use the plugin you can join the Discord server dedicated to this plugin.

⚙️ Installation

To install it, follow the instructions in the wiki page.

Available below are pre-built open-source version for Unreal Engine 4.27, 5.3, 5.4, 5.5, 5.6 and 5.7.
WINDOWS ONLY you'll need to compile it yourself for MacOS and Linux, or get the Fab release instead

This plugin is also available on Fab if you prefer the plugin under the Fab Standard License!

📋 What's changed?

✨ Added

  • Added a Get Level Room Data node accessible from actors, even during their construction script, allowing the actor to setup itself when placed in the room.
  • Added a new Data Asset called Dungeon Settings to allow overriding the Room Unit in the Dungeon Generator class.
  • Added a compatibility list in Door Type assets, so different door types may be compatible
  • Added Try Place Room At Location for custom dungeon algorithms to place a room without using a Door Def structure.
  • Added a relevancy system for the rooms (independent from the room visibilities).
    • You can set a distance from which a room is considered relevant to the player.
    • A relevant room has a value to tell how close the player is to the room (the lower, the closest) with 0 the room where the player is in.
    • Some new nodes in the Room instances are available to access this relevancy level, and an event dispatcher to be notified when this relevancy changes.
  • Added room constraints:
    • New base class RoomConstraint to create your own constraints.
    • Added built-in location and direction constraints.
    • Added new node Does Pass All Constraints to check whether a Room Data passes all its constraints.
  • Added new node Get Random Room Candidate to ease the selection of a RoomCandidate struct, optionally using their scores as weights.

✏️ Changed

  • Replaced the hotfix for Steam multiplayer with a proper fix (this impact the saved dungeon, making it not compatible with previous plugin versions)
  • Now the generation algorithm can be asynchronous:
    • Updated the Dungeon Generator Base class to allow spreading the Create Dungeon work on multiple frames.
    • Added a Yield Generation node to tell the generator to call the Create Dungeon again the next frame (must be used in the Create Dungeon function only).
    • Updated the Create Dungeon function in Dungeon Generator to limit number of room generated per frame (can be set with Room Batch Size in the actor's details).
  • Room Visibility system now handles properly local multiplayer (splitscreens)
    • The Get Visibility Pawn overridable function now takes a Player Controller as input.
  • Filter and Sort Rooms now checks if a room candidate passes all its constraints to include it in the output candidates.

🛠️ Fixed

  • Fixed room visibilities to be updated properly when toggling or changing occlusion distance.

💖 Support me!

If you like my plugin, please consider tipping:

Ko-fi Buy Me a Coffee Liberapay PayPal