Dungeon Architect

Documentation for the new snap builder and the dungeon flow system

https://coderespawn.github.io/dungeon-architect-snap-map-user-guide-ue4/

Thanks for the reply ill be looking into the snap builder today. the prefabricator is fantastic, and iam currently making good use of it .

@aliakbar Wondering if Your every going to do tutorial about making maps with larger buildings using city builder? Been waiting almost a year for one. Really need to know how you set up for larger city scapes.

@aliakbar I have a weird error (could be caused by the engine).

I want to add my own GridDungeonBuilder in c++, so i added a new class based on the GridDungeonBuilder.
So far so good, but on compiling the solution i get the following errors:


2>LogCompile : error : Duplicate class name: UEdGraph_Grammar also exists in file /Script/DungeonArchitectRuntime
2>LogCompile : error : Duplicate class name: UEdGraphSchema_Grammar also exists in file /Script/DungeonArchitectRuntime
2>LogCompile : error : Duplicate class name: UEdGraphNode_GrammarBase also exists in file /Script/DungeonArchitectRuntime
2>LogCompile : error : Duplicate class name: UEdGraphNode_GrammarNode also exists in file /Script/DungeonArchitectRuntime

Any idea how to resolve this?
(Working with 4.21.2 binaries from the launcher, not much more stuff in the project yet, just a few assets/materials)

hi i’m on mac os 10.14.2 and ue4 4.21.2 and can’t get your plugin to load. i continually get ā€œPlugin ā€˜DungeonArchitect’ failed to load because module ā€˜DungeonArchitectRuntime’ could not be loaded. There may be an operating system error or the module may not be properly set up.ā€ Is this a known bug? I’ve followed your quick start guide step by step and continue to get the same results. Thanks.

Thank you. I’m glad you’re finding Prefabricator useful

There was a bug I recently fixed that wasn’t placing 3x3 tiles or larger buildings on the city layout. I’ll make a tutorial soon

@Algorithman If you are making modifications to the plugin, its better to add the plugin to your project’s folder. For this, copy the Dungeon Architect folder from the engine’s folder to your game directory

  1. Copy DA from the marketplace folder: e.g. C:\Program Files\Epic Games\UE_4.21\Engine\Plugins\Marketplace\DungeonArchitect
  2. Create a new folder named **Plugins **in your game’s project directory and paste DungeonArchitect folder inside it
  3. Uninstall DA from the launcher (click the Installed Plugins link under 4.21 engine)
  4. Regenerate your visual studio file

If the error persists, clean and rebuild

Thx, i try with uninstalling from the launcher (the one thing i didn’t do ^^)

Thanks for this little tutorial, it was very helpful!
The SnapMap builder finally works without crashes - great work.

But I have one problem that some level modules should never be rotated. Is there an option for that?

As my game has a Topdown camera not every level part is playable while rotated. Maybe you can make an option in the modula database for that?

@Laurentius That is planned. I’ll add that in the next build. This is especially useful for 2D/2.5D levels where you don’t want your platformer modules rotated

I’ll provide a way to lock rotation based on the individual axis

I am trying to random generate dungeon with landscape. I have done everything needed from guide (Multiplayer Dungeon Generation), my dungeon elements like trees are spawning always with different seed but landscape doesn’t modify. I don’t know how to fix it.

Is this in runtime? UE4 does not support landscape modifications at runtime. They can be modified only from the level editor’s viewport (when you manually build a static dungeon)

I tested on Android and it works without issues (runtime dungeons). If anyone has issues, please let me know with more details

Hello!

I bought the plugin few days ago and been going through every documentation to use the SnapBuilder since it’s the reason I got the plugin.

I’ve spent now 3 full days to try to make it work, I even changed the version of Unreal because the downloadable example you made is on 4.21 and I was on 4.19

I’ve tried everything and went into your modules to understand why it’s not working properly. I found that we have to add a bound level volume that is not on the documentation.

There must be other specification missing because I can’t get the tool to work when I use my own modules (works with your modules). I know it’s coming from the modules because with all the tests I’ve made Module Database works fine, Dungeon Flow and connections too, the problem comes from the module itself.

At this point I’m really desperate and don’t know what to do to make it work this is why I write . Can you please help me?

Thank you!

Approved Llama Del Rey’s post, just posting since it may not have given an update notice to the thread about it.

I can confirm that the SnapMap builder does work with external projects. I’ve got it working with multiple layout types including several of the packs from marketplace. It is a bit finicky though. The easiest thing to test on your maps is to increase the error tolerance to a much higher number and then see if it builds the map, it may have overlapping geometry but it should help show where the problem is.

Another problem I ran into a lot at first was the ordering that it builds. At first I was just adding nodes and attaching and not paying attention to the order and that can cause problems.

The other thing I have found to help when building them is to start simple and then add one room at a time in the flowchart until you find the error.

[USER=ā€œ222363ā€]Llama Del Rey[/USER] Please try as [USER=ā€œ59677ā€]J.C. Smith[/USER] mentioned. The dungeon will not build if it cannot satisfy the following constraints:

  • If it cannot build a dungeon that satisfies the dungeon flow graph. It could happen for a few reasons:

  • There’s a node in the graph (e.g. with name ā€œArmoryRoomā€) and no corresponding mapping to a module in the module database

  • The module has fewer connections (entry/exists) than the graph requires. For e.g. in the generated graph, the node ā€œArmoryRoomā€ might have one entry link and 4 outgoing links which would require a minimum of 5 connections in the module level file and you have only 4

  • The module bounds are larger than expected. This can happen if you place a custom blueprint somewhere far away outside the bounds and it takes it as part of the bounds thus increasing it. Place a Level Bounds actor and select it to make sure it is tightly packed

  • The module database is out of date. If you modified your modules, it needs to be rebuilt

  • The modules cannot be connected as the art asset overlap with the adjacent connected module’s art asset. In this case try increasing the Overlap threshold from the config

  • The orientation of your connections is wrong. Make sure the red arrow points outward and is at the edge of the module bounds

When the snap dungeon doesn’t build, it needs better error reporting as to why it didn’t build. I’ll add that in the next update as others have also face difficulty debugging it. In the mean time, start with a small graph (two nodes) and make sure it works. If it doesn’t, increase your overlap threshold till it works. Then add more nodes from there. Once these basics are solved, it should work properly

You don’t need the Level Bounds actor in the module file. You can however use it to make sure your bounds are correctly packed

So the level bounds actor (which I placed and scaled manunally to fit the correct module size …) is never used by the snap builder itself or in the level streaming process for visibility?

Just wondering …

Hi,

i tried your suggestion (copying over the plugin etc) but sadly it isn’t working.

On a new empty project, it still errors out with the duplicate class names errors.

Steps to reproduce:

  • create a new c++ project
  • create a plugin folder
  • copy over DA folder
  • generate project files
  • compile -> errors

I didn’t add any classes or BP’s yet.
At least i get some additional error msgs:



1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/EdGraph_Grammar.h(12) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraphNode_GrammarNode or Class /Script/DungeonArchitectEditor.EdGraphNode_GrammarNode
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/EdGraph_Grammar.h(17) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraph_Grammar or Class /Script/DungeonArchitectEditor.EdGraph_Grammar
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/EdGraphSchema_Grammar.h(12) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraph_Grammar or Class /Script/DungeonArchitectEditor.EdGraph_Grammar
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/EdGraphSchema_Grammar.h(13) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraphNode_GrammarNode or Class /Script/DungeonArchitectEditor.EdGraphNode_GrammarNode
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/EdGraphSchema_Grammar.h(25) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraphSchema_Grammar or Class /Script/DungeonArchitectEditor.EdGraphSchema_Grammar
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/Nodes/EdGraphNode_GrammarBase.h(9) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraphNode_GrammarBase or Class /Script/DungeonArchitectEditor.EdGraphNode_GrammarBase
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/Nodes/EdGraphNode_GrammarNode.h(12) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraphNode_GrammarNode or Class /Script/DungeonArchitectEditor.EdGraphNode_GrammarNode
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectRuntime/Public/Frameworks/GraphGrammar/Graph/Nodes/EdGraphNode_GrammarNode.h(12) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraphNode_GrammarBase or Class /Script/DungeonArchitectEditor.EdGraphNode_GrammarBase
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogUObjectHash: Error: Ambiguous search, could be Class /Script/DungeonArchitectRuntime.EdGraph_Grammar or Class /Script/DungeonArchitectEditor.EdGraph_Grammar
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error: === Critical error: ===
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error:
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error: Assertion failed: Class->Children == NULL [File:D:\Build\++UE4\Sync\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp] [Line: 5685]
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error:
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error:
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error:
1>C:/Git/MSD2/Plugins/DungeonArchitect/Source/DungeonArchitectEditor/Private/Frameworks/GraphGrammar/RuleGraph/EdGraph_Grammar.h(14) : LogWindows: Error:
1>EXEC : error : UnrealHeaderTool failed for target 'MSD2Editor' (platform: Win64, module info: C:\Git\MSD2\Intermediate\Build\Win64\MSD2Editor\Development\MSD2Editor.uhtmanifest, exit code: CrashOrAssert (3)).

Seems UHT cannot decide which to use. I personally never had anything like this, so i don’t know how to resolve it.

Regards

Algorithman