Dungeon Architect

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?

[USER=“28980”][/USER] I have a couple of custom algorithms working in the plugin now and I’m incredibly happy with it. I do have some questions though. I’m attempting to use the plugin to generate maps at runtime for a multiplayer (listen server) game. I see there is a way to replicate the dungeon (in the advanced section in the details panel) but it doesn’t seem to do anything. When the host generates a level it doesn’t generate on the client. Just curious as to what specifically is being replicated if anything.

I have a few ideas about replicating the dungeon and was just curious what your thoughts are:

  1. use only actor nodes in the theme: Every spawned actor is replicated on it’s own, this is useful as I will have tiles change as the game progresses but it seems like a lot of info across the network (at least in the initial replication.

  2. pass the pertinent config over the network and let the clients generate them. This is nice as it uses less bandwidth than option 1 but makes progressive dungeon changes more work to implement.

Anyway, thanks again for your work on this plugin. I’m really enjoying using it.

Hello there, I bought this a while back when it was 50% off and haven’t been able to work on the project I bought it for due to illness. Well now I’m back to things! :smiley:

I’ve just got a few questions if you have time to answer them please?

  1. I have corridor modules (corner, straight, dead end, t-junction and crossroads and straight with door, t-junction with door middle) that have the geometry for the shape of each corridor piece and various other parts as separate models such as doors, engineering panels, light fittings, light panels. I’ve done these as separate models altogether so that the texel density will be higher on these smaller pieces so that I can add text, handles, air vents etc without any pixelation. Will the plugin be able to handle adding these extra pieces when it’s building a level?

  2. If yes, how would I go about sorting this out in Dungeon Architect so that it places the corridor module and the door in the same place for example? Or putting a corridor and light fittings, engineering panels etc?

I haven’t looked at the tutorials or anything yet because I want to build and texture my modules first before I start messing about with it. If it says all this in the tutorials then that’s great, just tell me that my first two questions are a pile of old pants lol :smiley:

And a third question regarding lighting:

  1. Once the plugin has built the level how do you go about baking the lighting? I’m guessing this is going to be GPU and/or CPU intensive? Will this be unsuitable for using in a VR game in that case? I don’t want people losing their lunch because the frames drop to single digits lol

And a fourth question regarding forward rendering:

  1. Are there any problems with me running this plugin with the Unreal Engine’s forward renderer?

Thanks in advance for any help given, sorry if they’re stupid questions but I’m a bit new to all of this lark lol :smiley:

I can answer 3 and 4:

  1. If your game needs the levels to be built on-the-fly and at runtime, then you need to go with dynamic lighting (GPU intensive, worse the more lights you need, not as bad if you just need one sunlight / directional light), or make everything unlit (fast but you get no shadows, etc).

If your game will work with levels built ahead of time, then you build a dungeon in a level and can Build Lighting to bake lightmaps for that level, just as if you built the level by hand and used static lighting. Most VR games use baked static lighting for level geometry, so do that if you can!

In my game, I want dynamic randomized levels so I’m using dynamic lighting, but it all takes place outdoors so I only need a single light source.

  1. Yes, works fine with forward renderer.