Spacewar! | |
Designer: | Steve Russell |
Programmer: | Steve Russell |
Platforms: | PDP-1 |
Genre: | Space combat |
Modes: | Multiplayer |
Spacewar! is a space combat video game developed in 1962 by Steve Russell in collaboration with Martin Graetz, Wayne Wiitanen, Bob Saunders, Steve Piner, and others. It was written for the newly installed DEC PDP-1 minicomputer at the Massachusetts Institute of Technology. After its initial creation, Spacewar! was expanded further by other students and employees of universities in the area, including Dan Edwards and Peter Samson. It was also spread to many of the few dozen installations of the PDP-1 computer, making Spacewar! the first known video game to be played at multiple computer installations.
The game features two spaceships, "the needle" and "the wedge", engaged in a dogfight while maneuvering in the gravity well of a star. Both ships are controlled by human players. Each ship has limited weaponry and fuel for maneuvering, and the ships remain in motion even when the player is not accelerating. Flying near the star to provide a gravity assist was a common tactic. Ships are destroyed when they collide with a torpedo, the star, or each other. At any time, the player can engage a hyperspace feature to move to a new and random location on the screen, though in some versions each use has an increasing chance of destroying the ship instead. The game was initially controlled with switches on the PDP-1, though Bob Saunders built an early gamepad to reduce the difficulty and awkwardness of controlling the game.
Spacewar! is one of the most important and influential games in the early history of video games. It was extremely popular in the small programming community in the 1960s and the public domain code was widely ported to and recreated on other computer systems at the time, especially after computer systems with monitors became more widespread towards the end of the decade. It has also been recreated in more modern programming languages for PDP-1 emulators. It directly inspired many other video games, such as the first commercial arcade video games, Galaxy Game and Computer Space (both from 1971), and later games such as Asteroids (1979). In 2007, Spacewar! was named to a list of the ten most important video games in history, which formed the start of the game canon at the Library of Congress, and in 2018 it was inducted into the World Video Game Hall of Fame by The Strong and the International Center for the History of Electronic Games.
During the 1950s, various computer games were created in the context of academic computer and programming research and for demonstrations of computing power, especially after the introduction later in the decade of smaller and faster computers on which programs could be created and run in real time as opposed to being executed on a schedule. A few programs, however, were intended both to showcase the power of the computer they ran on and as entertainment products; these were generally created by undergraduate and graduate students and university employees, such as at the Massachusetts Institute of Technology (MIT), where staff and students were allowed on occasion to develop programs for the TX-0 experimental computer. These interactive graphical games were created by a community of programmers, many of them students and university employees affiliated with the Tech Model Railroad Club (TMRC), led by Alan Kotok, Peter Samson, and Bob Saunders. The games included Tic-Tac-Toe, which used a light pen to play a simple game of noughts and crosses against the computer, and Mouse in the Maze, which used a light pen to set up a maze of walls for a virtual mouse to traverse.
In September 1961, a Digital Equipment Corporation (DEC) PDP-1 minicomputer was installed in the "kludge room" on the 2nd floor of Building 26, the location of the MIT Electrical Engineering Department. The PDP-1 was to complement the older TX-0, and like it had a punched tape reader and writer, and additionally accepted input from a panel of switches and could output to a cathode-ray tube (CRT) display. Over the summer before its arrival a group of students and university employees had been pondering ideas for programs that would demonstrate the new computer's capabilities in a compelling way. Three of them—Steve Russell, then an employee at Harvard University and a former research assistant at MIT; Martin Graetz, a research assistant and former student at MIT; and Wayne Wiitanen, a research assistant at Harvard and former employee and student at MIT—came up with the idea for Spacewar!. They referred to their collaboration as the "Hingham Institute" as Graetz and Wiitanen were living in a tenement building on Hingham Street in Cambridge, Massachusetts. "We had this brand new PDP-1", Russell told Rolling Stone in a 1972 interview. "Somebody [Marvin Minsky] had built some little pattern-generating programs which made interesting patterns like a kaleidoscope. Not a very good demonstration. Here was this display that could do all sorts of good things! So we started talking about it, figuring what would be interesting displays. We decided that probably you could make a two-dimensional maneuvering sort of thing, and decided that naturally the obvious thing to do was spaceships."
The gameplay of Spacewar! involves two monochrome spaceships called "the needle" and "the wedge", each controlled by a player, attempting to shoot one another while maneuvering on a two-dimensional plane in the gravity well of a star, set against the backdrop of a starfield. The ships fire torpedoes, which are not affected by the gravitational pull of the star. The ships have a limited number of torpedoes and supply of fuel, which is used when the player fires the ship's thrusters. Torpedoes are fired one at a time by flipping a toggle switch on the computer or pressing a button on the control pad, and there is a cooldown period between launches. The ships remain in motion even when the player is not accelerating, and rotating the ships does not change the direction of their motion, though the ships can rotate at a constant rate without inertia.
Each player controls one of the ships and must attempt to shoot down the other ship while avoiding a collision with the star or the opposing ship. Flying near the star can provide a gravity assist to the player at the risk of misjudging the trajectory and falling into the star. If a ship moves past one edge of the screen, it reappears on the other side in a wraparound effect. A hyperspace feature, or "panic button", can be used as a last-ditch means to evade enemy torpedoes by moving the player's ship to another location on the screen after it disappears for a few seconds, but the reentry from hyperspace occurs at a random location, and in some versions there is an increasing probability of the ship exploding with each use.
Player controls include clockwise and counterclockwise rotation, forward thrust, firing torpedoes, and hyperspace. Initially, these were controlled using the front-panel test switches on the PDP-1 minicomputer, with four switches for each player, but these proved to be awkward to use and wore out quickly under normal gameplay, as well as causing players to accidentally flip the computer's control and power switches. The location of the switches also left one player off to one side of the CRT display due to the limited space in front of the computer, which left them at a disadvantage. To alleviate these problems, Saunders created a detached control device, essentially an early gamepad. The gamepad had a switch for turning left or right, another for forward thrust or hyperspace, and a torpedo launch button. The button was silent so that the opposing player would not have a warning that the player was attempting to fire a torpedo during a cooldown period.
Russell, Graetz and Wiitanen developed the basic Spacewar! concept in the summer of 1961, in anticipation of the PDP-1 being installed. Russell had recently finished reading the Lensman series by E. E. "Doc" Smith and thought the stories would make a good basis for the program. "His heroes had a strong tendency to get pursued by the villain across the galaxy and have to invent their way out of their problem while they were being pursued. That sort of action was the thing that suggested Spacewar!. He had some very glowing descriptions of spaceship encounters and space fleet maneuvers." Other influences cited by fellow programmer Martin Graetz include E. E. Smith's Skylark novels and Japanese pulp fiction tokusatsu movies.
For the first few months after its installation, the PDP-1 programming community at MIT focused on simpler programs to work out how to create software for the computer. During this period, Russell visited his old friends in the community frequently and described the Spacewar! concept to them. Russell hoped someone would implement the game, but had no plans to do so himself. Other members of the community felt he was the logical choice to create the game, however, and began pressuring him to program it. In response, Russell began providing various excuses as to why he could not do so. One of these was the lack of a trigonometric function routine needed to calculate the trajectories of the spacecraft. This prompted Alan Kotok of the TMRC to call DEC, who informed him that they had such a routine already written. Kotok drove to DEC to pick up a tape containing the code, slammed it down in front of Russell, and asked what other excuses he had. Russell, later explaining that "I looked around and I didn't find an excuse, so I had to settle down and do some figuring", started writing the code around the time that the PDP-1's display was installed at the end of December 1961. The game was developed to meet three precepts Russell, Graetz, and Wiitanen had developed for creating a program that functioned equally well as an entertainment experience for the players and as a demonstration for spectators: to use as much of the computer's resources as possible, to be consistently interesting and therefore have every run be different, and to be entertaining and therefore a game. It took Russell, with assistance from the other programmers—including Bob Saunders and Steve Piner (but not Wiitanen, who had been called up by the United States Army Reserve)—about 200 total hours to write the first version of Spacewar!, or around six weeks to develop the basic game. It was written in the PDP-1's assembly language.
Russell had a program with a movable dot before the end of January 1962, and an early operational game with rotatable spaceships by February. The two spaceships were designed to evoke the curvy spaceship from Buck Rogers stories and the PGM-11 Redstone rocket. That early version also contained a randomly generated background star field, initially added by Russell because a blank background made it difficult to tell the relative motion of the two spaceships at slow speeds. The programming community in the area, including the Hingham Institute and the TMRC, had developed what was later termed the "hacker ethic", whereby all programs were freely shared and modified by other programmers in a collaborative environment without concern for ownership or copyright, which led to a group effort to elaborate on Russell's initial Spacewar! game. Consequently, since the inaccuracy and lack of realism in the starfield annoyed TMRC member Peter Samson, he wrote a program based on real star charts that scrolled slowly through the night sky, including every star in a band between 22.5° N and 22.5° S down to the fifth magnitude, displayed at their relative brightness. The program was called "Expensive Planetarium"—referring to the high price of the PDP-1 computer compared to an analog planetarium, as part of the series of "expensive" programs like Piner's Expensive Typewriter—and was quickly incorporated into the game in March by Russell, who served as the collator of the primary version of the game.
The initial version of the game also did not include the central star gravity well or the hyperspace feature; they were written by MIT graduate student and TMRC member Dan Edwards and Graetz respectively to add elements of a strategy to what initially was a shooter game of pure reflexes. Russell had previously wanted to add gravity, but was unable to get the program to perform the calculations fast enough; Edwards optimized the drawing functions to free up processing time to calculate the effects of gravity. The initial version of the hyperspace function was limited to three jumps, but carried no risk save possibly re-entering the game in a dangerous position; later versions removed the limit but added the increasing risk of destroying the ship instead of moving it. Additionally, in March 1962, Saunders created gamepads for the game, to counter "Space War Elbow" from sitting hunched over the mainframe toggles. The game was a multiplayer-only game because the computer had no resources left over to handle controlling the other ship. Similarly, other proposed additions to the game such as a more refined explosion display upon the destruction of a spaceship and having the torpedoes also be affected by gravity had to be abandoned as there were not enough computer resources to handle them while smoothly running the game. One feature, having the speed and direction of torpedoes differ slightly with each shot, was added and then removed by Russell after player complaints. With the added features and changes in place, Russell and the other programmers shifted focus from developing the game to preparing to show it off to others such as at the MIT Science Open House at the end of April 1962. The group added a time limit, the hyperspace function, and a larger, second screen for viewers at the demonstration, and in May Graetz presented a paper about the game, "SPACEWAR! Real-Time Capability of the PDP-1", at the first meeting of the Digital Equipment Computer Users' Society. The demonstration was a success, and the game proved very popular at MIT; the laboratory that hosted the PDP-1 soon banned play except during lunch and after working hours. Visitors such as Frederik Pohl, the editor of Galaxy Science Fiction, enjoyed playing the "lovely game" and wrote that MIT was "borrowing from the science-fiction magazines", with players able to pretend to be Skylark characters.
Beginning in mid-1962 and continuing over the next few years, members of the PDP-1 programming community at MIT, including Russell and the other Hingham Institute members, began to spread out to other schools and employers such as Stanford University and DEC, and as they did they spread the game to other universities and institutions with a PDP-1 computer. As a result, Spacewar! was perhaps the first video game to be available outside a single research institute. Over the next decade, programmers at these other institutions began coding their own variants, including features such as allowing more ships and players at once, replacing the hyperspace feature with a cloaking device, space mines, and even a first-person perspective version played on two screens that simulates each pilot's view out of the cockpit. Some of these Spacewar! installations also replicated Saunders' gamepad. DEC learned about the game soon after its creation, and gave demonstrations of it running on their PDP-1, as well as publishing a brochure about the game and the computer in 1963. According to a second-hand account heard by Russell while working at DEC, Spacewar! was reportedly used as a smoke test by DEC technicians on new PDP-1 systems before shipping because it was the only available program that exercised every aspect of the hardware. Although the game was widespread for the era, it was still very limited in its direct reach: while less expensive than most mainframe computers, the PDP-1 was priced at and only 53 were ever sold, most without a monitor and many of the remainder to secure military locations or research labs with no free computer time, which prevented the original Spacewar! from reaching beyond a narrow, academic audience. Though some later DEC models, such as the PDP-6, came with Spacewar! pre-loaded, the audience for the game remained very limited; the PDP-6, for example, sold only 23 units.
Spacewar! was extremely popular in the small programming community in the 1960s and was widely recreated on other minicomputer and mainframe computers of the time before migrating to early microcomputer systems in the 1970s. Just as it was during development, the game was in the public domain and the code was available to anyone with access to it or who contacted Russell; no attempt was made to sell it commercially, as the programming community was too small to support any commercial industry. It spread initially both by people bringing copies of the code to other installations as well as by programmers recreating the game with their own code. Early installations included the PDP-1 at Bolt, Beranek, & Newman, which also recreated the gamepads; an installation by Russell on a PDP-1 at the Artificial Intelligence Laboratory of Stanford University in 1963; and the University of Minnesota, where MIT graduate Albert Kuhfield in 1967–68 recreated the game for the CDC 3100, and submitted a description to Analog Science Fiction and Fact, published in 1971. The Stanford installation was so popular that in 1966 the researchers created a special "Spacewar mode" for time-sharing computer resources on their PDP-6 so that games could be played on it while research programs were also being run. Early computer scientist Alan Kay noted in 1972 that "the game of Spacewar! blossoms spontaneously wherever there is a graphics display connected to a computer", and Graetz recalled in 1981 that as the game initially spread it could be found on "just about any research computer that had a programmable CRT".
The majority of this spread took place several years after the initial development of the game; while there are early anecdotes of players and game variants at a handful of locations, primarily near MIT and Stanford, it was only after 1967 that computers hooked up to monitors or terminals capable of playing Spacewar! began to proliferate, allowing the game to reach a wider audience and influence later video game designers—by 1971, it is estimated that there were over 1000 computers with monitors, rather than a few dozen. It is around this time that the majority of the game variants were created for various computer systems, such as later PDP systems, and in 1972 the game was well known enough in the programming community that Rolling Stone sponsored the "Intergalactic Spacewar! Olympics". The event was held on October 19, 1972, at the Stanford Artificial Intelligence Laboratory using a variant of Spacewar! on a combined PDP-6/PDP-10 that supported five players, and was the first ever video game tournament, with an account published in the December 7, 1972 issue of Rolling Stone.
In the early 1970s, Spacewar! migrated from large computer systems to a commercial setting as it formed the basis for the first two coin-operated video games. While playing Spacewar! at Stanford sometime between 1966 and 1969, college student Hugh Tuck remarked that a coin-operated version of the game would be very successful. While the high price of a minicomputer prevented such a game from being feasible then, in 1971 Tuck and Bill Pitts created a prototype coin-operated computer game, Galaxy Game, with a PDP-11, though they never produced more than two prototypes exhibited at Stanford. Around the same time, a second prototype coin-operated game based on Spacewar!, Computer Space, was developed by Nolan Bushnell and Ted Dabney, which would become the first commercially sold arcade video game and the first widely available video game of any kind. Though Tuck felt that Computer Space was a poor imitation of Spacewar! and his Galaxy Game a superior adaptation, many players believed both arcade games to be upgraded variants of Spacewar!.
Byte magazine published an assembly language version of Spacewar! in 1977 that ran on the Altair 8800 and other Intel 8080-based microcomputers using an oscilloscope as the graphical display and a lookup table to approximate the calculations for orbits, as well as a three-dimensional variant in 1979 written in Tiny BASIC. More modern recreations of the game for computers have been made as well. An emulated version of the original game, made publicly available by Martin Graetz and running in a JavaScript PDP-1 emulator, was made available to play on the internet in 2012. The Analogue Pocket handheld console added support for running Spacewar! on an emulated PDP-1 in 2022. The only working PDP-1s that are known to exist are kept in the Computer History Museum in Mountain View, California, where demonstrations of the machine are held, which include playing Spacewar!.
In addition to Galaxy Game and Computer Space, Spacewar! had long-lasting effects, inspiring numerous other games. These include Orbitwar (1974, PLATO network computers), Space Wars (1977, arcade), and Space War (1978, Atari 2600). Additionally, in the arcade game Asteroids (1979), designer Ed Logg used elements from Spacewar!, namely the hyperspace button and the shape of the player's ship. Products as late as the 1990 computer game Star Control drew direct inspiration from Spacewar!. Russell has been quoted as saying that the aspect of the game that he was most pleased with was the number of other programmers it inspired to write their own games without feeling restricted to using Russell's own code or design.
On March 12, 2007, The New York Times reported that Spacewar! was named to a list of the ten most important video games in history, the so-called game canon, which were proposed to be archived in the Library of Congress. The Library of Congress took up this video game preservation proposal and began with the games from this list. In 2018, it was inducted into the World Video Game Hall of Fame by The Strong and the International Center for the History of Electronic Games. Also in 2018, the Academy of Interactive Arts & Sciences awarded the Pioneer Award, given "for individuals whose career spanning work has helped shape and define the interactive entertainment industry", to the surviving contributors to Spacewar!: Dan Edwards, Martin Graetz, Steven Piner, Steve Russell, Peter Samson, Robert Sanders, and Wayne Wiitanen.