Hey and welcome back to our devlog! It’s Dan (Programmer) and Hann (Marketing) here, so bare with us. It’s been a while since we last posted anything here, but we’ll do better from now on. Today we’re going to be introducing you to the Dungeon Architect we use to create the actual dungeons being used in Eternal Damnation. There are many steps to this process but we’ll do our best to break it down for you and explain each stage of the process.
Graph View
The Dungeon builder is a 4 part process, starting with the graph. This graph allows you to map the flow of the dungeon from start to finish via a (10x10) grid. Using the graph (first image) the architect begins in a flow chart styled lay out, key section of the dungeon being represented by their own text box, these text boxes contain information relating to the specific needs of each part, for example an empty room may need enemies and a chest to generate, this is dictated by the information linked to each box. These sections can vary from simple paths to boss fights and they all begin as a single text box with a set of rules applied. Each section has a bracket of parameters, allowing controlled random generations to occur each time a new dungeon is created, making each one totally unique.
Initial Grid
The graph is the starting point, translating next into the grid step of the architect. Within this grid you create a series of linking paths that form all of the corridors and dungeon rooms you see in game, all randomly generated within pre-set parameters. Having set your start and finishing points, the bridging paths between the two will dictate your internal dungeon layout. From here, between the start and finish points a variety of rooms will be generated, these include chest rooms, boss encounters, additional empty rooms and a variety of interlinking corridors within the dungeon. All of these will later become populated by a variety of enemies, loot, chests, items and other variable key parts of the dungeon. This generation process ensures there is always a unique but equally complex dungeon for players to become immersed in and to drive them forward with their rewards and quests.
The initial Graph view easily translates to become a more visual grid view of how the dungeon flow will look (top down). This view will demonstrate any external rooms and any overlapping corridor sections, allowing the player to potentially skip sections of the dungeon should they explore enough as some may discreetly link. The red dots visible within the coloured circles on the grid view represent enemies and/or items that will be generated in that area.
Tile Map
From the grid view, the dungeon architect creates a tile-map view, as seen in the image above. In this stage, each node (little red circle on the map) is assigned to a corridor, room or general area at random and will follow a pre-set of behaviour rules. The chance of generation for rooms and/or corridors are weighted at around 50%, ensuring the uniqueness of each individual dungeon layout and internal content. The random generation of the layout and content are also partly sourced from a seed, a seemingly random number entered into the generator before the dungeon is built, dictating a few unwavering factors whilst allowing for even more diversity in the outcome.
The tile-map view gives the first proper look at corridor lengths, room sizes and enemy placements. This allows the developer to ensure each graph flow creates engaging enough dungeons without needing to assign assets for each generation individually. In this view you can also now clearly see where spawns are placed for enemies and/or items, this allows for any tweaks needed should an area be over or under populated. The amount of spawnable assets is decided by a maximum and minimum amount, inputted during the first stage of this process. This sets the parameters for what can be generated per area and removes the possibility of extreme variations.
Final Product
Once the tile-map is completed, the generator is fed assets via a dungeon theme. This theme contains a series of markers that link to actual assets (specific enemies, loot or chests) and generate in the place of nodes, mentioned above. The layout is decided during the second stage of the architect and the grid layout is used to form the corridors and rooms generated in this final stage. Combined, they create a fully functional and totally unique dungeon every time it’s needed in game. The final dungeon view can be seen below and will feature all the pre-selected features for the dungeon aesthetics from a limited top down view. This included the textures and placement for floors, wall décor, detailing and more, all of which are integrated into the final product, ensuring each dungeon is entirely new for each player!
Eternal Damnation aims to provide players with an immersive and thrilling experience, no matter how much they play the game, dungeon architecture helps us make that a reality!