Seminal computer video game Spacewar lives again
MIT creates a simulation to celebrate the 50th anniversary of Spacewar. A relic of the early days of minicomputers, it was one of the first computer video games and set the stage for many others, including Asteroids.
CAMBRIDGE, Mass.--In its typically geeky fashion, the Massachusetts Institute of Technology celebrated the birth of one of the first video games by challenging students to re-create it on a computer the size of a business card.
MIT engineering students and faculty this week showed off a simulation of Spacewar on campus and at the MIT Museum to mark the 50th anniversary of the video game's release. Written by four students in their spare time, the video game influenced how many later games were designed and was part of a broader shift in how people viewed computers.
Spacewar, created on Digital Equipment's PDP-1 minicomputer, was instrumental in showcasing the graphical capabilities of computers and new modes of user-computer interaction. It also helped showed people that computers could be used for fun, not only serious work.
MIT gained access to a PDP-1, a refrigerator-size "minicomputer," in the early 1960s and gave students regular access to it in MIT's Kludge computer room. That arrangement of letting programmers tinker with the computer during the machine's downtime helped seed the hacker culture that later flourished, according to the Computer History Museum.
"The PDP-1 had enough downtime that people could mess around with it, which was different from the IBM mainframes, where every second was used," said Phillip Tan, U.S. executive director of MIT's GAMBIT game lab, who oversaw the simulation project. "It allowed for people to experiment and use it for playful stuff."
The first version of Spacewar was written by Steve Russell, who was inspired by pulp science fiction novels and the space race of the time. Significant improvements were later made by Peter Samson, Dan Edwards, and Martin Graetz, and in the spring of 1962, the programmers made the game available to Digital Equipment users for free. Later it was loaded onto PDP-1 computers and used to show customers that the machine was working.
The game itself helped establish some of the constructs of later games. Two players operate controls to navigate a spaceship and shoot torpedoes at each other. Later the "hyperspace" feature was added--which let players try to avoid danger by having their ship vanish and reappear randomly elsewhere on the screen. People familiar with the arcade classic Asteroids, a single player game, would quickly feel at home with Spacewar.
But there's a significant difference between Asteroids and Spacewar, which reflects a scientific approach the MITers took to computer games, Tan said. When playing Spacewar, gamers need to contend with the force of gravity as their ships are pulled toward the sun in the center of the screen. When players get good, they can approach the sun and, with the right thrust, get a slingshot effect and fly off.
The physics of the gravitational force are accurate, reflecting how many MIT programmers wrote simulations of real-world phenomena, Tan said. (The other stars on the screen, which were hard-coded and depicted the evening sky at MIT, don't exert gravity.) Originally, the game was controlled from buttons on the computer itself, but since the porthole-like monitor was not directly in front, people created separate controls so they could see better while playing, Russell explained in an interview last year.
To create a simulation of the game for people to play today, MIT students got hold of the source code of the original Spacewar and ported it to the cheap Arduino electronics platform, which is typically used for hardware prototyping.
The Arduino microcontroller, which fits in the palm of a hand, has roughly the same processing power as the original 18-bit PDP-1, said Owen Macindoe, a graduate student at MIT's Computer Science and Artificial Intelligence Lab, who worked on the porting project.
One of the biggest challenges was simply decoding the original source code, which was essentially "digital archeology," Macindoe said. Spacewar was originally written in the assembly language of the PDP-1, a significant difference from today's abstract languages that are a buffer between programmers and machine-level commands.
"It was very hard to recognize from modern programming languages because it was so low level and it used a lot of machine-specific tricks which they had to because of the limitations they had," Macindoe said.
Because there was little memory, programmers didn't have the luxury of reserving a block in memory for images of the space ships. Instead, they had to write step-by-step instructions in the program on how to render them at runtime. "It was pretty weird," said Macindoe. "But it was exciting when we figured it out."
Porting the program posed other challenges in re-creating quirky features, such as certain conditions where torpedoes from one ship would pass right through the other.
Spacewar was eventually turned into an arcade game and a home video game. But it was never the huge hit that successors such as Asteroids were, partly due to controls that were relatively complicated for the time, Tan said.
On the other hand, the basic setup of having two opponents with separate controls shooting at each other continues to this day. And as many MIT students found out this week, Spacewar is fun to play, too.