Puzzle Dependency Charts

Aug 10, 2014

In part 1 of 1 in my series of articles on games design, let's delve into one of the (if not THE) most useful tool for designing adventure games: The Puzzle Dependency Chart. Don't confuse it with a flow chart, it's not a flow chart and the subtle distinctions will hopefully become clear, for they are the key to it's usefulness and raw pulsing design power.

There is some dispute in Lucasfilm Games circles over whether they were called Puzzle Dependency Charts or Puzzle Dependency Graphs, and on any given day I'll swear with complete conviction that is was Chart, then the next day swear with complete conviction that it was Graph. For this article, I'm going to go with Chart. It's Sunday.

Gary and I didn't have Puzzle Dependency Charts for Maniac Mansion, and in a lot of ways it really shows. The game is full of dead end puzzles and the flow is uneven and gets bottlenecked too much.

Puzzle Dependency Charts would have solve most of these problems. I can't remember when I first came up with the concept, it was probably right before or during the development of The Last Crusade adventure game and both David Fox and Noah Falstein contributed heavy to what they would become. They reached their full potential during Monkey Island where I relied on them for every aspect of the puzzle design.

A Puzzle Dependency Chart is a list of all the puzzles and steps for solving a puzzle in an adventure game. They are presented in the form of a Graph with each node connecting to the puzzle or puzzle steps that are need to get there. They do not generally include story beats unless they are critical to solving a puzzle.

Let's build one!

I always work backwards when designing an adventure game, not from the very end of the game, but from the end of puzzle chains. I usually start with "The player needs to get into the basement", not "Where should I hide a key to get into some place I haven't figured out yet."

I also like to work from left to right, other people like going top to bottom. My rational for left to right is I like to put them up on my office wall, wrapping the room with the game design.

So... first, we'll need figure out what you need to get into the basement...

And we then draw a line connecting the two, showing the dependency. "Unlocking the door" is dependent on "Finding the Key". Again, it's not flow, it's dependency.

Now let's add a new step to the puzzle called "Oil Hinges" on the door and it can happen in parallel to the "Finding the Key" puzzle...

We add two new puzzle nodes, one for the action "Oil Hinges" and it's dependency "Find Oil Can". "Unlocking" the door is not dependent on "Oiling" the hinges, so there is no connection. They do connect into "Opening" the basement door since they both need to be done.

At this point, the chart is starting to get interesting and is showing us something important: The non-linearity of the design. There are two puzzles the player can be working on while trying to get the basement door open.

There is nothing (NOTHING!) worse than linear adventure games and these charts are a quick visual way to see where the design gets too linear or too unwieldy with choice (also bad).

Let's build it back a little more...

When you step back and look at a finished Puzzle Dependency Chart, you should this kind of overall pattern with a lot of little sub-diamond shaped expansion and contraction of puzzles. Solving one puzzle should open up 2 or 3 new ones, and then those collapses down (but not necessarily at the same rate) to a single solution that then opens up more non-linear puzzles.

The game starts out with a simple choice, then the puzzles begin to expand out with more and more for the player to be doing in parallel, then collapse back in.

I tend to design adventures games in "acts", where each act ends with a bottle neck to the next act. I like doing this because it gives players a sense of completion, and they can also file a bunch of knowledge away and (if need) the inventory can be culled).

Monkey Island would have looked something like this...

I don't have the Puzzle Dependency Chart for Monkey Island, or I'd post it. I've seen some online, but they are more "flowcharts" and not "dependency charts". I've had countless arguments with people over the differences and how dependency charts are not flowcharts, bla bla bla. They're not. I don't completely know why, but they are different.

Flowcharts are great if you're trying to solve a game, dependency charts are great if you're trying to design a game. That's the best I can come up with.

Here is a page from my MI design notebook that shows a puzzle in the process of being created using Puzzle Dependency Charts. It's the only way I know how to design an adventure game. I'd be lost without them.


So, how do you make these charts?

You'll need some software that automatically rebuilds the charts as you connect nodes. If you try and make these using a flowchart program, you'll spend forever reordering the boxes and making sure lines don't cross. It's a frustrating and time consuming process and it gets in the way of using these as a quick tool for design.

Back at Lucasfilm Games, we used some software meant for project scheduling. I don't remember the name of it, and I'm sure it's long gone.

I've only modern program that does this well is OmniGraffle, but it only runs on the Mac. I'm sure there are others, but since OmniGraffle does exactly what I need, I haven't look much deeper. I'm sure there are others.

OmniGraffle is built on top of the unix tool called graphviz. Graphviz is great, but you have to feed everything in as a text file. It's a nerd level 8 program, but it's what I used for DeathSpank.

You can take a look at the DeathSpank Puzzle Dependency Chart here, but I warn you, it's a big image, so get ready to zoom-n-scrollâ„¢. You can also see the graphviz file that produced it.

Hopefully this was interesting. I could spend all day long talking about Puzzle Dependency Charts. Yea, I'm a lot of fun on a first date.

Sketchcraft Feb 10, 2018
Thx Ron! Quick question, do you have the pro version of OmniGraffle or the standard ver? Just check in before I drop some loot on it. Really appreciate this post!

Greg Feb 24, 2018
You mentioned in the post that you used some kind of scheduling software at Lucasfilm Games. I wonder whether you could make a puzzle dependency chart in Microsoft Project or similar? (Not Primavera, since for that money you could easily buy multiple copies of OmniGraffle.)

David Mar 05, 2018
Absolutely amazing, love this! I'm in the process of making a another puzzle game and I will try to do it this way this time.

gonzaloko04 Mar 16, 2018
hi, i am gonzaloko04

Chris Ainsley Mar 25, 2018
I created an online tool for creating these types of charts here : http://eeyo.io/pdcbeta

Joe Arax Apr 05, 2018
Don't spoil Monkey Island just yet! I'm still trying to figure out the puzzles in Act I!

David Fox Jun 08, 2018
Just saw this article. The Mac software we used to build puzzle dependency charts was MicroPlanner. https://en.m.wikipedia.org/wiki/MicroPlanner_X-Pert

I think I used it for Zak too.

Buyong Oct 24, 2018
<a href="https://games.lol/puzzle/">Puzzle Games</a>

David Blakemore Feb 08, 2019
Just stumbled across this and it's awesome! Thanks Ron. Quick question; how would you visually represent optional dependencies? Like as in there are two possible ways to solve a puzzle. Seems like if you just connected both solutions to the puzzle outcome, it would look like both were needed as opposed to just one of them being needed. Does that make sense?

Ron Gilbert Feb 08, 2019
I would color code the lines connecting the nodes. it wasn't perfect, but the best way I found.

Jaakko Vasankari Apr 17, 2020
I just wanted to say that in the field that I work in we use similar graphs, and because it is a nerd field, and it was previously descriped in a pattern sheet instead of a process map, I think the pioneers in my field are inspired what you do.

Tim Jul 30, 2020
Do you think Twine could serve this purpose also? It doesn't auto-arrange the nodes I don't think, but at least you don't have to manually draw any boxes and arrows. Plus you can sort of play through the puzzle to test the flow.

Jean Sep 02, 2020
Who designed the graphics and characters for your latest game, is it you and your associate?

Misha2Ohh Sep 27, 2020
Working link for the Deathspank image (CAO 092720) -- https://images-grumpygamer.nyc3.digitaloceanspaces.com/gg_deathspank_pdc.png

Simon Edwards Oct 01, 2020
I have a game that has object, information, action, score & threshold dependencies. I use different coloured lines and different line styles (dotted, dashed, etc) to show the types. Although ultimately it doesn't matter so much as they are all dependencies. I sometimes use entity/relationship modelling annotations for lines (being an ex DBA) too to show which way dependencies exist and if they are optional or not.
I find Gliffy not a bad tool and it's free.

HerrOlliri Oct 16, 2020
I use LucidChart to make a chart with my friend and its pretty good cause you can edit it with a friend at the same time and its free

Tiago Alves Oct 31, 2020
For people looking for a simple tool, to draw the dependencies on the fly, the free version of MindNode should do the trick.

Alfredo Nov 08, 2020
YOU ROCK, Ron! Thanks

Valentino Nov 17, 2020
You are the man Ron! Thanks for everything!

Jonathan Dickinson Nov 26, 2020
Great flowcharts.

Eugen Sep 25, 2021
@David Blakemore

I just started my first puzzle dependency chart, and what I think I'm gonna do is giving every set of actions that all need to be done the same color. So if you need to do either one of "A and B and C" or "D and E", the lines from A, B, and C will get one color, and D and E will get some other color. In GraphViz it can be done like this:

Start -> A, B, C, D, E
A, B, C -> Finish [color=red]
D, E -> Finish [color=blue]

rob Sep 29, 2021
Great stuff Ron.  Just an update on this.  I'm using Dia on linux to make my own PDC and it works perfectly. Looking at the deathspank chart I see little difference from a visual perspective and it has the full ability to draw arrows, they attach to the text boxes, etc.   I hope that helps.  live.gnome.org/Dia

Ash Feb 03, 2022
I'm working on designing a text adventure game for the first time and this was just what I needed to help me organize my scattered thoughts, thank you!!

Justin Feb 06, 2022
draw.io has a very useful online and offline service for this similar to the application mentioned here, but it can be used in Windows also.

Nat Apr 01, 2022
coggle is amazing for grapgh, flow chart etc anyway thanks for this post!!