I recently wrote a long post on the boardgamegeek forums that I would like to share and expound upon. You can see the original post in context here.
Solitaire game design has unique problems that multiplayer game design does not have to deal with. The player is not competing against an intelligent and determined opponent, so you have to give the player a challenge in other ways. Looking at other solitaire games will give you an idea of how other designers have tackled this problem.
Multiplayer games have the benefit of incorporating social interaction into the game. The human element creates uncertainty, tension, and fun. Players can compete against each other to prove their mettle, as in Android: Netrunner or Settlers of Catan. They can work together to overcome algorithmic obstacles, as in Pandemic or Space Alert. Some multiplayer games are ALL ABOUT the social interaction, such as Apples to Apples or The Resistance. Solitaire games cannot stand on this leg, so other elements must be put into place to keep the game engaging, and to allow the player to feel as if he or she is mastering the system.
Dice Dice Baby
Most solitaire games will have some sort of randomized gameplay element, whether that be dice, a shuffled deck of cards, random chit pulls, etc. This forces the player to stay on his or her toes and prepare for the worst possible outcome. It also forces the player to occasionally take risks. "If I don't roll a four or better right now, I am SCREWED." This helps add tension to what would otherwise be a solvable puzzle--and if the player wanted that, he or she could just play Sudoku.
This is one of the reasons that Zed Deck is a successful solitaire game. In Zed Deck, the player shuffles a specialized deck of cards. Each turn, the player draws the next card in the deck, then deals with the event on the card, usually by drawing two or more cards and referencing particular pieces of data on those cards. Then all those cards are discarded, and the player starts the next turn. The player only experiences perhaps a third of the available events each game, and always in a different order. This keeps the game fresh and interesting even after dozens of plays.
Another good trick is to give the player plenty of actions which he or she CAN perform, but only enough time or action points to perform SOME of them. In Space Hulk: Death Angel - The Card Game, for example, each squad can only perform a single action per turn. Sure, you may WANT to shoot and kill some filthy xenos, then shift the formation to get the best fighters in range of the worst threats, then activate the control panel for a positive effect, then add support tokens to the marine in the most danger... but that's too bad. You only get one action, so use it wisely.
Todd Sanders' games tend to do this very well, especially his Lassadar games. Check 'em out! They're free to print and play, and are consistently eye-pleasing and fun.
Flexible Game State
One of the keys to making the above idea work is shifting priorities. Giving the player 10 different actions that he or she can perform is all well and good, but if it is ALWAYS correct to kill zombies, that's what the player will do, and gameplay will become stale. Players will want to make the optimal move, so the optimal move cannot always be obvious, or your game will be boring.
Dan Verssen's games tend to do this well, I think. In Thunderbolt Apache Leader, for example, the player might have a juicy target to take out just over the ridge. The player then thinks, "Okay, I want to destroy that thing. Do I spend a couple of turns flying around the ridge and approaching the target from the north? Do I risk flying through the ridge at low altitude? Or do I go into high altitude and fly over the ridge, but expose myself to fire from that AAA over there?" Each of those options is better or worse depending on the game state. The player has to weigh variables such as how much fuel remains, how much damage the plane has already taken, and how much stress the pilot is already under. At different game states, the optimal approach will be different. Heck, sometimes the correct move will be to just ignore the target and move on!
See the Victory Point Games lineup for more inexpensive examples of this principle in action.
AI See You!
Another problem to tackle is the game's artificial intelligence. Are you going to use an algorithm to have the game mimic human behavior, so that the player feels like he or she is playing against an intelligent opponent? There are ways to do this, but it often means a lot of work for the designer, a lot of work for the player, or both.
For example, Race for the Galaxy: The Gathering Storm is an expansion to the base game that introduced a way to play the game solo. The player essentially rolls a die to see what the AI opponent does. However, the creation of this AI required thousands of computations to create a balanced and reasonably "intelligent" and difficult opponent for the player. That's a lot of work for the designer!
Other games force the player to perform a large number of tasks--drawing cards, moving tokens and cubes, rolling dice, calculating damage, et cetera--in order to perform all of the enemy AI's tasks. That's a lot of work for the player. Some gamers are willing to do this, but it is tiresome, and will dissuade a lot of potential players from really diving in to your game.
Other games don't try to emulate a player, though. In my own Enki-Des: The Soul Gates, the player has to battle six different monsters in turn. Each monster has one or more unique abilities, but each monster is also stupid. Every monster performs the exact same action each turn--attack! This makes it very easy for the player to keep track of what is happening--all he or she must do is decrease his or her Life. This SOUNDS bad, but the game still gives the player plenty of options each turn, as he or she balances short-term goals (killing the monster) with mid- and long-term goals (boosting stats, healing, preparing to fight the next monster, winning the game). Sometimes, the player will deliberately choose to take damage, because killing the monster or blocking the attack is not as important to him or her as some of the other actions he or she can take. Which ties back to the idea of shifting priorities.
Jessey Wright's stellar print-and-play dexterity game Nimbles the Spell Thief demonstrates a great use of AI. In the game, the player must flick Nimbles through a series of hallways and corridors in order to grab a precious Spell Tome and escape. Nimbles must avoid being seen by or colliding with the various guards as she makes her way through. The guards are controlled by simple rules--they move along preset pathways, and if they can "see" Nimbles (which in game terms means that you ended your turn too far outside the shadowy areas) then bad things happen. If too many bad things happen, Nimbles is captured. Even though the player is performing the actions of the guards, and the guards' actions are extremely limited, the player still feels as if the guards are active antagonists.
A key aspect to a successful solitaire game is system mastery--that is, the player's ability to improve his or her performance through practice and learning. This encourages the player to play the game multiple times and gives the player a feeling of accomplishment.
Let's look at a bad example first. Say there's a game called Roll High. In Roll High, the player rolls a die. If the player rolls a high number (4+ on a d6, for example), he or she wins. If he or she rolls low, it's a game loss. Not a very compelling game, is it? No matter how many times the player plays the game, no matter how much the player studies, he or she will not be able to improve his or her performance. (Well, aside from practicing specific dice-rolling methods that are typically considered cheating.)
One of the reasons my game Derelicts of Sin: Heresy fails as a solitaire game is that there is little reason to play more than a couple of times. Once the player has experienced all of the different branching paths (and there are only a few of those), the gameplay is very straightforward--conserve oxygen as much as possible, and try to place the location tiles in such a way that the engine room and the bridge are close to each other. There is no system to master, no skill at which the player can improve.
Utopia Engine, on the other hand, is a fine solitaire game. The mechanics are interesting and unique, and it takes practice to figure out their intricacies. The game is also difficult enough that a player may not QUITE win on his or her first few attempts, but will have gotten so CLOSE to victory that he or she is compelled to try again. And once the player masters the system enough to win consistently, he or she can then try to improve on his or her own high score.
In Soviet Russia, Decisions Make YOU!
The most important thing to remember is that solitaire players want to make difficult choices. They are not looking for a hand-out or an easy win. They want to weigh the different options against each other and decide what is most important. It is an exercise of the mind, so be sure to give the player difficult decisions with a wide possibility of outcomes.
DO NOT make a player's actions dependent on randomness. I know that I said that solitaire games should include randomness, but that's not what I mean. What I mean is: The player should always have a choice about how to proceed. Monopoly's dice-rolling movement mechanic is terrible, because it takes the action decision away from the player. "What do I get to do this turn? Oh, I rolled 4. That means the only thing I can do is move 4 spaces along this track." BORING.
What you want to do is give the player things to do, but mask the precise OUTCOME of those decisions. The player can move, shoot, hide, heal, or loot, but he or she does not know IN THAT MOMENT that he or she is about to draw an Overrun card that will buff all the enemies, so he or she may not realize that moving or hiding are better options than shooting or healing. That uncertainty provides tension in the player's decision making, which makes the game interesting.
I hope this was helpful for you! Now go forth and make awesome games. :D