Download

Dungeon Architect

@Yun-Kun I used a marker emitter script. It runs after the dungeon layout is built and it tries to fit in NxM tiles (e.g. 2x3, 3x3 etc) in the empty spaces surrounding the dungeon. If it finds it, it emits a marker there and the SideDemo theme file picks up those markers and places those buildings there

This works similar to the AdjacentCellEmitter in the fire demo that is used to place rocks to build a cave like structure. Instead of finding 1x1 adjacent free tiles, it could be extended to find bigger tiles. I’ll try to create a BP for your tomorrow

I’ve improved the stair connection model to create better quality result

Also fixed a crash issue with the clone actor node in some cases

Notice that some of the assets are very performance hungry, like the lava material or the fire particles.

[MENTION=28980]Ali Akbar[/MENTION]

I believe this plugin allows your to manipulate meshes within BP Actor right in the Editor: https://forums.unrealengine.com/showthread.php?144556-Prefab-Tool-Prefab-Support-for-Unreal-Engine

So building BP modules for Snap modules should be a breeze.

EDIT: Maybe it would be possible to have an option whether have modules to be BP actors or Prefabs ?

Hi Ali,

This looks amazing, I’m really happy you want to build out the functionality of Snap builder. I agree the building the Snap components in a Blueprint is a pain but honestly it does not seem that bad. You just can make it in a level then convert the whole thing to a Blueprint actor. I’m much more interested in better functionality of the snap builder its self. I would like to be able to use A Multi Dungeon custom layout with the snap builder in addition to a custom builder (like the straight line example you have). That would be huge functionality, also critical would be access to room and order information so we can better dynamically populate the rooms and hallways. I love the functionality examples you listed. I hope that all makes it into 2.8. Thank you.

Small Question:

how to prevent impassable Rooms, Wall-/Fenceless Platforms and not working Stair2x?
F.e.:
248777eb0c77c718d75117ad39d3c5b0072a8585.jpeg
Here you see 2 impassable Rooms. The large on the right, and the really small left above it.
This is not that bad in 3rd person or FPS… since you won´t see those Rooms. But i want it for TopDown (Diablo like), which looks odd if there are Rooms, the Player, NPC or Enemies can´t reach… :confused:

Second:
73df32b810ffc8590a8b0a1f3d0081635c3a4e74.jpeg
I don´t know why this happens. But These Platform neither has Walls nor fences… It simply spawns inside a room…
Two Questions here:
Any chance to set Walls and Fences there?
If not, Any way to prevent such Platforms? :slight_smile:

Third:
It often happens, that i get Double or Triple Stairs glitching into each other, cause there are up to 3 Passages withing ONE Corner of a Corridor…
See:
50d247460257e4df21bd11e1a73fc059d54db80d.jpeg
Any suggestion how to prevent that?

Last but not Least:
2556883e70310e84e01ad6951c2f329c22388a60.jpeg
I think DA is designed to use Straight Stairs. So… i don´t think this is a Bug or such… But i´d need some help to fix this :slight_smile:
Is there a Manual/Doc/Help that explains how to make such Stairways possible? Or do i need to place it all by hand for myself?
Would be nice, cause such Stairways lead into glitching through Walls, ther Stairs or lead into nothing (free space outside dungeon)

Info:
I simply used the standard DA Dungeon Config. Seed: 12431, Max Stair Height: 2, Height Variation: 0.5
This is my Debug Theme:
Theme.jpg

Hope you Guys can help me out :smiley:

[MENTION=28980]Ali Akbar[/MENTION] - Do you have the theme file that you used here? https://www.youtube.com/watch?v=FC3Bs6T-xfI

I have that asset and would like to see your theme file to work out how you built your city. Can you share it with me?

I snagged the content pack (https://github.com/coderespawn/dungeon-architect-quick-start-ue4/archive/content_2.6.zip) and tried out the “Level Authoring by Players (Runtime)” but the blueprint BP_DALB_GameState doesn’t have input to Cell Data.

Anyone know what to tweak for this? I just picked up DA so not very familiar with it yet!

I think I’ve found a bug with the TransformLogic, that or I don’t understand what it’s doing (50/50). The transform scale of a node appears to be applied in some way to the transform logic’s translation transform and not just the scale. It makes for some oddly placed meshes. To repro, create a grid dungeon and add a mesh node and hang it off the wall marker (add a wall mesh or a cube or something as the mesh). Scale the node’s height using the Z coord to something like 1.5. Then add a transform logic to that node. In the transform logic, translate (offset) in the positive Z direction a set number of units. Build the dungeon. The mesh is scaled correctly, but the translation seems to also be affected by the scale of the node. My guess is that the translation (loc) is being multiplied or divided by the scale for some reason. I can’t for the life of me think of a use for that functionality so I’m thinking it’s a bug.

How can i use Dungeon Architect on a dedicated server?:confused:

Any progress on the post-processor? I’ve been encountering and keeping track of quite a few invalid seeds.

@Chaosgod_Espér I’ve improved the stair model and will be available in the next update. I’ll have a look at the wall/fence issue tomorrow

@qdelpeche those assets are not modular (atleast the road meshes). I’ll send you the theme file tomorrow

@Dubh It broke due to a recent change and I’ll have it fixed by tomorrow

@TheCouch That’s expected behaviour. The transform logic’s transform will be relative to the parent. An example would be where you randomly place a painting on the wall in the Z range of 100 to 200 cm high. Later you decide to make the parent wall 3 times larger. We want the offset to also be scaled from 300 to 600 cm to make up for the larger wall

@ReenOne There’s a multiplayer sample in the quick start guide and it works with dedicated server

Some progress on a new dungeon layout algorithm (like ziggaurath)

I start with a world bounds, and binary split it till a min/max room size is reached

The splits don’t have to be in the center

Connect the doors based on the tree connections. This helps us enforce conditions, i.e. two child subtrees of a node are guaranteed to be isolated and connected only through the node’s door. This helps in created a door / lock combo. It can also loop

Purge the tree and tag the doors (notice E, L, K)

Hi Ali,

There’s two if statements inside UGridDungeonBuilder::ConnectRooms like this:


if (PreviousCell->CellType == FCellType::Room || PreviousCell->CellType == FCellType::Room)

Note the two sides of the || are identical. I’ve changed it to this:


if (CurrentCell->CellType == FCellType::Room || PreviousCell->CellType == FCellType::Room)

This fixes rooms sometimes not having doors connected to them from corridors… I think.

Cheers,

Ryan.

I also added:


FORCEINLINE uint32 GetTypeHash(const FRectangle& rect)
{
	return FCrc::MemCrc_DEPRECATED(&rect, sizeof(FRectangle));
}

To MathUtils.h so I can put an FRectangle in a TSet and/or TMap.

Cheers,

Ryan.

@LuaChunk Thanks for the fix. I’ve added it to the code and will be available in the next build