Skip to main content

Dungeon Architect - Unreal Engine

Dungeon Architect Exploration Log

  • Official docs:

Dungeon Architect

  • Official YT Playlist Tutorial:

Tutorial 01 - Create your first Dungeon [Dungeon Architect UE4]

  • Official Discord Link Invitation

Join the Code Respawn Discord Server!

Dungeon Architect Generation Method

  • Grid Builder

    The Grid Builder generates a dungeon by scattering rooms across the map and connecting them with corridors. This builder supports height variations (stairs). But the customization is only on its assigned theme and its dungeon config / properties. All of component logic must be set manually via blueprints.

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled.png)

    Grid Dungeon Config / Properties

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 1.png)

    • Change the Seed parameter to build a different dungeon layout.
    • The dungeon creation method first creates a number of cells (defined by Num Cells) and spreads them across the scene.
    • Set the Grid Cell Size parameter according to your art asset. If the ground mesh is 400x400 and the stair mesh height is 200, set this to (400, 400, 200).
    • The size of these cells is defined by the parameters Min Cell Size and Max Cell Size.
    • Some of these cells will be promoted to Rooms and the rest will be promoted to Corridors. If the cell area is large enough (parameter Room Area Threshold), that cell is promoted to a Room, otherwise a Corridor.
    • Room Aspect Delta
    • Spanning Tree Loop Probability
    • A new Stair will not be created between two tiles if there's another stair nearby that if traversed, takes N steps to reach this cell. This value is controlled by Stair Connection Tolerance. Bump this number up if you want fewer stairs.
    • Door Proximity Steps
    • Control how much height variation is allowed with Height Variation Probability
    • Normal Mean
    • Normal Std
    • Maximum allowed stair, determine how high a stair tile can get. If set to one, the builder will create stairs that go only one level up.
    • Lane Width
    • Enable Clustered Theming
    • Cluster with Height Variation
    • Floor Height
    • Initial Room Radius
    • Instanced
    • Max Build Time per Frame Ms.
    • Both Rooms and Corridors have a Ground marker. Rooms are surrounded by Wall markers while the corridors are surrounded by Fence marker.
  • Grid Flow Builder

  • Snap Flow Builder

  • Snap Grid Flow Builder

    The Snap Grid Flow Builder allows you to stitch snap modules using a flow graph. You can create many types of levels with this builder. Some examples include:

    • FPS / Third Person with multiple floors
    • Side Scrollers
    • Top-Down dungeon crawlers (like diablo)
    • Cities (with custom road paths, subways etc.)

    This type of generations method is using flow graph in a 3D Layout Grid.

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 2.png)

    The snap rooms are required to be of a fixed size (that is chosen by you), so they all can fit nicely and can be stitched inside the 3D grid. You may also design your snap rooms to span multiple nodes in the flow graph. The flow framework is smart enough to identify these rooms and use them appropriately in the flow graph:

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 3.png)

    Modules

    A room is designed in a separate map file, and it is called a Module. All Modules in the Snap Grid Flow builder have a fixed size called the Chunk Size. Your module size can be in multiples of this size (e.g., you can create a taller room of size 1x1x2 or a bigger room 3x3x2).

    To Create this module, you need Snap Grid - Module Bounds asset.

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 4.png)

    Open the asset, set the Chunk size, and Door offset Z based on your dungeon room needs.

    • Set the Chunk Size. The X and Y has to be the same if you want your modules to support rotation.
    • Door Offset Z determines how high the door is from the base of the module. It is a good idea to leave some gap, so you have space to create some pits or lower areas.

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 5.png)

    Create Level and open it.

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 6.png)

    Drag and Drop the Module Bounds Actor on to the scene. You need to design your dungeon inside the bound box by yourself (it’s not generated).

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 7.png)

    For example, it would like this.

    ![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 8.png)

    Connections

    //wip

    Module database

    //wip

    Create flow graph

    //wip

  • City Builder

  • Floorplan

Grid Flow Builder vs Grid Builder

Grid Flow Builder

(-) Need theme & grid flow to get works. (*) Height variation outside dungeon (there's Land & sea). (+) Generate dungeon base on flow graph. (+) Start & goals path. (+) Key/lock system. (+) Minimap feature. (-) No theme override volume. (-) No Paint mode.

Grid Builder:

(+) Only need theme to get works. (*) Height variation inside dungeon (use Stairs marker). (-) Generate dungeon based on config. (-) No start & goals path. (-) No key/lock system. (-) No minimap feature. (+) Theme override volume. (+) Paint mode.

Both have:

  • Theming Rules
  • Pattern Matcher

Known Issues

Problem: Cannot build project that using Dungeon Architect because module is not found.

![BuildError.png](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/BuildError.png)

Solution: Make sure the project is C++ base project. If it’s blueprint from the start, convert it by creating any C++ class file (it’s automatically converted your project to C++) at Tools/New C++ Class.

![Untitled](Dungeon Architect - Unreal Engine f14fe0dc42a246e6a06d5a0c7a237c32/Untitled 9.png)

Just create dummy file if you do not plan to add C++ script, it just for converting your type of project.