Making Meaningful Dungeons with Cyclic Dungeon Generation

Every now and then, you run into an idea that kinda rewires your brain (in a good way!) as you read it.

For me, a recent occurrence of that was when I read Cyclic Dungeon Generation by Sersa Victory, based on Joris Dormans’s 2017 roguelite Unexplored. As stated in the PDF, this blog article goes into more detail about the algorithm and systems behind it. Sersa Victory’s publication attempts to adapt Unexplored’s cycle for dungeon generation for tabletop roleplaying games and, in my opinion, succeeds with flying colors.

(Shoutout to @riseupcomus on Twitter, who’s tweet brought this system to my attention in the first place).

This post is a love letter to the system, and walks through the way I use the system myself.

Cover image: Dungeon by Arthur Yuan

The Basics

Cyclic Dungen Generation specifies 12 ‘cycles’. Each cycle is a flowchart-like representation of a certain dynamic that can be found within a dungeon. For instance:

The lock-and-key cycle is a classic; show the players a locked door, and have them return later with a key for that rewarding feeling.

It’s important to note that ‘locks’ and ‘keys’ are not necessarily literal in this context; it might involve an actual key and a locked door, but it can also involve, say, an environmental hazard and a means to pass. Players might pass a pool of lava with a door on the other side (serving as the lock), and the ‘key’ might involve a lever raising a bridge allowing players to pass.

I made a simple Perchance generator including all 12 cycles. Note the black diamonds – these are insertion points, places where a new cycle might start.

Making a Cyclical Dungeon: Main Cycle

Let’s try it out! Using the above generator, I get #5: the Foreshadowing Loop.

This means we first tease the actual goal, while the actual path involves more trials and tribulations.

I am going to use Draw.io to easily visualize our progress. This will also allow me to slowly morph out concept flowchart into an actual floorplan.

S for Start, G for Goal

To keep things relatively simple, we’re going to do 2 subcycles. You could easily keep making a dungeon more and more complex by adding more and more cycles on each black diamond.

The First Subcycle

I’m going to roll again, for the first ‘node’ in our base cycle.

So, we have 2 long paths, each featuring a key. Both keys are needed to pass the lock, which in this case is a lethal trap and means to disable or evade.

I decide to interpret ‘2 long paths’ as having 3 rooms each. The room with the lock is the goal of the first subcycle.

The Second Subcycle

We add a hidden shortcut. I will draw this in our graph using a dark grey line. I will interpret ‘long path’ as 3 rooms, once again.

Putting It All Together

We now have a flowchart representation of our dungeon, and we can start ‘interpreting’ what it all means. In this phase, I’m going to move the blocks around in Draw.io, and see what ideas come up.

The Foreshadowing

For starters, we need to foreshadow our goal. We can do this by simply having the objective behind ancient, magic-dampening iron bars. It could also be on the other end of a big chasm. For simplicity’s sake, I’m going to go for iron bars.

Two Keys

What kind of lethal trap could require two keys to disable? Let’s go for, hmm, a cult for a fire god, which tests their subjects by having them pass through a chamber filled with jets of flame, acting as the lock. This fire can only be activated (or deactivated) by the two head priests. They each carry a piece of a medallion.

Fire is just heat and light, I suppose, so let’s give both access to fire magic, and have one be blind and one covered in blisters.

Hidden Shortcut

I like the idea of a shortcut hidden behind a big statue of sorts, perhaps leading to the cult leader’s chambers. A big statue would fit in a room of worship, I suppose, with the living quarters of the cult’s higher-ups nearby.

I’ve numbered all the rooms and added a few (which will mostly act as hallways and such).

Now we can start shuffling a bit!

Cool! I still kept a copy of the flowchart version – the above version is more a move towards general layout. Now we can start filling in the final details! I’ll be using Dungeonscrawl for this.

The Final Result

I’ve added a few doors and rooms here and there that don’t break the fundamental flow of the dungeon, but break up the linearity a bit. The dungeon is still far from properly Jaquayed, true, but I do think it provides a cool general flow to things.

Furthermore, I found that this process also really helps the imagination, as the various types of cycles invite you to think of why these rooms are the way they are.


So yeah, that’s all! I would never claim to have some type of big platform, but I hope this idea reaches new people and helps them to create cool new stuff – especially with #dungeon23 going on!

6 thoughts on “Making Meaningful Dungeons with Cyclic Dungeon Generation

  1. This is great stuff! Definitely new ideas for me. Looking forward to giving it a go with my dungeon23 project!

  2. „ but I hope this idea reaches new people and helps them to create cool new stuff “. Yes. Thank you =)

    1. Yeah, if you like completely random dungeons better, that works too! Different approaches, different results 😊

Leave a Reply