Dungeon Architect

Ooh - ran into a major blocker with the SnapMapBuilder setup.

In my game, currently set up with Blueprint/Actor SnapBuilder, I have a class that stores a set of default settings for a SnapDungeonConfig. This way I can hand author a bunch of different sets of modules, dungeon lengths, etc, and then choose one on runtime (say based on difficulty level or map type), assign that config to my dungeon actor and then Build Dungeon on the fly.

I’d love to use SnapMapBuilder instead of SnapBuilder to get the new mission editor features you’re working on and because yeah, it’s a pain to build modules as actors!

But how can I assign a config on the fly to a SnapMapBuilder Dungeon and make that work with the Build Model Cache?

Possible options:

  • Is there a way to bake-out a model cache for each SnapDungeonConfig I might want to use?
  • Build the model cache in runtime?
  • Store a Dungeon Actor + config combo with the Build Model Cache included somehow, so I can save those and choose which dungeon to spawn instead of choosing from different dungeon configs at runtime?
  • Have dozens of Dungeon Actors in my level, with their individual configs set and Build Model Cache’s clicked, then choose one and build it at runtime?

EDIT

  • having multiple Dungeon Actors in my level and only building from the one I want at the time seems to work okay. Not sure if there are performance issues down the road though if I have 30+ Dungeon Actors with model caches all in one level?

Put in a “Floor Plan Room Volume” to cut through the floors of the corner room and create a marker for the “Per floor centre marker” in your theme file

I recently purchased DA because the vids are so , and I’m just not a TA to make levels. However, I’m finding that DA is constantly crashing the app due to video memory leak, or locks up. Even small actions by dropping a mesh into a theme. If I’m not using DA then no problems, UE run’s smooth. Maybe it’s just the theme builder, but since I need a theme and I can’t make one I can’t tell if there is any other issues.

I upgraded my computer because it died, and I decided to skimp on ram until next month. So I’m only running 8gb for now due to the prices and I’m not made of money :
I’m wondering if it’s a memory issue, or a memory leak. Either way it’s unusable right now. Also one final note, for some reason loading up any UE project even a empty one takes a few minutes. I’m not sure if it’s related though.

I’m using UE 4.20
DA 2.9.2

If anyone has had these problems and may know what’s up(buy more memory?) I would appreciate some assistance to resolve the issue.

Ok, well as for my crash/lockup. I’ve found a work around in the mean time.

  1. I stopped working with meshes and am now only working with blue prints with meshes in them.
  2. I don’t leave the DA theme open for long.
  • Create a blue print
  • open theme
  • add blue print
  • adjust blue print in theme
  • close
  1. don’t turn on the debug or dungeon properties.

My problem seems to mostly be related to keeping the theme open and doing more work. the longer it runs sooner or later it breaks. say about 5-10 minutes. where as open and closing allows me to work on it for a few hours. So go figure. I’m thinking more ram will help remove the problem.

Note: with more checking out. It seems to be more with the debug and dungeon options in the preview window.

Ok, different question. now that i can work with the tool :slight_smile:

I’m working mostly in the city system. I’m wondering how can I make smaller roads. I’ve made my base road 2 lanes wide, and I’m thinking of going to 4 laes. however, 2 or 4, how can I do smaller roads.

Say for example I want to do major road ways at 4 lanes, and then city core being 2 lanes, with some back alleys being 1 lane.

Constant crashes with the snap builder. Repro is simple. Open DA_Snap_GameDemo. Open MySnapConnection in the editor (should be data-only BP). Change Door Class to BP_BasicWall. Reset it back (yellow reset button). Insta-crash.

I’ve had all sorts of problems with the snap builder, generally around the connectors. Even the sample is very unstable.

I suspected for a while that it was because I was using instanced meshes in the room BPs, but that doesn’t seem to be the issue.

Another issue that I see is that the walls and/or doors meshes are often created at the origin rather than at the BP connectors. There just really seems to be problems with the connectors.

4.20 w/latest DA (2.9.2)

LoginId:
EpicAccountId:

Ensure condition failed: ChildActorTemplate == nullptr [File:D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\ChildActorComponent.cpp] [Line: 105] Found unexpected ChildActorTemplate BP_BasicWall_C /Game/DA_Snap_GameDemo/Modules/Module_1x1A.Module_1x1A_C:MySnapConnection_GEN_VARIABLE.MySnapConnection_GEN_VARIABLE_MySnapConnection_C_CAT.Door.Door_BP_BasicWall_C_CAT when ChildActorClass is null

UE4Editor_Engine!UChildActorComponent::SetChildActorClass() [d:\build++ue4\sync\engine\source\runtime\engine\private\components\childactorcomponent.cpp:461]
UE4Editor_DungeonArchitectRuntime!ASnapConnection::PostEditChangeProperty() [d:\build++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\dungeonarchitect\source\dungeonarchitectruntime\private\builders\snap\connection\snapconnection.cpp:89]
UE4Editor_CoreUObject!UObject::PostEditChangeChainProperty() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:444]
UE4Editor_CoreUObject!UObject::PropagatePostEditChange() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:518]
UE4Editor_CoreUObject!UObject::PostEditChangeChainProperty() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:411]
UE4Editor_PropertyEditor!FPropertyNode::NotifyPostChange() [d:\build++ue4\sync\engine\source\editor\propertyeditor\private\propertynode.cpp:2122]
UE4Editor_PropertyEditor!FPropertyValueImpl::ImportText() [d:\build++ue4\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:545]
UE4Editor_PropertyEditor!FPropertyValueImpl::ImportText() [d:\build++ue4\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:333]
UE4Editor_PropertyEditor!FPropertyValueImpl::ImportText() [d:\build++ue4\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:242]
UE4Editor_PropertyEditor!FPropertyValueImpl::ResetToDefault() [d:\build++ue4\sync\engine\source\editor\propertyeditor\private\propertyhandleimpl.cpp:995]
UE4Editor_PropertyEditor!SResetToDefaultPropertyEditor::OnResetClicked() [d:\build++ue4\sync\engine\source\editor\propertyeditor\private\userinterface\propertyeditor\sresettodefaultpropertyeditor.cpp:83]
UE4Editor_PropertyEditor!TBaseSPMethodDelegateInstance<0,SResetToDefaultPropertyEditor,0,FReply __cdecl(void)>::Execute() [d:\build++ue4\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build++ue4\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:290]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_1002768c627006711ef2f351a87ec0e7> >() [d:\build++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:268]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5472]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5979]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5959]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\build++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1736]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\build++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2182]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\build++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:895]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\build++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:732]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:129]
UE4Editor!FEngineLoop::Tick() [d:\build++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3417]
UE4Editor!GuardedMain() [d:\build++ue4\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
UE4Editor!WinMain() [d:\build++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]

ntdll

Hi,
I’ve downloaded the plugin from the marketplace but it keeps giving me this error on my Mac (High Serria) my Unreal Engine version is 4.20.2

this error doesn’t occur in my Windows machine only my mac

Not sure if this was posted before since I am just starting with this plugin, but in the Theme Editor in properties when you click “Skylight” the editor crashes

Also, I noticed several people have reported that the IsNearMarker node no longer works. Could that be fixed sometime soon, it is quite important?

Edit

I made a temporary fix since I really want to use this node. I don’t know if there was a good reason to disable that node in code and if my fix will break something else later on, but I post it for those of you who are in need of this. Feel free to add a better solution.

  • Since I don’t know how to compile a plugin that is installed in the engine, I copied the whole DungeonArchitect subfolder from the engine/Marketplace location to my project’s plugins
  • Go to \DungeonArchitectRuntime\Private\Builders\Grid\GridDungeonQuery.cpp near the end and uncomment the code for IsNearNode()
  • Go to DungeonBuilder.h near the end and make the protected declaration of the marker array public
  • Rebuild the whole project

This got the node working. Like I said it is not a proper solution but it makes the node work again. I hope this will be fixed in an official update sometime soon so that I wont need to use this patch in the future

Hello,

I have run into issues using your plugin with dedicated server. I continuously get Outer errors from references inside the theme file. When I remove the mesh node in question the error goes away. This happens for every mesh node in a theme file.

Things I’ve tried:

  1. Moving plugin location from engine to project and visa versa.
  2. Deleting plugin binaries and force rebuild
  3. Creating a brand new project with DA/Dungeon/Theme
  4. Tried switching from 4.20 to 4.19

[2018.09.11-21.10.08:698] 0]LoadErrors: Warning: CreateExport: Failed to load Outer for resource 'Template': EdGraphNode_DungeonMesh /Game/Theme.Theme:EdGraph_DungeonProp_0.EdGraphNode_DungeonMesh_4

Could you please reach out to me about this issue. I have spent a great deal of time working with your plugin to find that I can’t package a dedicated server. I have reached out via several methods with no response as of yet, ty.

@draxous Sometimes walls are shared between two rooms and only a single wall marker is emitted. So it assumes that the wall is two sided. In this case, I usually emit two wall meshes from the theme file on both directions. Would this work for you?

@netcop0207 UE4 Marketplace allows only the last 3 version for code plugins, so (the current version 4.20 + previous 4.19 and 4.18). It has no slots of uploading previous versions. Could you try upgrading your project?

@draxous I sent you a mail yesterday. These warnings shouldn’t stop the server, they show up on editor builds. I’ve checked with standalone dedicated server builds and it doesn’t show up (you’ll need to compile standalone server builds from UE4 engine source code from github)

@netcop0207 @Wallenstein

I’ve added IsNearMarker and will be available in the next update shortly

https://i.imgur.com/V2XZrko.png

https://i.imgur.com/he0WGod.jpg

@netcop0207 I just tested on Android and instanced static meshes work fine (runtime generated dungeon). Which mobile platform is this for?

Uploaded a new version to the website (Windows). I’ll upload mac build and the marketplace version later today

Version 2.9.3

  • Fix: Fixed a crash issue on stand alone builds due to editor only objects in snap connection actor
  • New: Added IsNearMarker function back in. This function is useful for querying nearby markers in the scene from your transform / selector logic BP

Complete change log

Submitted 2.9.3 to the marketplace for review

Hi there,

Just grabbed the plugin and am super impressed so far, some great stuff. I’m curious about adapting this to a sidescroller environment. It seems like all the tech to do this is there, but not sure how to go about getting it off the ground at the moment.

It seems having the ability to spawn rooms in the XZ plane should be trivial but no obvious answers have presented themselves. I guess one could simply restrict movement as a “fake” top down gravity and camera but i’d prefer not to have to deal with those mental gymnastics :slight_smile:

Can anyone point me towards a bit of help on this? Can’t seem to find anything as yet.

Cheers,

[USER=“28980”][/USER] - Is the Fantasy Dungeon pack based theme available?

work as always, the IsNearMarker node looks super useful.

[USER=“28980”][/USER] Great work on the plugin, I’m really enjoying it so far. Just have a (hopefully) quick question for you.

I’d really like to add my own generation algorithms, I took a look through the docs and didn’t see anything on this subject though. Could you suggest a good starting point for adding new algorithms?

Edit: I’ve been poking around and found the builders in the runtime folder. Seems like as good a place to start as any.

The crash that I posted about is still happening with 2.9.3. Repro steps are the same. Would really like to get a hold of more examples to see if I’m doing something wrong with the snap builder. It doesn’t seem to work with instanced meshes. I mean, it sort of does, but some of the meshes are not instantiated.

Also, I’m seeing my doors and walls appearing at the origin rather than with their snap connections. Is there a way to fix this?