Puzzle Dependency Charts
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.
(MI2_puzzle1.jpg)
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.