Musings On Game Engine Structure and Design



What It's All About

Who Is This Guy?

The List

Complete Archive


RSS Feed




The Flow of Intentional Gameplay (or why the Wii is winning, yet people still don't play Rock Paper Scissors Lizard Spock)

By Kyle Wilson
Sunday, October 07, 2007

I'm not a game designer, nor do I play one on TV.  As a core technology engineer, I spend most of my time dealing with the infrastructure of game programming:  resource management, concurrency, serialization and scene hierarchy.  My job is to support gameplay programmers, who in turn support designers, whose job is to actually create something fun.

On the other hand, I've developed games for many years now, and I've spent a lot of time considering how we create rewarding player experiences.  Since I'm an engineer, I think of gameplay as something that is engineered; I assume that a writer or an artist would approach game design differently.

Any game is fundamentally about the player.  The accuracy of your simulation, the intelligence of your AI, and the beauty of your artwork only have value if the player perceives them.  The game does not play itself.

It's instructive, though, to think about how we would write a game that played itself.  If you were to replace the player of a game with an AI--a playerbot--the obvious way to implement that playerbot would be as a hierarchy of nested finite state machines.  After all, that's how we implement most non-player characters in games today.  The top level of an AI's state machine hierarchy represents some relatively abstract state of being, comprising states like patrol, assault objective, defend base.  Those states represent goals to be achieved by the next level of the hierarchy--states like move to cover, select weapon, select enemy, engage.  And those states, in turn, represent goals to be achieved by the execution of even lower-level state machines:  identify cover point, move to location, crouch, stand, fire, reload.

At every level of the state machine hierarchy, the AI has some intention that it's trying to realize.  If the AI is a playerbot, then its outermost state--its highest, most abstract, level of intention--is to complete the game.  The playerbot achieves this end by executing nested states that take it from one game level to the next, while lower-level states manage dispatching enemies and accomplishing other objectives in each level.  The states at the bottom of the hierarchical state machine are the fundamental atomic units by which the playerbot fulfills all its higher-level intentions.

Human players execute similar mental "loops".  In Everything Bad is Good for You (an excellent book despite its silly title), Steven Johnson writes that if you ask a player in the middle of a Zelda game what his goals are, you'll get an "interesting answer.  Interesting for two reasons:  first, the sheer number of objectives simultaneously at play; and second, the nested, hierarchical way in which those objectives have to be mentally organized."  He describes a sample list of hierarchical objectives from The Legend of Zelda:  The Wind Waker

  • "Your ultimate goal is to rescue your sister.
    • To do this, you must defeat the villain Ganon.
      • To do this, you need to obtain legendary weapons.
        • To locate the weapons, you need the pearl of Din.
          • To get the pearl of Din, you need to cross the ocean.
            • To cross the ocean, you need to find a sailboat.
              • To do all of the above, you need to stay healthy and alive.
                • To do all of the above, you need to move the controller."

Johnson goes on, "The last two items are almost metabolic in nature, the basics of virtual self-preservation:  keep your character alive, with maximum power and, where possible, flush with cash.  Like many core survival behaviors, some of these objectives take quite a bit of training--learning the navigation interface and mapping it onto the controller, for instance--but once you've mastered them, you don't necessarily have to think about what you're doing."  The early stages of a game tend to teach the player about mechanics, about those lowest-level behaviors that are the fundamental atomic units of player input.  As the game progresses, and these controls become second nature, the player is freed to play at a higher level of abstraction.  He thinks about tactics instead of thinking about which button to press next.  Mastery of the "metabolic" lowest-level loops moves the player up the game world's equivalent of Maslow's hierarchy of needs.

At GDC 2005, Epic's Cliff Bleszinski gave a talk called "Dissecting Interactive Design" in which he discussed hierarchical player loops like the one in Zelda.  For example, he says, in a shooter

  • The player wants to kill enemies. 
    • To do that, he fires until his weapon is empty, then reloads. 
      • To fire, he pulls the trigger, watches where his round hits, and adjusts his aim accordingly.

Cliff makes the point that if a loop isn't tight, if some part of the loop is missing, then the player stalls and gets frustrated.  (Jamie Fristrom muses on this further.)  If the player pulls the trigger but can't tell where his round hits, he doesn't know how to adjust his aim.  If he shoots an enemy but has no feedback on the damage he's done, then he's not making visible progress.  If he can't figure out where to go in a level, then he gets frustrated because he has to backtrack and search for the exit when he wants to be killing enemies.  Stalls like this force a player who's mastered the basics to stop thinking about higher-level tactics and think consciously about the basics of shooting and navigation again.  Stalls ruin flow.

There are four essential conditions that must hold at every level of the loop hierarchy to create flow in a game:

  • Goals are clear
  • The player can control the game
  • Feedback is clear and immediate
  • Difficulty is in balance

Strangely, Jenova Chen's fl0w--a game designed around Flow theory--failed for me in two of these areas.  The first time I tried playing the game, I couldn't tell what the goal was and the feedback from my actions was ambiguous.  I simply couldn't tell what I was doing.

Half Life 2:  Episode 1, on the other hand, may be the best computer game I've ever played.  It's beautiful, it's well-polished, and it pushes the technological envelope with player/NPC interaction that no other game has matched since.  Playing HL2:Ep1 was such a perfect flow experience that the one time the game did break my flow stands out sharply in my memory:  There's a sequence in which you're attacked in a parking garage by an infinite stream of antlions coming up through a hole in the ground.  I died three times trying to get past that encounter, then gave up in frustration and went to look for hints on  What I discovered was that Alyx, my AI buddy, had told me to block the antlion burrow by pushing a wrecked car on top.  I simply hadn't heard her, in any of the three times I'd played the encounter, because I was too busy trying to stay alive against an infinite number of antlions.  A player doesn't hear anything when he's under threat.  Even though I had an AI character tell me explicitly what to do, the goal wasn't clear.

In Rock Paper Scissors, on the other hand, the goal is very clear.  It's equally clear in a variant of Rock Paper Scissors called Rock Paper Scissors Lizard Spock.  RPSLS is like RPS, except that there are five possible choices for what to throw, each of which beats two others and is beaten by two others.  As Jamie Fristrom points out, if it were judged by the standards by which we judge console games, RPSLS would universally be considered a better game than RPS.  After all, it has 66% more options!  There are almost 300% as many possible outcomes!

And yet, there's a World RPS Society that holds Rock Paper Scissors competitions around the world, with cash prizes, while RPSLS is merely a niche oddity.  Why is that?  The answer has to do with the nature of RPS competition.  Each RPS match consists of multiple rounds.  Each round, a player forms a hypothesis which throw his opponent will choose and he chooses his own throw accordingly.  The opponent's entire history of throws informs the player's choice.  The player can control the game.  There are people who are good at RPS.  Really.  The logical extension of RPSLS, on the other hand, is a game with an infinite number of throws, each winning half the time and losing half the time.  That's not a game.  That's a coin toss.

Consider the Nintendo Wii.  The Wii surprised pretty much everyone with its success.  The Wii launched a year after the Xbox 360 and has suffered from shortages so severe that units couldn't even be found on shelves for the first ten months after launch, but the Wii has still overcome the Xbox 360's lead to become the top seller of this console generation.

There are two reasons for the Wii's relative success.  The first is its low price.  The Wii launched at $250, while the Xbox 360 launched two variants at $300 and $400.

The more interesting reason for the Wii's success is the Wii Remote, the Wii's unique motion-sensitive controller.  The Xbox 360 and the PS3 both come with slight variations on the standard modern console controller.  The design of the modern controller--D-pad, two thumbsticks, front triggers--is effectively unchanged since Sony released the Dual Analog Controller ten years ago.  And the design of the modern console controller is terrible.  The player makes the most precise movements that any game requires by guiding sensitive analog joysticks--with his thumbs.  No wonder the Xbox 360 and PlayStation 3 aren't selling as well as their predecessors.  They're essentially selling to a subset of their previous audience:  young men who are so interested in games that they're willing to struggle through the clumsy all-thumbs interface necessary to play them.  Meanwhile, Nintendo has broadened their audience with games that offer the player a more natural instrument with which to express his intention.  The player can control the game.

In a shooter like Halo or F.E.A.R., the player controls his avatar through the buttons and sticks on a console controller.  One level up in the hierarchy of loops, the buttons and sticks drive the weapons and devices with which the player controls the game world.  At both levels, these controls are the palette with which we empower the player to realize his intention.  These controls are the basis vectors defining the possibility space of player action.

If we want to enable a state of flow, then the player must have a clear intention at every level of the hierarchy of loops.  Because the player's intention is exact, his means of realizing that intention must also be exact.  This implies that controls must be orthogonal.  Consider how the gravity gun in Half Life 2 would have played if, as it grabbed objects in the world, it had also set them on fire.  It would have been cool.  It would have been more powerful.  But it would have ultimately been frustrating.  Sometimes, the player wants to grab objects and throw them without setting them on fire.  Sometimes, the player wants to set objects on fire without throwing them.  By making one weapon for each purpose, a shooter opens the greatest space of possible player action.

The same rule of orthogonality applies to controller mappings.  For console game developers, there are always a lot of features that you want to expose to the player and a finite number of buttons available.  The issue is further complicated by player expectation (players expect that triggers will be used for shooting, that button mappings will be like Halo) and by complementary/contradictory features (the player wants to side-strafe and jump at the same time, so the right thumb can't be used to do both).  That means that there's always pressure to use tricks like chording (pressing button A changes the behavior of button B) or overloading buttons (pressing A does one action, pressing and holding A does another action) to fit all desired behaviors onto the controller.  But chording and overloading both guarantee that at some point the player will perform one action while he's trying to perform another, and his flow will be broken.  Clarity in control is the best way to help the player express his intention.

Because I work in the game industry, people I meet from outside the industry frequently ask me, "Oh, aren't video games today really violent?"  And the answer is yes, they are, as far as it goes, but that's really missing the point.  Games aren't movies or books.  They're not about the violence.  They're games, like chess, or checkers.  As Johnson writes in Everything Bad is Good for You, "De-emphasizing the content of game culture shouldn't be seen as a cop-out.  We ignore the content of many activities that are widely considered to be good for the brain or the body.  No one complains about the simplistic, militaristic plot of chess games."  Even though the body count in chess is on par with the average Splinter Cell game.

Games are about violence because you can't have flow without challenge and the most natural expression of challenge is conflict.  Look at the games children play, look at team sports, and you'll see over and over again simulations of hunting and small-scale tribal warmaking.  That doesn't mean we're programming our children to be monsters.  It just means that the human race spent most of the last hundred thousand years in small nomadic hunting bands that were constantly at war with one another, and that the people who were hardwired to enjoy football and Unreal Tournament were the ones predisposed to survive.

That's why so many games are about shooting people, but that aspect didn't seem to bother non-gamers nearly as much when it was filtered through the blocky lens of Atari 2600 graphics.  Now, though we've got games like Gears of War and that hover just this side of photoreal.  When you shoot other characters in a modern first-person shooter, they erupt in great gouts of blood.  "Isn't that horrible?" the soccer moms wonder.  And the answer, of course, is no, it's feedback.

A game isn't a movie.  In a movie, explosions of gore exist to elicit a visceral response from the audience--disgust, or bloodlust, or satisfaction, depending on the movie and the character spilling the gore.  In a game, explosions of gore exist to communicate to the player that he's successfully engaging his target.  The impact particle system may be bigger or smaller depending on the weapon used, to let the player know how much damage he's doing.  In F.E.A.R., there's a weapon called a plasma rifle that dissolves enemies, leaving behind nothing but a charred skeleton.  The effect is rather like what happens to the Nazis at the end of Raiders of the Lost Ark.  But in Raiders, the effect was designed to inspire the audience's awe at divine justice.  It was part of a narrative.  In F.E.A.R., the effect is designed to communicate to the player:  this is a devastatingly effective weapon on unarmored targets.

In Half Life 2, levels are populated with two varieties of barrels.  There are bright red barrels that explode when shot, damaging any living thing nearby.  And there are drab brown barrels that don't explode, no matter how many times you shoot them.  HL2 has garnered a lot of praise for realism, but this clearly isn't a realistic conceit.  In real life, I go weeks at a time without seeing explosive barrels, and when I do (usually on the back of a truck festooned with hazmat warnings), they look just like non-explosive barrels.  Explosive objects look different in games because their appearance provides feedback to the player.  A player who can recognize explosive parts of the environment can plan more effectively.  The feedback of a bright red barrel allows the player to better realize his intention, and the cost in realism is a small price to pay for better gameplay.

Difficulty in a game results from the tension between control and feedback.  A player wants to feel like he's in control of his own destiny.  The player never wants his character to die, no matter how careless he's being and no matter how much his play style diverges from what the designer envisioned.  But if a game is too easy, it becomes tennis without a net:  there's simply no point.

The designer's responsibility is to provide feedback that guides the player onto the path that will give him the best play experience.  The game should kill the player's avatar only as the strongest possible discouragement of a particular playing style.  The consequences of punishment-by-death will vary depending on the style of game:

In Gears of War, a player who doesn't make use of cover will take damage; a blood red health icon will fill his screen, blocking his view; and he will die and revert to the last checkpoint save.  This consequence of poor tactics is moderately severe.  The player may lose a couple of minutes of progress in the game.  But the player has continuous feedback from the point at which he starts taking damage until he dies.  The player usually has ample opportunity to duck behind cover during this time.  Death and the damage indicators that precede it encourage the player to play Gears of War as it was meant to be played, instead of playing it like Halo.

In Bioshock, a player who dies in combat simply respawns at a nearby spawn point.  He loses none of the abilities he's gained and any enemies he's hurt or killed are still injured or dead.  Death punishes the player less than in Gears of War because Bioshock isn't really about combat.  The game is about exploration, story, puzzle-solving and combat, in that order.  Death merely exists to encourage the player to use the items he's gathered during his exploration, which would be worthless if the player were immortal.

In Dead Rising, a player who dies is given a choice:  start the game over with all the experience and abilities that his character has gained, or revert to his last save point and lose all experience he's gained since saving.  Save points are few and far between.  Though initially irritating, this system is actually well-suited to the game.  Dead Rising is an open-world game like Grand Theft Auto set in a giant shopping mall overrun by zombies.  Although there's a sequence of missions to complete, it's too difficult for any low-level character.  The save system encourages the player to initially ignore all missions.  The player can explore the game world and gather experience, simply starting over when he dies, and only attempt the mission sequence when he's reached sufficiently high level.  (The save system is initially irritating because of a mismatch between player intention and game mechanics.  The player has to learn through repeated deaths that he shouldn't bother attempting missions yet.)

A great game provides a player with clear goals.  From the goals he's given, the player forms a hierarchy of intentions.  The layout of the game controller, the weapons available in the game, and the effects of those weapons on the game environment all empower the player to realize his intentions at different levels of the hierarchy.  Feedback on his actions keeps the player moving in the right direction, lets him avoid danger, and lets him know when he's succeeding in overcoming obstacles.  Difficulty, unto avatar death, is feedback that lets the player know that he's strayed from the path.  If the player isn't paying attention, he deserves to die.  If the player is paying attention, then the other feedback mechanisms of the game should guide him to a punishment-free experience that allows the player to express his intentions without ever breaking his sense of flow.

Any opinions expressed herein are in no way representative of those of my employers.