18th July 2010
How to play a puzzle game
There are many wonderful online puzzle games, but often a walkthrough
is created within hours of the game's release.
Certainly, these could in theory help mitigate an uneven learning curve, but in practice that's not the typical use. For casual players it is very tempting to search for guidance as soon as any difficulty is experienced - and if a walkthrough is found, continue using it from there on. It will therefore spoil the fun - all challenge is lost and the player is left with no reason to return. Furthermore, sites like Kongregate with achievements won't be as inclined to add them to your game.
I'm not talking here about tips, strategy advice or general guidance, but a set of full level solutions which anyone can follow. Obviously these can't be created for randomly generated levels, which is a point in their favour. However, for puzzle games, hand-crafted levels offer so many other advantages that it's unusual for these to be anything other than a complement to the handmade level set.
So when I made a puzzle game with 40 tightly designed levels, I decided to try to prevent walkthrough creation from being the piece of cake it usually is. (This game is not yet widely available to play. If you are interested in sponsoring it, please do contact me.)
But how can this be done? Usually puzzle games with hand-designed levels are essentially trivial to create a walkthough for. One simply solves all the levels and writes up the solution, probably with a screenshot, or as a youtube video.
The blocking strategy
The idea is to basically arrange for one of several versions of
each level to be presented to the player.
Firstly, my game uses colour or texture to represent different types of tile. For many levels, these are switched around at random. This immediately makes a walkthrough much harder to describe clearly and/or understand. If your game can not do this exactly, perhaps there is some other mapping you can apply to your levels. For example, maybe the level can be reflected horizontally and/or vertically, or perhaps rotated.
Secondly, for a few levels, there are actually several similar- looking versions with very different solutions. Creating these is potentially quite hard, because you are typically facing several constraints in level design anyway. But the chances are it will be possible for at least a few levels where the design makes it relatively easy - particularly if you plan for this in advance. Also, if this only applies to a few levels then you don't risk as much difficulty variation for the players, and it's more likely to be missed at first, increasing confusion.
Now, ideally, any particular player is always presented with
the same set of levels when they view the game.
If this were not the case, not only would innocent players become
confused, but walkthrough-makers would be able to replay the
level to see the alternatives. I think the best that can be done
here is to choose the level variants at random when the game is
first loaded, and store this with the progress data in the flash
cookie. Of course this data needs to be encrypted and checksummed
to prevent tampering.
But wait, there's a further twist: The selection for some of the levels can depend on the date of first loading. Then the persistent walkthrough-maker who replays the game has much less chance of finding out all your secrets. (Oh wait - what happens if they read this? Well, I'd be flattered by the interest. And it wouldn't be the end of the world.)
Admittedly, this is only a partial solution, but it will certainly make definitive walkthroughs much more difficult to create, and probably cause a lot of confusion with contradictory and partial walkthroughs floating around.
Got any more ideas? Leave a comment!