Using the white tabs at the top of the grid, players can select two columns to swap. Likewise, they can select two rows to swap using the tabs on the left side of the grid. Swapping a row with a column is not permitted. During a swap, the yellow disks slide with their column or row, while the yellow rings remain fixed. The rings are essentially targets that the players are trying to hit with the disks. One point is awarded for each disk that lines up with a ring. The point is lost again if the disk is moved away from the ring. The yellow number on the screen is the current score.
Players can move between levels using the green arrows at the bottom of the screen. A given level can be revisited any number of times and refined throughout the game.
The green number shows the moves remaining, and each column or row swap counts as one move. Switching between levels also decrements the move counter, so switching back and forth between levels is not without cost. When the green number reaches zero, the game ends.
I designed 21 levels for the game. Taking a page from the design of Mr. Heart Loves You Very Much, the sequence of levels gradually teaches you about the nuances of the game mechanics one step at a time. Thus, no instructions, let alone a tutorial, are needed to learn the game. As anecdotal proof of this claim, note that my spouse, a certified non-gamer, was able to learn how to play the game with no instruction. Perfectionism is intended to be a self-documenting game design.
After players learn about the game mechanics in the early levels, they will encounter more advanced levels that focus on the exploration of perfectionism. For example, in the following level, four points can be easily scored with two obvious column swaps, but the fifth point cannot be obtained without several additional column and row swaps. Is it worth it?
More than half of the levels were designed to express some particular consequence of the game mechanics, including consequences that relate to perfectionism. The remaining levels present variations on these expressions. The notion that a game level might communicate something to the player is rather new---we're not used to asking, "Now what is this level trying to tell us?" I credit Jon Blow's Braid design for stirring me to think in this direction.
Perfectionism was supposed to be a 1-week prototype. To implement the game, I used Game Maker, and this was my first experience with the tool (I programmed all of my previous games in C++ and used OpenGL or SDL for graphical displays). I was shocked at how much I accomplished in a mere 16-hours of logged development time, and I'll just state it flat out: Game Maker is an astounding piece of software.
Doing simple things in Game Maker is easy, while doing more complicated things is always possible. It's not that making a game in Game Make involves no programming, since defining object behavior is close to impossible without some sort of program-like construction (albeit a visual, point-and-click kind of programming). It's that all of the bookkeeping, such as tracking object instances and their states, is handled for you in a very elegant way. The other impressive thing about Game Maker, given its complexity, is that it seems to be bug-free. Everything just works, and it often works in a more intelligent way than you might expect. Now if only Game Maker was open-source, or at least platform independent, I'd be in heaven. Yes, this is a Windows-only game, alas, and the first of its kind to emerge from my stables.
After an ironically long night of final tweaking and polishing, I give you Perfectionism, a game about tweaking and polishing.
Hmm... maybe I should playtest it one last time.
Game Design Sketchbook will appear every month, featuring a new game prototype and article.
Jason Rohrer is an independent game artist, programmer, and critic. He lives with his spouse and two children in the rural town of Potsdam, New York, where they pursue a simple, frugal lifestyle.