27 June 2017

Over the last few weeks I've been trying to come up with a good set of mechanics for a simple puzzle game. It turns out that this is a very tough problem, and so for inspiration I turned toward some of my favorite puzzle games to see what exactly made them so great. For a general overview of what makes a good puzzle, check out this older blog post.

When I play a puzzle game, I'm looking at it on two axes: potential and execution. Potential is generally determined by the mechanics. High potential mechanics means that the puzzle authors have a lot of expressive power. That expressive power is what allows the authors to create "a-ha" moments, and those moments tend to be the most impactful part of puzzles. On the other hand, execution is about to what extent that potential is explored, and how often the solver experiences these breakthrough moments.

Among the puzzle games that I felt had both great potential and execution are five in what I'll call the "simple puzzle" genre:

Within these puzzles, there were a few patterns that stood out to me that really contributed toward these games being high potential.

Irreversible Change

All of these games have changes that can't be undone. When a snakebird eats fruit, it gets longer, and there's no way to shrink it again. When part of a sausage is cooked, it's cooked forever. When a flower blooms, it will be on the block forever. When two jellys merge, there's no way to split them.

Furthermore, all of these actions are part of the goal of the puzzle! In Snakebird you need to eat all the fruit before the exit opens. In Stephen's Sausage Roll you need to cook all the sausages. In Hanano Puzzle and Hanano Puzzle 2 you need to make all the blocks bloom. In Jelly no Puzzle you need to merge all the jellys that can be merged.

Importantly, each of these irreversible changes also fundamentally alter the types of movements that you can do with the piece that changed. Snakebirds of length 4 are very different than snakebirds of length 5, as you'll discover if you play the game. Once a part of a sausage is cooked, suddenly you need to make sure that part of the sausage avoids all of the grills. When a flower blooms in Hanano Puzzle, not only is the block now 2x1 instead of 1x1, you also have to pay attention to the new flower so that it does or does not cause further blooms. And of course, merging jellys makes them a different shape, which could add or remove possible movements.

In all of these games, most puzzles involve many of these irreversible actions that could happen in any order, and so they can create a breakthrough moment by subtly requiring a particular order. This is especially cool when there is a sort of interleaving in the solution. For instance, if you need one snakebird to eat the first and third fruits, helping another snakebird to eat a fruit in between. Finding these intermediate requirements and then determining how to make them happen is a very satisfying solving experience.

Conditionally Reversible Moves

In addition to irreversible change, all of these games have moves that can be reversed, but only in specific circumstances. In fact, all of them have the same implementation of this idea: gravity.

What makes gravity such an interesting mechanic in all of these games is that it's significantly easier to go one direction than the other direction, creating an asymmetry. Falling down is easy. Climbing is hard. As a result, if the solution clearly requires climbing (for example, in Hanano Puzzle if all the blocks of a color are more than one tile lower than the flowers of the same color), then the solver's attention is immediately drawn to the question of how to make that climbing happen.

Jelly no Puzzle and Hanano Puzzle are both particularly interesting in this regard because lifting a block requires merging with a wall-jelly in Jelly no Puzzle and requires blooming a flower in Hanano Puzzle. Those actions are both irreversible! So not only is lifting blocks hard, but it's straight up limited. The two mechanics can interact with each other in so many different ways, allowing for a massive design space.

Snakebird is a bit different. It's easy enough to get a snakebird's head to go up, but sometimes you don't get high enough, or once you do the snakebird is in the wrong shape. What to do? Well, use another snakebird, of course! And sometimes something that works with a length 5 snakebird doesn't work with a length 4 snakebird, or vice versa. So while lifting a snakebird doesn't consume one of your irreversible actions, it can still be important to do the lifts with proper timing. So once again, gravity interacts with the other mechanics in such a way that gives the puzzle writers a lot of flexibility in how their puzzle feels and what the solution looks like.

It's surprisingly hard to come up with other natural mechanics that are conditionally reversible. One that comes close is Sokoban-style movement. Pushing a boulder down a narrow hallway is no problem, but if you want to push it back you're going to have to get to the other side somehow. You can see some of this in Stephen's Sausage Roll as well. However, the problem that I have with trying to use this kind of mechanic is that narrow corridors feel artificial, and the conditional aspect depends on that narrowness. In other words, it's not the default.

That might seem like a strange objection. Puzzles are obviously artificial, aren't they? So why should it matter that they feel artificial? Well, I encourage you to compare the puzzles in any of the five games we're talking about here to figure 5 in this paper. The narrowness makes it very obvious that the puzzle author is trying to force something particular, and the solver doesn't get room to play around. Narrowness is convenient for the writer to ensure that the solver finds the intended solution, but it will ultimately feel less satisfying on the other side.

I don't mean to say that every puzzle game needs these properties to be good, but if you're coming up with puzzles and notice some of these similarities, you're probably on the right track.