The Creation of Floyd the Robot in Planetfall
Planetfall was the first game that I wrote for Infocom, one of the leading computer game companies of the 1980s. It was an all-text adventure game, meaning that the player directed the actions of a player character in the game by typing commands to that character in plain English, such as "ENTER THE SPACESHIP" or "PICK UP THE ELVEN SWORD." The game would then respond with a sentence or two of text, describing what happened when the player character attempted that action. These games were typically a mix of a storyline, exploration of an interesting environment, and some puzzles - often quite hard - that needed to be solved to advance the game.
I began working on Planetfall in September 1982. At that point, Infocom had released five text adventures. These games were minuscule by today's standards, driven by the capacity of computer floppy drives; the original release of Planetfall was only 108 kilobytes - about as many bytes as a medium-sized image on a Web page.
In those early games, there were numerous NPCs (non-player characters), such as the Wizard and Demon in Zork II or the various suspects in the mystery game Deadline. One of my thoughts, going into the start of work on Planetfall, was to try to concentrate on a single NPC. By devoting the writing time - and more importantly, the precious disk space - to a single character, that NPC could be much deeper and more interesting.
Why a robot? For one thing, it fit the science-fictional setting of the game. But more important, I calculated that even with the concentration on a single NPC, the character would still fall far short of simulating a human being, but that players would have lesser expectations for a nonhuman character such as a robot.
There were essentially four components to writing the character. The first was direct interaction between the player and Floyd. (In the examples that follow, the all-caps text are commands to the game as typed by the player). So:
Floyd giggles and pushes you away. "You're tickling Floyd!" He clutches at his side panels, laughing hysterically. Oil drops stream from his eyes.
The second component was when the player spoke to Floyd. These were traditionally the hardest player inputs to deal with, because there was only enough disk space to handle a fraction of the possible conversational gambits, so most inputs had to be covered by fairly general defaults. For example:
>FLOYD, WALK NORTH
Floyd looks slightly embarrassed. "You know me and my sense of direction." Then he looks up at you with wide, trusting eyes. "Tell Floyd a story?"
The third component was simply a list of actions that Floyd might perform at the end of a given turn, if he was in the same location as the player. For example:
Floyd rubs his head affectionately against your shoulder.
Floyd reminisces about his friend Lazarus, a medical robot.
The final component was when Floyd's actions would be triggered by something behind the scenes of the game, such as the player and Floyd entering a given location, or by an "interrupt routine" scheduled earlier in the game. Thus, entering the infirmary for the first time triggers Floyd's discovery of a robot breastplate labeled "Lazarus," poignantly informing Floyd that his best friend is no longer alive, and foreshadowing Floyd's own death.
My goals with Floyd were to make him cute and endearing, in the way that children and pets can be. My biggest surprise was that, unintentionally, Floyd also turned out to be a very humorous character. As some players began to point this out as the aspect they most enjoyed about Floyd, I played it up even more. For instance, when you save the game, normally an outside-the-gameworld activity, Floyd would respond:
Your game has been saved.
Floyd's eyes light up. "Oh boy! Are we gonna try something dangerous now?"
Having made the decision to create such a single, deep character, I thought there would be the potential for emotional resonance with the player, which I could take advantage of by putting this character in peril or even having events lead to that character's destruction. This ultimately led to Floyd's death scene, in which he courageously volunteers to go into a dangerous location to retrieve an important object, citing his metallic indestructibility. He retrieves the object, but suffers serious damage, and dies in your arms. This worked out better than my fondest hopes, and numerous players over the intervening years have told me that they cried at this point in the game. Softline, an early computer game magazine, compared the moment to Charlotte's death in Charlotte's Web.
Another interesting thing I discovered, talking to players over the years, is the large number of players who didn't like Floyd while he was alive, finding him annoying or distracting. But once he was dead, they realized they missed him! They weren't particularly moved by his death, but his absence created a void in their gameworld akin to the loss of an acquaintance in real life.
Perhaps the most amazing thing about the creation of Floyd was how easy it was. The entire code and text for the character, if printed out, would perhaps run to ten pages. What's amazing is not that I was able to create a computer game character that touched people so deeply, but how infrequently the same thing has been accomplished in the intervening two decades.
Saberhagen, Fred, Lafore, Robert, Prussing, Scott, Simonsen, Redmond, Blank, Marc, and Berlyn, Mike (1983). "Call Yourself Ishmael: Micros Get The Literary Itch." Softline, volume 3: September-October 1983: Cover, 30-34.
White, E. B. (1952). Charlotte's Web. New York: Harper Bros.
Deadline. Marc Blank; Infocom. 1981.
Planetfall. Steve Meretzky; Infocom. 1982.
Zork II. Dave Lebling; Infocom. 1981.