How to make a good puzzle — Explorables Jam 2018 entry

August 19, 2018

The Rubik’s Cube. Sudoku’s. Video games. Puz­zles are every­where, but just how do you make a good puzzle—one that’s fun, and sat­is­fy­ing to solve?

I’ll explain this with lev­els from Sokoban, a puz­zle game where you push box­es to the cor­rect spaces on the grid. I’m demon­strat­ing my points using this game, but they can be applied to most types of puz­zles. Since puz­zle design is sub­jec­tive, your mileage may vary, but this is a good start­ing point that I’m also using for my own puz­zle games.

I’ve split my tips into three cat­e­gories: Pre­sen­ta­tion, how puz­zles are dis­played to the solver, Ele­gan­cy, how a puz­zle should be set up to make it com­fy to solve, and Aspi­ra­tion, how a puz­zle (or puz­zle game, specif­i­cal­ly) can become some­thing spe­cial.

UPDATE: A solu­tion sheet is now avail­able. Use it if you’re stuck on a puz­zle!


A good puzzle should explain itself

Here’s one exam­ple of a Sokoban puz­zle with bland graph­ics, and an iden­ti­cal one with prop­er metaphors for objects. Both use the same under­ly­ing rules, but which one is eas­i­er to learn how to play? If the play­er has an expec­ta­tion of how an object will react before attempt­ing to inter­act with it, that will help them learn and under­stand the puz­zle faster. This is the sin­gle most impor­tant func­tion of art in a puz­zle game, so don’t under­es­ti­mate it.

(In case you’re wondering—just click on an exam­ple, then use [Space] to begin, [Arrow keys] to walk, [Z] to undo, and [R] to restart. You can also open them in a new tab, which sup­ports has mobile con­trols.)

A good puzzle shows all puzzle pieces

These two exam­ples have the exact same lev­el and rules, but the first exam­ple is from a first per­son per­spec­tive while the sec­ond one is top-down and allows you to see the whole puz­zle. In the sec­ond exam­ple, it’s much eas­i­er to learn and under­stand the puz­zle. Make sure the way you choose to rep­re­sent your puz­zles is also the one that’s the most com­fort­able for ana­lyz­ing and solv­ing them.

Presentation take-away 🥡

A puz­zle should be invit­ing and reward­ing. The design­er should always sub­tly push the play­er towards the cor­rect solu­tion. You might want to obscure parts, but that makes it hard­er to learn how the puz­zle works, so don’t. Basi­cal­ly, a good puz­zle wants to be solved!


Use the smallest amount of space and puzzle pieces for the puzzle will work

Ide­al­ly, you want the play­er to spend the most time think­ing about a puz­zle, and as lit­tle time as pos­si­ble to input that solu­tion into the puz­zle to see if it works as intend­ed. This is why puz­zles should be in their small­est solv­able set­up, to make it eas­i­er to inter­pret and under­stand the puz­zle. Hence, when you start with the left puz­zle, you’ll have a lot of fric­tion, where­as the right puz­zle is small­er, and less mis­com­mu­ni­ca­tion can occur.

A red her­ring is a puz­zle ele­ment that seems rel­e­vant, but isn’t required to use to solve the puz­zle. It’s clut­ter, and thus unnec­es­sary. A bet­ter idea would be to place objects that seem use­less ini­tial­ly, but are actu­al­ly used in com­plete­ly new and unex­pect­ed ways, mak­ing them rel­e­vant.

Understand possibility space

The big­ger a puz­zle becomes, the larg­er it’s pos­si­bil­i­ty space gets. This pos­si­bil­i­ty space is the num­ber of dif­fer­ent states the puz­zle can be in. So the start­ing sce­nario would be one state, and mov­ing left would move the puz­zle into anoth­er state. Mov­ing back right would restore the orig­i­nal state. But push­ing the block below you down­wards opens yet anoth­er state with the block moved. If the above game, you can see the states that your action would result in for the four direc­tion you can walk into every turn.

If you keep at it long enough, you’ll arrive in a solved state, or hit a dead end. The min­i­mum amount of steps between start and solu­tion is a good mea­sure­ment of how dif­fi­cult a puz­zle is. It’s tricky to cal­cu­late exact­ly how big the pos­si­bil­i­ty space is, but gen­er­al­ly: the big­ger the lev­el, and the more things you can do on that lev­el, the big­ger the pos­si­bil­i­ty space. Gen­er­al­ly, a large pos­si­bil­i­ty space makes a puz­zle hard­er, but also pre­vents play­ers from brute forc­ing the solu­tion, so it’s very much a dou­ble-edged sword.

If you want to play more with this con­cept, try out Puz­zle­Graph.

Elegancy take-away 🥡

Usu­al­ly, min­i­mal­ist is the way to go to respect the play­er’s time as much as pos­si­ble. We have tools to ana­lyze how ‘hard’ a puz­zle is, but actu­al­ly playtest­ing it is also real­ly impor­tant to see how play­ers per­ceive dif­fi­cul­ty.


A good puzzle wants to teach the player

Once you know how to solve a Sudoku, you’ve solved them all. You can keep solv­ing them, but you won’t learn any­thing new. Is solv­ing the same puz­zle mul­ti­ple times with a dif­fer­ent coat of paint real­ly that inter­est­ing?

These exam­ple both have two puz­zles. The first puz­zle in both is iden­ti­cal, it’s about get­ting through walls of crates. In the left game, the sec­ond puz­zle is anoth­er ver­sion of puz­zle one, but longer. The sec­ond exam­ple has a new sec­ond puz­zle puz­zle show­ing anoth­er side of the ‘push­ing through walls of blocks’ dilem­ma. If the design­er wants to keep teach­ing you new things in every lev­els, puz­zles become much more focused and ele­gant.

A puz­zle will gen­er­al­ly con­sist of dif­fer­ent com­po­nents that inter­act with each oth­er. In most games, these are intro­duced sep­a­rate­ly, ramped up in dif­fi­cul­ty, and then thrown in the mix with oth­er puz­zle mechan­ics the play­er has already learned, open­ing up new inter­ac­tions between them. No puz­zle lives in iso­la­tion from the oth­ers, and this is why you need to be care­ful with the order­ing of puz­zles.

A good puzzle (game) should be ambitious

Gen­er­al­ly speak­ing, the more orig­i­nal and clever the game’s core mechan­ic, the more inter­est­ing the game and it’s puz­zles. That’s why we’re see­ing crazy puz­zle games about warp­ing space or time trav­el or… rolling sausages over grills. Sokoban is not very orig­i­nal, so it prob­a­bly is not the best to demon­strate my point here… but I’m gonna try any­way. Both of these exam­ples have the same puz­zles, but present them very differently—the sec­ond game has a bit more con­ti­nu­ity, and even a bit of fore­shad­ow­ing…

This is why most good puz­zle games take place in mys­te­ri­ous worlds—to add a lay­er of mys­tery to the already mys­te­ri­ous puz­zles. That’ll help to give the play­er moti­va­tion to keep solv­ing the puzzles—they want to see where it’s all going, after all. This is also why puz­zle games allow them­selves to be a lit­tle play­er-unfriend­ly from time to time.

Aspiration take-away 🥡

Puz­zles should be a lit­tle bit inac­ces­si­ble if they want to evoke a feel­ing of mys­tery and sen­sa­tion to dri­ve the play­er, and to make them eager to learn, explore and exper­i­ment with its sys­tems.

Final words

I hope this made you real­ize design­ing puz­zles is, in fact, very much a puz­zle in of itself.

Are you itch­ing to make puz­zles now? You can load Puz­zle­script, and make new lev­els using the exam­ple projects, or make a new puz­zle game with rules writ­ten from scratch.

Playtest­ing is also a very impor­tant part of mak­ing a good puz­zle game, more so than with oth­er types of games. My arti­cle about playtest­ing could be a very nice fol­low-up for you. And to plug myself even fur­ther, you can try my puz­zle games Tahi­ra’s Tow­er and Sokobanana to see how I apply these rules to my own work.


This arti­cle was most­ly inspired by “A Good Puz­zle Game Is Hard To Build”, an inter­view with puz­zle design­ers about what makes a puz­zle game good.

Oth­er sources include Game Mak­ers Toolk­it’s video “What makes a good puz­zle?” and this inter­view series by dev­mag: “How are puz­zle games designed?”

Some of the puz­zles here were adapt­ed from Microban and Autosokoban. All inter­ac­tive wid­gets here were made using Puz­zle­script.

This arti­cle is a sub­mis­sion to the Explorables Jam. This is my first explorable, so if you’ve read to the end and have a bit of free time, con­sid­er giv­ing me some feed­back! Con­tact info is on the top right of the page.

  or subscribe here!