In previous Reynard devlog, Boštjan revealed that we’re planning to add a world map and in this post I want to write about the dungeons.
Before the development of the game, we’ve set some ground rules. One of those rules was that we want to increase the replayability of the game. That’s the reason we included randomly generated dungeons.
Writing a dungeon generator is fun, but it can be time consuming.
For an example. When I was designing a basic prototype of a dungeon generator questions kept popping up.
Couple of examples are:
- What roles can a room have (locked, treasure room, starting room…).
- Which dimensions of a room can appear.
- How many types of specific rooms can appear.
- When a room can appear? At the beginning, middle or the edge of the dungeon?
- How the monsters will spawn in the room.
- How will transition between rooms work.
- And many many many more…
The problem was that we had an idea where we want to go with the whole dungeon generation, but not the most “detailed” idea. That is probably the main reason I’ve spent so much time on creating a generator. Figuring out what we want the player to experience and how to keep him challenged was one of those details. Another thing that kept me busy was designing a generator which is designer friendly.
Check out the video to have a glimpse of early dungeon prototypes and other added features.
When I was making a dungeon generator more “user / designer friendly” I used Odin Inspector and Serializer plugin. It saved me many hours of work on inspector customization and serialization. So if you’re developing in Unity3D check it out, I think that you will find it very useful.
If you’re interested in dungeon generation and procedural level design, I’d recommend you to listen this cool GDC talk from the creator of Eldritch.