Dungeon Architect

Thanks Seth

After releasing 1.5.0, I want to refactor DA to make it better work with other builders. Right now, the Editor paint tool and the dungeon config structure is tightly coupled with the Grid based builder. After the change, it will pick it up from the builder class so builders can provide their own paint tools and have their own configurations. I did this with the Unity version and it works nicely

Added free modular assets for DA I created for the Unity version

@n00854180t Added a flag to obey the affinity variable

“Logic Overrides Affinity” flag, if set works like before where the selector determines if a mesh is inserted into the scene. If unchecked however, on a successful selection, the Affinity field is applied. If the selector doesn’t select it, then the mesh is not inserted and Affinity field is ignored either way

@

Thank you very much for your work! We ALL really appreciate what you do with this plugin. Just 3 words:
YOU ARE !
Keep up the good work! I’m keeping an eye on the forums and on the website for version 1.5.0.

Ahhhh thank you, this will be super useful!

Everything about Dungeon Architect intrigues me. I think I will have to give this one a go sometime soonish. Keep up the good work, it looks fantastic! :smiley:

Is 1.5 almost out? Will it fix some of the little issues (stairs being clustered too close to each other, etc) and offer UE 4.8 support?

Derek, I’ve already fixed most of the stair issues. I’ll have more updates tomorrow

@SethPDA, @Bluntie Thanks! :slight_smile:

I completely revamped the stair connection system and it is much more robust now.

Previously, I was considering each stair position and looking at the surrounding and deciding whether to create or now. This sometimes led to stairs not being created if none of the possibilities were good

In the new system, I collect all possible nearby stair configurations and assign weights to them and pick the best one after applying various constraints on it. The weight takes a penalty if it blocks something, or is in an undesirable place (entry / exit is blocked). Then I run this method three times creating stairs with different weight threshold.

The first time, it runs with a high weight threshold, so it creates stairs that are absolutely necessary (the ones coming out of doors, which have high weight). This creates a partially connected map with the important stairs already in place

The second time, it runs with a lower threshold (but greater than 0), so this rejects other stairs and only create ones which are placed in nice non-intrusive locations. By now most of the map is already connected with well placed stairs

Finally, the method is run again with 0 threshold to cover the few places where proper stairs cannot be placed in the previous step. Padding is added to the nearby corridors to make the stair accessible if the entry / exist needs it

This iterative approach makes it easy to add more constraints in the future if needed

Padding is added near the stairs to make it accessible

Bug fixes

! Great to see you back! These stair issues have created many people headaches. I am really happy these are fixed :smiley:

OMG yes, you are the man, that new stair system is exactly what I’ve been wishing for with the stairs - epic work :smiley:

Is there a selector that can get rid of the ceiling piece for e.g., 2x stairs?

Hi, thanks for the update.
I have a question:
Is there some way to execute some logic when for example, an static mesh is placed.
Why? Well, if I need to attach a component to that mesh at runtime i can do it, or just when the dungeon is generated.

Great job on the stairs. It was a constant headache with my current project…stairs wouldn’t be there, or would connect to nothing so that some areas weren’t accessible or be “combined” together and you couldn’t climb them…and I was using the default setup example file you provided with the sci-fi top down tiles.

When will 1.5 be released?

I was trying to use the forgot password form on the CodeRespawn site, and it tosses me an error that I provide the wrong reCAPTCHA value. There is no reCAPTCHA on that page, so I can’t reset my password.

Please use this alternate URL to reset your password till I fix the issue

@,

Noticed a minor bug btw, which you might be able to include a fix for in the next version.

If you select multiple nodes (mesh nodes for instance) it will say “Multiple Values” in the properties editor even if they are the same (e.g., position at 0, 0, 0, still says “Multiple Values”).

Another bug is that when you multi-select and then change the values, it only updates the first one selected rather than all of them.

@Alexarg I’ll add a dungeon event listener so you can hook into it and add your logic. I’ll add this after 1.5.0

I grabbed the Actor transform detail customizer and did some changes to work with this. The Offset now comes on top since it is an important property. Multiple values and their editing works correctly

BEFORE


AFTER

I’m merging all the new changes back to the older UE4 version branches (4.9, 4,8 etc). Is anyone still on 4.7?

Version 1.5.0 is available. It’s available for Win64. Mac coming soon (facing issues with Xcode after an upgrade)

Change Log (1.5.0)
Version

  • Major improvements in the stair connection system. It has been re-written to be more robust
  • Added selector affinity override flag, so that the selector logic can optionally respect the affinity variable
  • Improved the Graph node transform property editor for multiple selections. Moved the node offset to a separate category in the details view for better usability
  • Fixed a crash issue when some actors (e.g. characters) were spawned in map using the actor node
  • The theme file can now be referenced from blueprints. This lets you switch themes on a level during runtime with blueprints. New demo added showcasing this
  • Fixed various bugs with doors, platform volumes and stairs

This build has no breaking changes.

I haven’t included the other builders (Isaac builder, indoor etc) as it requires some breaking changes and will be part of the next version.