How to make a puzzle game

Next Tuesday I’m on the hook to give a presentation called, "How to Make a Game Like Pacman". However, after playing Braid (the new XBLA game from Jonathan Blow) I feel like puzzle games need to be addressed, too.

Braid is a puzzle game masquerading as an old-school platformer. It’s good, with interesting puzzles and plenty of quirky meta gameplay (excellent presentation, too.) But it still falls into a puzzle game pattern that…

I’ve been aware of for a while. Now, I will share the pattern (the how-to) with you. Use this knowledge well.

Basically, a puzzle game is a collection of objects on a playfield. The types of objects interact in interesting ways with each other and with the playfield itself. The objects are (in some way) interactable; you can move them, turn them, push them, etc. By interacting, and thru the relationships between the objects, you can achieve some goal (win the level). In many puzzle games, the avatar (the player’s character) is an object, and the level is interactable by using the relationships between the avatar and the other objects on the playfield.

Let’s break it down:

1) choose an overall theme. Is your game about clouds, fire, the desert, sadness, clowns, or the sadness of flaming clowns?

2) come up with some objects you’d like in your game. What if we make a puzzle game with fishes and flamethrowers? Think about the interesting ways they could interact. Flamethrowers can burn or cook or repel fishes.

3) come up with a playfield for your objects. Many puzzle games just default to a simple grid, but that’s one of many possibilities. Braid’s playfield is a 2D platforming level, like Super Mario Bros.

4) now you’re ready to build a matrix, a grid showing all the relationships between each type of game object. If your game had three object types (avatar, fish, and flamethrower), you’d build a 3×3 grid, and fill in each box with every possible interaction of two objects. Actually, you’d build a 4×4 grid, ’cause it’s important to detail how each object interacts with the playfield, too.

5) now it’s time to actually program the first version of the game. Code the playfield, the objects, all the interactions, and the ways the player can control the game to reach the goal. And there’s one more critical thing you have to make; a level editor.

Puzzle game game levels are all designed meticulously by hand. Do yourself a favor; make the level editor as powerful and easy-to-use as possible. It won’t just make your life easier, it’s also a great feature for your players to make their own levels (which you can appropriate and sell as an add-on pack, or just host on your forums for free).

6) now it’s time to make levels. Each level should have an "Ah-hah!" moment, where the player realizes what they must do to win. In order for them to have that moment, YOU must have it first. Dreaming up 50 levels of "Ah-hah!" is actually really hard, but there’s a good place to start.

Look back at the matrix you made in step 4. Each of those grid boxes is an "Ah-hah!" moment waiting to happen. In the example 4×4 matrix above (avatar, fish, flamethrower and playfield), you have the concepts for 16 different levels ready to go. Just build one level for each interaction in the grid box.

After making those, keep making levels. You can’t make them all at once. You’ll need days to come up with enough ideas for levels. You’ll get cool ideas for levels in the car, or while brushing your teeth. Write them down and implement them all.

7) So your game works, it’s got a bunch of levels, interesting objects, and a powerful built-in level editor. Congratulations, you’re 33% done! Now you have only two things left to do; make it beautiful, and make it perfect. Polish, polish, polish. Keep working on it until you’re sick of it, then take a break and get right back at it. Get everyone you can to play it. Watch over their shoulder to see how long it takes them to do each level. Then get back to polishing.

Jonathan Blow worked for more than 3 years on Braid, and most of that time was spent polishing. I’ve read of many other puzzle game developers, who work in the same exact way. If you can’t commit yourself to that amount of slavish devotion to your puzzle game vision (and lord knows I never could), you might try making some other type of game.

Puzzle games are a lot of hard work, not just in the tremendous amount of polishing and refining you have to do, but in the hard thought necessary to come up with interesting puzzle levels. But if you can work that hard, follow my pattern and you can’t go wrong.

Leave a Reply