Procedural Dungeon Generator (WIP)

My goal for this project is to create a procedural dungeon generator capable of dynamically generating and editing dungeon levels within Unreal Engine. To achieve this, I’ll be employing the wave function collapse (WFC) technique. This approach allows for both flexibility and randomness in dungeon design, ensuring each generated level is unique and editable to suit specific requirements.

Development Stage #4

I’ve been enhancing the level by incorporating assets that can be dispersed randomly regardless of the seed or size of the level. Additionally, I’ve implemented simple AI for enemies to enable them to wander the level autonomously. Moreover, I’ve introduced more controls to the project, allowing for adjustments such as the number of enemies, randomization of pillars, and asset resolution, which dictates the density of assets spawned on the map. These additions enhance the customization and scalability of the dungeon generator, offering greater flexibility in level design.

Development Stage #3

I’ve made progress by adding assets to the level, giving it more substance. However, to further enhance the atmosphere and avoid an empty look, I plan to procedurally populate the level with smaller assets like barrels, crates, and torches. These additions will add detail and immersion to the environment.

I also want to highlight the versatility of this approach. While this current level follows a specific style, the true strength lies in its modularity. By swapping out assets, the entire style of the level can be transformed. Whether it’s creating a modular room system that connects seamlessly or crafting a more linear environment with less open space, the possibilities are vast and adaptable to various design preferences.

“What sets this method apart from simply placing grids or assets randomly is the inherent structure it provides to the level. Unlike random placement, this approach ensures that there’s a coherent layout, guaranteeing that all points within the level are accessible to the player. This means the entire level is fully explorable, eliminating any blocked-off areas and enhancing the player’s immersion and freedom of movement throughout the environment.

Development stage #2

Moving forward, my next focus is on populating the level with assets and potentially implementing a trap system scattered randomly throughout the map. I’ve deliberately postponed the design phase until later, prioritizing the functionality of the level to ensure it operates as intended. The seed and parameters I’ve established provide the framework for generating countless dungeon levels of various shapes and sizes.

Currently, I’ve laid down the basics and positioned most of the tiles in their designated locations. As I’m still in the blockout/development stage, the multitude of colors scattered across the level serves as a troubleshooting aid. For instance, green tiles represent corners and should be positioned correctly. Any deviation, such as a green tile spawning in the middle of a room, would signal an issue that needs addressing. Additionally, the red areas denote danger zones, such as lava pits, adding an extra layer of challenge to the level.

Development stage #1

The groundwork has been laid, and here’s one instance of a randomized level generated based on the established parameters. By adjusting parameters such as width, length, and seed, multiple variations of the level can be created. While the current iteration may appear plain, there’s ample room for expansion and enhancement. I’m eager to build upon this foundation to add depth, complexity, and visual interest to the level.