Do the best you can until you know better. Then when you know better, do better. – Maya Angelou

Mr. Walker's Classroom Blog

The First Great Computer Game -> Lunar Lander

Forty Years of Lunar Lander

In 1969, an Apollo-crazy high school student wrote one of the most influential computer games of all time.

Benj Edwards  of Technologizer has a nice summary of the history of Lunar Lander and the High School student who wrote one of the first computer games of all time.  It started so many of us using computers, able to replicate lunar landings, so soon after we all watched images of the first man to step on the moon.  I played this one for the first time in 1972 and it started me thinking, of imagining.  That was a big deal, everyone knew computers counted things, but beyond what was being done at the time with computers it was easy to see more, especially when I wasn’t constrained by understanding how it worked, yet.  I hope my students become as inspired.

Please read the article at the author’s site.  I have copied it here as I am going to use it for class and many of these articles disappear within a school year.  Even so, my students will be directed to read the original authors site as long as it stays available.

Lunar Lander games abound on every platform. Along with Tetris and Pac-Man, the game–in which your mission is to safely maneuver your lunar module onto the moon’s surface–is one of the most widely cloned computer games of all time. But did you know that game players began touching down on the moon in Lunar Lander just months after Apollo 11 astronauts Neil Armstrong and Buzz Aldrin did so on July 20th, 1969?

lunarlander_tinyToday’s versions of Lunar Lander are easily taken for granted; they’re generally regarded as dinky games you can get for free–”Who would pay for that?”

But the mother of all realistic space simulations wasn’t always perceived that way. In 1969, it was, in its own way, a sophisticated, ambitious piece of digital entertainment. And during the BASIC era of the 1970s and 80s, many programmers cut their teeth by attempting to program their own version of Lunar Lander. David Ahl, founder of Creative Computing magazine, called it “by far and away the single most popular computer game” in 1978 (and he was only talking about the text version!). Indeed, Lunar Lander was one of the early computer games that helped define computer games.

The Eagle Lands

YOU ARE LANDING ON THE MOON AND HAVE TAKEN OVER MANUAL
CONTROL 500 FEET ABOVE A GOOD LANDING SPOT. YOU HAVE A
DOWNWARD VELOCITY OF 50 FT/SEC. 120 UNITS OF FUEL REMAIN.

Among the millions who watched the Apollo 11 landing was a 17 year old Massachusetts high school student named Jim Storer. In the fall of 1969, around the time of the Apollo 12 launch, Storer took his inspiration to class with him. There, he programmed a simple text-based simulation of humanity’s greatest technological achievement on his school’s Digital Equipment Corp. PDP-8 minicomputer system.

DEC PDP-8 Computer

“Lexington High School had a PDP-8,” Storer recalls. “It had 8 Teletypes, a small hard drive, and 12KB of main memory, where 8KB was used by the system and 4KB time shared by the users.”

Storer wrote his new program, “Lunar Landing Game,” in FOCAL, a programming language for the PDP-8 that was similar in some ways to BASIC (both were introductory languages known for their ease of use). His simulation was simple, yet powerful: underneath lay a realistic set of equations Storer believes his father may have taught him.

Lunar Landing Game’s gameplay consisted of a turn-based question and answer session, asking the user for the rocket fuel burn rate at each turn, which the user would then enter as a number from 0 to 200. The constraints against you were simple:

HERE ARE THE RULES THAT GOVERN YOUR SPACE VEHICLE:
(1) AFTER EACH SECOND, THE HEIGHT, VELOCITY, AND REMAINING FUEL WILL BE REPORTED.

(2) AFTER THE REPORT, A ‘?’ WILL BE TYPED. ENTER THE
NUMBER OF UNITS OF FUEL YOU WISH TO BURN DURING THE
NEXT SECOND. EACH UNIT OF FUEL WILL SLOW YOUR DESCENT
BY 1 FT/SEC.

(3) THE MAXIMUM THRUST OF YOUR ENGINE IS 30 FT/SEC/SEC OR
30 UNITS OF FUEL PER SECOND.

(4) WHEN YOU CONTACT THE LUNAR SURFACE, YOUR DESCENT ENGINE
WILL AUTOMATICALLY CUT OFF AND YOU WILL BE GIVEN A
REPORT OF YOUR LANDING SPEED AND REMAINING FUEL.

(5) IF YOU RUN OUT OF FUEL, THE ‘?’ WILL NO LONGER APPEAR,
BUT YOUR SECOND BY SECOND REPORT WILL CONTINUE UNTIL
YOU CONTACT THE LUNAR SURFACE.

Along the way, Jim Storer created one of the earliest computer games–one of a handful of text-based PDP-8 games of the 1960s, and one of the first computer simulation games ever. In less than 50 lines of code, Storer captured the imaginations of an entire generation of programmers with a gripping space drama composed of nothing more than simple text statements.

Storer submitted his game to PDP-8 maker DEC, which was always looking for innovative and interesting uses of its computers. The programs were usually distributed for free or used as demonstrations to potential clients, serving as a powerful marketing tool. At DEC, an employee named David H. Ahl translated Storer’s Lunar Lander into the BASIC language, which soon overtook FOCAL as the most popular introduction to programming. From there, both the FOCAL and BASIC versions of Storer’s simulation spread to other PDP-8 users through DEC’s EDU newsletter and through distribution by DEC’s Education Product Group.

Lunar Lander, 1969

After that, Storer forgot about the game. Life went on. He never sold it, and never followed the progress or influence of its imitators as they echoed down through the years. “After leaving high school I never thought about the game again,” says Storer. “Until about a couple of months ago when someone e-mailed me about this, I was completely unaware of any Lunar Lander game other than the one I wrote in high school.”

101 BASIC Computer GamesBut Storer’s computer experiences in high school shaped the rest of his career: “I became interested in computer science as a result of taking that computer class and doing programming on the PDP-8.” Storer later studied computer science as an undergraduate at Cornell University and then received his Ph.D. in Computer Science at Princeton University. He is now a professor of computer science at Brandeis University.

In 1973, DEC published a book edited by Ahl called “101 BASIC Computer Games” that included both Storer’s version of Lunar Lander and two others that had been inspired by Storer’s program. In 1978, Ahl revamped the book with a focus on home microcomputers that were common at the time, and it sold over a million copies. Thanks to Ahl’s book, Lunar Lander’s status as one of the classics of early computer gaming was assured.

Lunar Lander Gets Graphical

DEC consultant Jack Burness had long been a fan of America’s race to the moon. He recalls with great clarity the excitement of the period: “The space program was an incredibly big project then. More than a project, it was a national embracing of the future.”

Inspired by a co-worker who attended the launch of Apollo 16, Burness pestered his local senator for passes to see the launch of the final Apollo mission, Apollo 17, in December 1972. “A bunch of my friends went with me to see it,” recalls Burness. “It was the last launch and was at night–an overwhelming powerfully experience.”

That experience simmered in the back of his mind for the next few months, and it proved influential when DEC needed a software demo for its new GT40 terminal.

DEC GT40 Terminal

The DEC GT40 was a graphical computer terminal–unusual for its time, since it used a vector CRT display. One electron gun directly drew geometric shapes on the screen, providing a potent way to generate sharp, high-resolution computer graphics with the limited computing power available at the time. Conventional bitmapped raster displays (like those on conventional TV video games) draw the screen progressively from top to bottom, one row at a time, and required vastly more memory to compose a detailed on-screen image.

“I actually had quit Digital the previous spring and moved to Cambridge to consult for Draper Labs,” says Burness. “For some now long-forgotten reason I was back consulting to DEC that winter.”

Burness won the contract from DEC and began developing a lunar landing simulation for the terminal in early 1973. He programmed the game in PDP-11 assembly language, as the GT40 contained within it a PDP-11 CPU, essentially making it a standalone computer system. “But the graphics processor had its own instruction set,” adds Burness, “and I programmed that in assembly as well.”

To make a realistic simulation, Burness went straight to MIT, which had co-designed the real NASA lunar module. “It only took a few hours of perusing around to dig up enough information (weight, fuel burn rate, etc.) to write the program,” he says.

Moonlander (1973) Screenshot

As for inspiration, Burness doesn’t recall seeing Storer’s exact version of the “Lunar Landing Game,” but by 1973, clones of the Storer’s text-based simulation were already commonplace. Still, Burness’ version had one very important difference from those that had come before it: it had graphics. His game, which he called “Moonlander,” took advantage of the GT40’s vector display to draw a moonscape as seen from the side.

Gameplay was simple, but challenging: The player wielded the GT40’s integrated light pen and carefully guided the lunar module’s descent by touching areas of the screen that controlled thrust. The player attempted to land via thrusting the lunar module’s rockets in real time while avoiding too fast an entry, or too steep an angle. With Burness’ innovations, the modern action-based Lunar Lander we all know today was born.

“Start of the project to completion was ten days. That’s it,” says Burness. “When you only have a small amount of computer memory, choices become simpler.”

Moonlander on a GT40Moonlander proved an immediate hit with DEC and other users of the GT40. From there, it spread wherever GT40s were in use, and influenced a sizable audience as one of the first graphical computer games.

Years later, a co-worker told Burness that the reason he got into programming was because he had played Moonlander as a teenager. “I think it’s kind of neat the way you do something and it can have a rippling effect,” he says.

Burness never made any money on Moonlander, but his experience with the GT40 solidified his interest in computer graphics. He spent the next 26 years of his career bouncing between various computer graphics companies, and still consults for technology startups today.

Landing at the Arcade

Before the decade was out, one of Burness’ biggest fans brought Lunar Lander out of the halls of mainframe academia and into the commercial realm, further widening its audience: Atari.

By 1979, video game pioneer Atari had been working on bringing vector technology to its arcade games for two years. They were inspired by Cinematronics’ 1977 Space Wars arcade game to develop vector hardware of their own. Rick Moncrief led the project.

“Before there was a game, we had to make a vector graphic system,” recalls Howard Delman, an Atari engineer who co-created many Atari arcade games in the 1970s. “Rick and I worked on that. When we were done, we said ‘What should we do with it?’ I said, ‘How about we make Lunar Lander?’

With the help of Rich Moore on software, the two created Atari’s first commercial arcade game with vector graphics titled, unsurprisingly, “Lunar Lander.”

Atari's Lunar Lander Arcade Game

As for Delman’s inspiration, he says he saw a graphical Lunar Lander game–likely Burness’ Moonlander–long before development on Lunar Lander began: “I recall going over to [NASA’s] Ames research center–some Atari folks and I had a tour there–and they showed us a Lunar Lander game running on some machine.” But he doesn’t recall the specifics of the occasion.

Atari’s Lunar Lander was very similar to Burness’ version, except that players controlled the lander with a thruster lever and two rotate buttons. Of course, to make a good arcade video game, Delman had to forgo the hardcore simulation aspect of the computer version and make it fun and simple for anyone to walk up and play. “Not everyone is trained to land a spacecraft on the moon,” he says.

The game included four play modes of varying difficulty — “One is a realistic mode like a real spaceship, and nobody could land that,” says Delman, chuckling. “But the mode it defaults to is very simple. There’s friction on your ship, and the ship only rotates when you touch the controls. We did all these things to make it easier to play.”

Then there was a special button that Delman calls the “save your ass” button: “If you’re out of control, you could hit that and it would straighten out the lander, give you full thrust and try to stop you. It cost you a lot of fuel, but if all hope was lost, you could hit it.”

Atari's Lunar Lander Arcade Game Screenshot

Atari released Lunar Lander in August, 1979–just after the tenth Anniversary of the Apollo 11 moon landing . Strangely, it appears that Atari didn’t capitalize on the anniversary while marketing their new machine. It’s forgivable, because Atari’s attention was quickly diverted when another vector game’s sales started taking off like a rocket ship.

Atari’s Asteroids, also released in 1979, used the same vector hardware as Lunar Lander. Asteroids became so successful that Atari soon stopped production of Lunar Lander to start building Asteroids machines. “The first 300 Asteroids games went out with Lunar Lander artwork on the side,” recalls Delman. Still, Atari sold about 4700 Lunar Lander machines, which Delman says was a “good run” at the time. It’s likely that Atari would have sold more Lunar Lander units if Asteroids hadn’t stolen the spotlight.

Overall, it was this version of Lunar Lander by Atari that received the widest audience, and soon hobby programmers of the early software revolution began coding their own versions of the game for home computers of the time: the TRS-80, Apple II, Commodore PET, Atari 800, and other. The trend continues on nearly every computer platform released.

To this day, neither Storer or Burness have played Atari’s arcade version of their game, and neither one received any financial compensation from Atari for borrowing their idea. Burness doesn’t seem too upset with the prospect. He seems satisfied in knowing he got there first: “A co-worker told me that my Lunar Lander was actually used as an example of prior art to stop Atari from having a patent on an entire class of computer games.”

After that, Lunar Lander was free to be cloned and re-cloned a million ways, ensuring that its legacy will live on for generations beyond those who created it.

Notable Versions of Lunar Lander Through the Years

lander_rocket_tinyThe following list isn’t comprehensive–we would be here for weeks if I tried to account forevery version of Lunar Lander ever made. Instead, we’ll focus on some notable versions released through the years. You can even play some of them online.

So Godspeed, virtual astronauts. May the moon’s grip be gentle on your ships.

Lunar Landing Game (1969)

(PDP-8, by Jim Storer)
It’s amazing to think that while men were landing on the moon for the first time, some people were back on Earth playing computer games. This is one of them.

Windows and Linux users can easily play Lunar Landing Game with Vintage BASIC by Lyle Kopnicky. Download the game here.

Lunar Lander, 1969

Rocket (circa 1971)

(PDP-8, by Eric Peters)
Rocket introduced a primitive graphical display that utilized a single asterisk to display altitude. It was still text based.

Windows and Linux users can easily play Rocket with Vintage BASIC. Download the game here.

Rocket - BASIC - by Eric Peters

LEM (circa 1971)

(DEC PDP-8, by William Labaree II)
Labaree’s version is the most complex of the text-based landing simulators. It even offers to display readouts in either English or Metric units.

Windows and Linux users can easily play LEM with Vintage BASIC. Download the game here.

LEM - BASIC - by William Labaree II

Moonlander (1973)

(DEC GT40, by Jack Burness)
The original graphical Lunar Lander game. Feel free to peruse the original source code, if you’re so inclined.

Moonlander (1973) Screenshot

Lunar Lander (1979)

(Arcade, by Rich Moore and Howard Delman for Atari)
Atari’s first arcade game with vector graphics. It spawned most of the clones you see today. Play it online at Atari’s website (requires Java).

Atari's Lunar Lander Arcade Game Screenshot

Tranquility Base (1980)

(Apple II, by Bill Budge)
x`Before he found fame at Electronic Arts for his Pinball Constuction Set, Bill Budge coded this very accurate clone of Atari’s Lunar Lander on the Apple II. It even simulates vector graphics.

Tranquility Base - Apple II

Jupiter Lander (1982)

(VIC-20, by Hitoshi Suzuki for HAL Laboratory)
While this game was also released on the Commodore 64, purists consider Suzuki’s VIC-20 version to be superior.

Jupiter Lander - VIC-20

Rocket Lander (1982)

(IBM PC, by IBM)
Home of the Underdogs describes this as a “a good–but very rare–conversion of the hit arcade game Lunar Lander.”

Rocket Lander - 1982 - IBM PC

Lander (1990)

(Windows 3.x, by George Moromisato)
This is the version of Lunar Lander the author recalls most fondly. You can get it here, but it needs Windows 3.1 to run properly.

Lander - 1990 - Win 3.1

Lunar Lander (1990)

(Game Boy, by Pack-In-Video Co., Ltd.)

Only released in Japan, this Nintendo Game Boy version of Lunar Lander is a rare treat for westerners–if you can find it.
Game Boy Lunar Lander

Lander (1999)

(Windows, by Psygnosis Limited)
An interesting modern 3D verision of the classic, unique because of its commercial status.

Psygnosis Lander - 1999

Lunar Lander (2007)

(Android, by Android Open Source Project)

Lunar Lander is a sample game for Android developers created and distributed by the makers of the Android operating system. It shows that Lunar Lander is still relevant as a demo game for beginning programmers, even today.

Lunar Lander - Android 2007

Jupiter Lander (2008)

(Mobile, by Eidos)

Last year, Eidos recreated the Commodore classic (mentioned above) for mobile phones.

Jupiter Lander - Mobile

Lunar Module 3D (2009)

(iPhone, by Jason Pastewski and Jim Covert)
The iPhone App Store hosts over ten different variations on Burness’ classic Lunar Lander game. One of the most notable is this 3D version, Lunar Module 3D.

Lunar Module 3D - iPhone

Lunar Lander (199x-present)

(Flash, by everybody)
Lunar Lander has lived on as a favorite game to create among Flash developers. You can find literally dozens of Flash versions of the game to play online through your web browser. Here’s a good version that mimics Atari’s Lunar Lander arcade game.

Even the Science Channel has a Flash-based Lunar Lander game on its website as part of its Apollo 11 40th anniversary celebration.

Lunar Landing Game - Science Channel

Will Lunar Lander persist for another 40 years?  Probably so.  It has classic game mechanics that will always be timeless.  But personally, I hope that we’ll be playing “Mars Lander” by then.