Bitwise

The Hardest Computer Game of All Time

It was called Robot Odyssey, it took me 13 years to finish it, and it sealed my fate as a programmer.

Odysseus had it easy next to this.

The Learning Company

My first computer was an Apple IIe with 128KB of RAM, no hard drive, and a 5¼ inch floppy drive. One of the top educational games back then was Rocky’s Boots, an inventive game that taught the basics of formal logic to kids. I loved it when I was 6. Two years later, I got Robot Odyssey, which promised to expand on Rocky’s Boots by extending the formal logic to actual programming. The game devastated me. My brain could not comprehend how to solve its puzzles. I finally finished it—13 years later, and not without some assistance.

Let me say: Any kid who completes this game while still a kid (I know only one, who also is one of the smartest programmers I’ve ever met) is guaranteed a career as a software engineer. Hell, any adult who can complete this game should go into engineering. Robot Odyssey is the hardest damn “educational” game ever made. It is also a stunning technical achievement, and one of the most innovative games of the Apple IIe era.

Visionary, absurdly difficult games such as this gain cult followings. It is the game I remember most from my childhood. It is the game I love (and despise) the most, because it was the hardest, the most complex, the most challenging. The world it presented was like being exposed to Plato’s forms, a secret, nonphysical realm of pure ideas and logic. The challenge of the game—and it was one serious challenge—was to understand that other world. Programmer Thomas Foote had just started college when he picked up the game: “I swore to myself,” he told me, “that as God is my witness, I would finish this game before I finished college. I managed to do it, but just barely.”

Programming in your pajamas: the simulation.
Programming in your pajamas: the simulation.

Illustration by Gil Morales, from the game manual

In Robot Odyssey, you played a character who falls in a dream into the mysterious city of Robotropolis. There were five ascending levels to Robotropolis before you could return back home. Here’s a rough estimate of their difficulty:

  1. The Sewer: Moderate
  2. The Subway: Challenging
  3. The Town: Very Difficult
  4. The Master Control Center: Impossible
  5. The Skyways: Impossible

Robotropolis
Robotropolis as rendered by Gil Morales.

Illustration by Gil Morales, from the game manual

By my teenage years I’d completed the first three levels, but my siblings and I hit a brick wall with the fourth level, which is to earlier levels like algebra is to arithmetic. (As Thomas Foote said, “I was stuck on this level for most of my college years.”) The fifth level was nothing more than a fabled dream. The Internet didn’t exist in those days, and even finding someone else who had played the game was difficult if you didn’t live in Silicon Valley.

The game became my bête noire, a lingering reminder of my inadequacy. To give you some idea, I couldn’t get past the fourth level even after I’d been programming in BASIC and Pascal for years.

The game had a profound effect on those who played it. My younger brother, who suffered with my sister and me as we struggled through the game, told me, “It’s where I started on the road to becoming a programmer.” Even if players got stuck (and everyone got stuck), the game offered ideas and concepts that no other game did. Game designer and hardware hacker Quinn Dunki of One Girl, One Laptop wrote Gate, a spiritual successor to Robot Odyssey that employed many of the same concepts. The tech law professor James Grimmelmann told me it had been his “game for a rainy decade,” describing an immense sense of accomplishment on finishing one of the nastier puzzles—“a big part of why I loved programming.” Programmer/musician/hacker Joan Touzet used it to teach programming to middle schoolers—in 2004. Thomas Foote was so taken with the game that he spent years re-implementing the entire game in Java, with the support of a small but dedicated fan community. (One of them remembers completing the game and getting a certificate from the Learning Company declaring him the 34th person to finish.) Foote called his version DroidQuest, and it is the easiest way to play Robot Odyssey today.

It’s an accomplishment.

Software engineer Micah Elizabeth Scott, who ported the game to the Nintendo DS, told me that Robot Odyssey “played a large role in shaping who I’d later become,” and emphasized just how personal and distinctive a creation it was: “You see the style of an individual or a very small team, uncluttered by corporate structure or modern abstractions.”

It’s a testament to the sheer free-spiritedness of the early days of consumer software that such a game could even get made. The Learning Company, who also made classics like Rocky’s Boots, Reader Rabbit, and Gertrude’s Puzzles, was a small company founded in 1980 on an NSF grant by three educators who had taken an interest in software: Leslie Grimm, Ann McCormick, and Teri Perl, as well as Warren Robinett (who had created the world’s first Easter egg when he hid his name in a secret room in Atari’s Adventure).* The company was atypical both in focusing on educational software and in being led by women. Grimm and Robinett designed 1982’s Rocky’s Boots, which taught Boolean logic gates to kids, and which had captivated my 6-year-old self. Grimm also co-authored Robot Odyssey, which began as the brainchild of Michael Wallace, a 22-year-old Stanford undergrad at the time.

The game taunts you.

The Learning Company

Wallace told me that writing the game was one of the best times of his life. Originally a customer service rep at the Learning Company, Wallace taught himself to code in Apple 6502 assembly by looking at Robinett’s code for Rocky’s Boots. After Robinett left the company, Wallace expanded Robinett’s code to architect the underlying technology for Robot Odyssey, including the dazzling ability to embed circuits within circuits. Doing this was no easy task; Wallace called it “an art form” and recounted working 100 hours a week. When Teri Perl described the project to legendary computer scientist Alan Kay, he said, “You’re wasting your time. It can’t be done.” That is, the basic idea was simply too complex to run on an Apple home computer. When Robot Odyssey shipped, the company gave Wallace a plaque that said, “It can’t be done. —Alan Kay.”

After getting her Ph.D. in biology from Stanford, Leslie Grimm became fascinated by computers and their educational potential while volunteering in her daughter’s school. In addition to directing the entire project, Grimm was in charge of the game portion of Robot Odyssey: the five levels of Robotropolis and three tutorials (expanded to five tutorials in Version 1.1, in the hopes of making the game a bit more tractable to players). Each of the five game levels was the personal creation of a single person. I’d like to single out Shaun Gordon, the 16-year-old high school whiz who designed the diabolical fourth level, the Master Control Center, which was the Waterloo for many a player (including myself).

Wallace was kept so busy with the plumbing of the game that he himself never played it through to completion. I asked him if he might try someday, and he said, “It might take a year of my life.” He wasn’t sure that anyone at the Learning Company had solved the entire game singlehandedly!

To solve the puzzles, you are given three (eventually four) robot pals to wire and program. From left to right, they are Sparky, Scanner, and Checkers. They can move, detect walls, pick up and drop things, and communicate to one another.

Sparky, Scanner, and Checkers: they are yours to command (and scream at).

The Learning Company

When I say program, I mean something a bit more primitive than computer code, even the low-level assembly that processing chips natively run. I mean the actual logic gates (AND, OR, NOT) that make up the innards of chips. So Robot Odyssey was programming, but it was also electrical engineering. Your tools for implementing “programs” were the most primitive available. You had “electricity” going through wires into gates. The gates implemented the primitive operations of formal Boolean logic.

Simple, right?

The Learning Company

Boolean logic is fairly simple. It deals in two opposing values, often called TRUE and FALSE (if logic is being applied to assertions), but since we’re talking about electricity here, they’re better called ON and OFF. The robots in the game have thrusters that make them move. For example, if you feed electricity into a robot’s thruster through a wire that is ON, the thruster turns ON and the robot moves.1 In addition, there are assorted logic gates that change the nature of the electricity. A NOT gate had one wire going in and one wire coming out, and inverted the input wire. If the incoming wire was ON and had electricity going through it, the gate would not output electricity. If the incoming wire was OFF, the gate would output electricity.2

A “wall hugger” robot. The actual logic is embedded “inside” the blue “2” chip.

The Learning Company

Using these gates and a few others, you had to wire up robots to perform tasks—reasonably simple ones at first,3 but which became increasingly complicated as the game progressed.

Eric Welsh’s circuit that “plays” a 100110 pattern on the antenna.

The Learning Company

When the task is to get one robot to communicate orders to move to another robot through an antenna that can only be ON or OFF, those logic gates start to seem awfully limited in their capabilities. The trick is, they aren’t limited—in sufficient combination, those little logic gates can do anything. But it takes some real thought.

Getting these simple gates to execute complex programs melted my brain. My child’s mind was literally incapable of making the jump from those simple gates to the complex control structures required to solve the game’s puzzles. The game offered you the ability to “burn” circuits into chips in order to abstract control structures. Here’s a chip that uses a lot of OR gates in order to … well, I won’t get into it (see here for the grisly details).

Inside a chip: Fun for the whole family!

The Learning Company

The point being that those simple logic gates could, in sufficient combination and organization, do tremendously complicated things. That, after all, is the very stuff of computer programming, using primitive operations in immensely complex architectures. For Foote, the fundamental appeal of the game is much the same as the fundamental appeal of mathematics and computer science: “The world is logical, and operates under simple rules. From such simplicity can come great complexity.”

Though a planned sequel (the original box billed the game as Robot Odyssey I) never materialized, the game won awards and a write-up in Scientific American. The game got Wallace an audience with the top brass at Apple and a presentation at Xerox PARC, and he went on to design electronic toys including the Nintendo Power Glove and now has his own company, Pure Imagination. Grimm stayed with the Learning Company and authored many more games, including the successful Reader Rabbit franchise, and more recently developed educational software for deaf children.

The sheer complexity of Robot Odyssey made it the spiritual forebear to today’s sandbox games like Minecraft. It probably turned hundreds of people into computer programmers, and in the hopes of making a few more, I issue the Bitwise Robot Odyssey Challenge: The first reader to complete Robot Odyssey—send a save game file to me as proof— gets a replica of the Robot Odyssey completion certificate from the Learning Company. Only first-time players allowed—and no cheating by looking up the solutions!

—-

Notes:

1. If you stop the electricity flowing through the wire, the thruster turns OFF and the robot stops moving. (Return.)

2. An AND gate takes two inputs and outputs electricity if its two inputs are both on. An OR gate outputs electricity if either or both of its two inputs are on. An XOR gate (for exclusive-or) outputs electricity if either of its two inputs are on, but not both. (Return.)

3. Here’s a simple example. Let’s say you want a robot to move up when its antenna is receiving a signal (when the antenna is ON), and move down when the antenna is not receiving a signal (when the antenna is OFF). You wire up the antenna output to the UP thruster so that when the antenna is ON, the UP thruster turns on, and vice versa. You also wire up the antenna output to the DOWN thruster, but put it through a NOT gate first, which reverses the antenna output. So when the antenna is ON, the DOWN thruster is OFF, and vice versa. (Return.)

Correction, Jan. 27, 2014: This article originally listed Frona Kahn as one of the co-founders of the Learning Company. (Return.)