The Dungeon Master is a Unity Asset with the purpose of generating levels procedurally. This asset is jam-packed with features. These features all fall into one of the following categories:
- Dungeon generation (both runtime and design time)
- Dungeon rendering
- Map system
Play a demo game!
A dungeon is a single level or a group of levels attached together. These levels can be anything: a village, a forest, a cave, an actual dungeon, anything can be done.
The dungeon can constitute the entirety of a video game or it can be attached to an outside world that could be represented by, let's say, a world map. This world map can allow entrance to multiple dungeons.
The dungeons can be generated at runtime or at design time then customized manually. It is also possible to pre-configure a portion of a dungeon and let the Dungeon Master finish the generation randomly.
The level generation is room based. A level is a collection of rooms that are all of the same size. It is possible to split a big rooms into smaller chunks so the rooms are not all visually the same size when playing the game. (The developer must supply the Dungeon Master with room assets.)
Connectors are used to attach the rooms together, to attach the levels together and to attach the dungeon to the outside world. These connectors can be anything: doors, windows, breakable walls, air ducts, teleportation devices, etc. These connectors can be locked by the lock/key system.
Once the dungeon is generated, spawnables are added to the rooms. The spawnables can be anything: scenery, items, monsters, powers, events, anything you can think of. It is possible to control the occurrence of spawnables with limiters to avoid generating too much of the same spawnable in a single room, in a single level or in the whole dungeon.
Sections of the dungeon can be locked with the lock/key system. The developer can configure a connector as "locked". Anything can be used to lock a connector: the obvious example is a locked door, but a high-ledge can also be a lock and the key would be, let's say, a double-jump skill. Once the dungeon is generated, it will be crawled automatically to detect which areas are locked and which keys are required. The keys to unlock these areas will be automatically spawned in the dungeon in a fashion that ensures that all areas can be unlocked and all keys can be reached. This feature makes the Dungeon Master the ideal asset to create a metroidvania-like game.
The generation is based on seeds. Each level has one seed to control the layout of the level and one seed to control the generation of the spawnables. So developers have a high level of control to fine-tune the dungeons.
Dungeon Generation Features
- Seed based generation
- Ultra-fast generation at runtime and design time
- Room based level generation with weight, priority, limits and preset rooms
- Lightning-fast dynamic NavMesh generation at runtime
- Spawnables of any kind distributed in to the dungeon, based on weight
- Control occurrences of spawnables with limiters
- Automated Lock/Key system to manage level exploration
- Dungeons are divided in levels, levels are divided into thematic regions and rooms
- Works for great for 2D, 2.5D and 3D games
- Ideal for rogue-like and metroidvania games
- Connect rooms and levels automatically
- Helpful wizards to streamline the dungeon configuration process
- Tools to test and gather stats on dungeon generation
- And many more features!
There should be no limit to the size of a dungeon created by the Dungeon Master. But this means that dungeons and level can end up being gigantic. This can put too much strain on the target gaming platform.
To solve this problem, the Dungeon Master comes equipped with a built-in dungeon rendering system that ensures only the relevant parts of a dungeon are enabled.
Rendering behavior can be configured on dungeon, level and rooms. So game developers can fine tune the rendering of any part of the dungeon.
The rendered area of a level can be configured using render shapes and sizes. This allows to render perfectly any kind of game.
Each room can have its own render weight. So especially large rooms do not put too much of a strain on the game.
Rendering is handled through coroutines, so rooms are loaded without lag at runtime.
Cross-level rendering is enabled by default. This features allows to avoid loading times when entering/leaving a level or a dungeon.
If the rendering features of the Dungeon Master don't quite fit with a project requirements, it is not a problem. The source code provided with the Dungeon Master was designed with extension in mind. A new version of the Dungeon Renderer can be implemented with new features and everything else will still work perfectly.
Dungeon Rendering Features
- The only level generation asset with a built-in, tailor-made rendering system
- Render only the currently useful parts of the dungeon
- Eliminate in-game loading time with cross-level rendering
- Rooms are loaded through coroutines for a perfect lag-less loading at runtime
- Render shapes and size to fit with any kind of game
- Room or level based render weight to fine tune rendering
- Rendering NavMesh solution which allows AI to navigate through Levels seamlessly as they are rendered
- Configure rendering on dungeons, levels and rooms
- Easy to extend and modify the rendering behavior
The Dungeon Master comes equipped with a fully automated map and mini-map generation system. With this tool, players can easily navigate through gigantic dungeons and levels.
The Dungeon Master already has all the sprites to auto-generate metroidvania like maps. But each room, connector and spawnable can have its own sprite to display on the map. So a high level of customization can be reached without a single line of code.
Each room in the dungeon has a state that tells if and how it should be displayed on the map. The same goes for connectors and spawnables. As the player explores the dungeon, the map is automatically updated to reveal more information.
The mini-map size and location on the screen can be easily configured for each level.
Players can display a full map with a lot of options to explore the map, switch floors and levels, go back to the player location and plan journeys.
Players can be allowed to plan journeys to reach any kind of spawnable through a GPS-like navigation system based on a custom implementation of A*. The journey calculation is lightning fast and can spawn over multiple levels. The journey is displayed on both the full map and the mini-map and is auto-updated as the player travels and discovers new parts of the dungeon.
If you don't like how journeys are calculated or displayed, it can be modified or extended easily. Just like the rendering system, the map system was developed with extension in mind and new features can be added easily with a new implementation of the Journey Calculator and the Journey Renderer.
Map System Features
- The only level generation asset with a built-in, tailor-made map system
- Map updates automatically as the player travels through the dungeon
- Modify map behavior on a per-level basis
- Full map with ton of features and customizable mini-map
- GPS-like system to display journeys on the map based on a lightning-fast custom implementation of A*
- Journeys can span over multiple levels
- Control how rooms and spawnables are displayed on the map
- Easy to extend and modify the map behavior