4 Votes


Hits: 1498
Comments: 6
Ideas: 2
Rating: 4.75
Condition: Normal
ID: 9097


December 7, 2018, 10:57 am

Vote Hall of Honour

You must be a member to use HoH votes.
Author Status


Zelda-style Dungeon Generator


This is a method to randomly generate a branching dungeon graph that can be used to emulate the traditional lock-and-key style of dungeon that is prominent in the Legend of Zelda series of games.

This is based on a grammar I found a while back, that I cannot find an active link to any more. I remember the name of the guy who wrote the paper was named Dorman. I created this a while ago. I have included the instructions in the image itself so that it can be downloaded and used stand alone. Below I have an example of how it is used.

So in the example, I am replacing the "OL(i1)" (in the green box on the first graph). I rolled a 4 so I use the sequence that is in the red box. OL takes a parameter (the "key ?" on the diagram above). In this instance, "i1" is provided, so I replace the "?" in the red box with "i1", and connect the blue and teal nodes properly, the result is two nodes (in the blue box) added to my final graph. Of note in the final graph is the chain "OL(!)<->UI(hp)", that represents a portion of the dungeon that cannot be entered unless the player has an item that is not provided in this dungeon. If the player comes back when he or she has that item, they can eventually get an extra heart piece.

Additional Ideas (2)


2018-12-08 10:45 PM » Link: [9097#98591|text]
Very cool. I remember taking a run at implementing this when I first saw the paper, but got sidetracked onto another project. Absolutely I'll be taking a look at this.

I still have the PDF of the paper kicking around somewhere. I'll see if I can find it when I get home.

2018-12-22 02:27 PM » Link: [9097#98599|text]
1. found the paper. In a folder marked 'rpg-dorman paper'.
2. totally didn't see actual 'comments' section below, this isn't an idea. I'd delete if I could.

2018-12-22 02:31 PM » Link: [9097#98600|text]
Please register to add an idea. It only takes a moment.

Join Now!!

Gain the ability to:
Vote and add your ideas to submissions.
Upvote and give XP to useful comments.
Work on submissions in private or flag them for assistance.
Earn XP and gain levels that give you more site abilities.
Join a Guild in the forums or complete a Quest and level-up your experience.
Comments ( 6 )
Commenters gain extra XP from Author votes.

Voted lordmax
December 8, 2018, 22:46
Great idea!
Voted Cheka Man
December 9, 2018, 0:08
Only voted
Voted Strolen
December 9, 2018, 8:23
This is a Quest waiting to be created!!

Bonus points for leading me to Joris Dormans and I read a bit and watched a presentation. I actually love these kind of formulatic/algorithm type building blocks and was thrilled to see this. The graphics are great!!
Voted valadaar
December 10, 2018, 11:31
I don't really follow - I may be getting old since I need you to show all the steps in your example.

So, the first graph is S->N->e

Looking at DungeonStart, I don't see any with the S->N entry? Did you substitute OM(?)

December 10, 2018, 22:56
The example in was not the beginning of the dungeon, it was in the process showing how the process of replacing nodes works. Below is the steps to get to the first part of the example. You can see them visually at: imghttps://i.imgur.com/C5B7C4z.png/img

But let me walk you through it.

I start with DungeonStart 6-10 and process the "C()" first.

The C 6-10 resolves to Blue<->MO()<->Teal, So now the "C()" is replaced by "MO()".

There is only one option for MO() so I go ahead and replace the MO() on the graph with the expanded version.

Next I move on to the "MI(i1)" node. MI 11-20 is Blue<->S()<->? with a one way loop back to the Blue node (representing the shortcuts that some Zeldas provide back to the head of a branch once you have completed that branch.

Resolving the "S()" ends up with swapping the "S()" node for an "e" node. And now the dungeon is in the state of the example above.

Random Idea Seed View All Idea Seeds

       By: Strolen

A race that are always born as twins and only one recieves a soul. The other is soulless therefore without pity, shame, or guilt. The evil race. Can't tell them apart by looking at them.

Ideas  ( Lifeforms ) | December 31, 2001 | View | UpVote 1xp

Creative Commons License
Individual submissions, unless otherwise noted by the author, are licensed under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
and requires a link back to the original.

We would love it if you left a comment when you use an idea!
Powered by Lockmor 4.1 with Codeigniter | Copyright © 2013 Strolen's Citadel
A Role Player's Creative Workshop.
Read. Post. Play.
Optimized for anything except IE.