Jump to content

Spacewar!

This is a good article. Click here for more information.
From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by ClueBot NG (talk | contribs) at 17:33, 7 April 2016 (Reverting possible vandalism by 107.216.181.34 to version by PresN. Report False Positive? Thanks, ClueBot NG. (2613346) (Bot)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Spacewar
Developer(s)Steve Russell
Platform(s)PDP-1
Release1962
Genre(s)Space combat simulation
Mode(s)Multiplayer

Spacewar (stylized Spacewar!) is a space combat video game developed in 1962 as one of the first games created in the early history of video games. It was initially designed by Steve Russell, in collaboration with Martin Graetz and Wayne Wiitanen, and programmed by Russell with assistance from others including Bob Saunders and Steve Piner for the newly installed Digital Equipment Corporation 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, primarily academic, installations of the PDP-1 computer, making Spacewar the first known video game to be played at multiple computer installations.

The monochrome 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 fuel for maneuvering and a limited number of torpedoes, and the ships follow Newtonian physics, remaining in motion even when the player is not accelerating. Ships are destroyed when hit with a torpedo or colliding with the star, though flying near the star can provide a gravity assist to the player. At any time, the player can engage a hyperspace feature to move to a new, random location on the screen, though each use has an increasing chance of destroying the ship instead. The game was initially controlled with switches on the PDP-1, though Alan Kotok and Bob Saunders built an early gamepad to reduce the difficulty and awkwardness of controlling the game.

Spacewar was extremely popular in the small programming community in the 1960s and was widely ported to other computer systems at the time. It has also been recreated in more modern programming languages for PDP-1 emulators. It directly inspired many other electronic games, such as the first commercial arcade games Galaxy Game and Computer Space (1971), and later games such as Asteroids (1979). In 2007, Spacewar was named to a list of the ten most important video games of all time, which formed the start of the game canon at the Library of Congress.

Background

Steve Russell, designer and main programmer of the initial version of Spacewar, in 2007

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 in batches. A few programs, however, while used to showcase the power of the computer they ran on were also intended 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 they were allowed on occasion to develop programs for the TX-0 experimental computer.[1] 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.[1][2][3]

In the fall of 1961, a Digital Equipment Corporation (DEC) PDP-1 minicomputer was installed in the "kludge room" of the MIT Electrical Engineering Department to complement the older TX-0, and even before its arrival a group of students and university employees had been brainstorming 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—referring to their collaboration as the "Hingham Institute" as Graetz and Wiitanen were living in a tenement building on Hingham Street in Cambridge, Massachusetts, came up with the idea for Spacewar.[2][4] "We had this brand new PDP-1", Steve Russell told Rolling Stone in a 1972 interview. "Somebody 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."[5]

Gameplay

Recreation of Spacewar in Java

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.[2][4] The ships fire torpedoes, which are not affected by the gravitational pull of the star. The ships have a limited number of torpedoes and a limited supply of fuel, which is used when the player fires his thursters.[6] 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 follow Newtonian physics, remaining in motion even when the player is not accelerating, though the ships can rotate at a constant rate without inertia.[2]

Each player controls one of the ships and must attempt to shoot down the other ship while avoiding a collision with the star. 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 disappearing for a few seconds, but the reentry from hyperspace occurs at a random location, and there is an increasing probability of the ship exploding with each use.[6]

Player controls include clockwise and counterclockwise rotation, forward thrust, firing torpedoes, and hyperspace.[6] 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 him at a disadvantage.[2] To alleviate these problems, Kotok and Saunders created a detached control device, essentially an early gamepad.[7] 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.[2]

Development

Vint Cerf playing Spacewar on the Computer History Museum's PDP-1 at a 2007 ICANN meeting

In the fall of 1961 while brainstorming ideas for a program for the PDP-1, Russell had just 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."[5] Other influences cited by fellow programmer Martin Graetz include E.E. Smith's Skylark novels and Japanese pulp fiction tokusatsu movies.[8]

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.[2] The community had heard of the Spacewar concept, however, and understood that Russell would spearhead the development of it. When members of the community began to feel the time was right to start work on the game, Russell, nicknamed "Slug" because of his tendency to procrastinate, began providing various excuses as to why he could not start programming the game..[2][9] One of these was the lack of a trigonometric function routine needed to calculate the trajectories of the spacecraft. This prompted Alan Kotok of 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 in December 1961.[2][9] 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.[2][10] It took Russell, with assistance from the other programmers—including Bob Saunders and Steve Piner, but not including Wiitanen, who had been called up by the United States Army Reserve—about 200 man-hours to write the first version of Spacewar, around six weeks to develop the basic game.[2][9][11]

screenshot of code used to produce the planetarium
Excerpt from the Expensive Planetarium star charts

Russell had a program with a movable dot by January 1962, and an early operational game with rotatable spaceships by February.[2] The two spaceships were designed to evoke the curvy spaceship from Buck Rogers stories and the PGM-11 Redstone rocket.[4] That early version also contained a randomly generated background starfield, initially added by Russell because a blank background made it difficult to tell the relative motion of the two spaceships at slow speeds.[2] 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 lead to a group effort to elaborate on Russell's initial Spacewar game.[4][11] 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 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.[2][4][7]

Spacewar on the Computer History Museum's PDP-1 in 2007

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 strategy to what initially was a shooter game of pure reflexes. 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 during this development period, Kotok and Saunders created the gamepads for the game.[2] The game was a multiplayer-only game because the computer had no resources left over to handle controlling the other ship.[7] 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.[2] With the added features and changes, Spacewar was essentially complete by late April 1962, and 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 in May.[2][12] The group added a time limit, as well as a larger, second screen for viewers at the demonstration, and that same month 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.[2] 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.[2][13]

Beginning in the summer of 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.[2][4][7] As a result, Spacewar was perhaps the first video game to be available outside a single research institute.[14] 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.[5][6] Some of these Spacewar installations also replicated Kotok and Saunders' gamepad.[15] 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.[11][15] Although the game was widespread for the era, it was still very limited in its direct reach: the PDP-1 was priced at US$120,000 and only 55 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.[4][7][15]

Legacy

Two users playing Spacewar on a PDP-12 at the Vintage Computer Festival

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.[4] 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".[2][5] 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 began 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.[15] 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 "SpaceWar! Olympics", possibly the first video game tournament.[5][15]

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 US$20,000 PDP-11. 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.[16] Though Tuck felt that Computer Space was a poor imitation of Spacewar and his game a superior adaptation, many players believed both of the games to be upgraded variants of Spacewar.[10]

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 for orbits,[17] as well as a three-dimensional variant in 1979 written in Tiny BASIC.[18] More modern recreations of the game for computers have been made as well.[19] An emulated version of the original game, based on the original source code made publicly available by Martin Graetz and running in a JavaScript PDP-1 emulator, was made available to play on the internet in 2012.[20] 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.[21]

In addition to Galaxy Game and Computer Space, numerous other games have been directly inspired by Spacewar.[22] These include Orbitwar (1974, PLATO network computers), Space Wars (1977, arcade), and Space War (1978, Atari 2600).[23][24] Additionally, in Asteroids (1979), designer Ed Logg used elements from Spacewar, namely the hyperspace button and the shape of the player's ship.[25] Products as late as the 1990 computer game Star Control drew direct inspiration from Spacewar.[15] 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.[13]

On March 12, 2007, The New York Times reported that Spacewar was named to a list of the ten most important video games of all time, the so-called game canon, which were proposed to be archived in the Library of Congress.[26] The Library of Congress took up this video game preservation proposal, and began with the games from this list.[27][28]

Notes

  1. ^ a b Smith, Alexander (2014-07-10). "People Get Ready, There's a Train A-Coming". They Create Worlds. Archived from the original on 2015-12-22. Retrieved 2015-12-18. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  2. ^ a b c d e f g h i j k l m n o p q r s t u Graetz, J. M. (August 1981). "The origin of Spacewar". Creative Computing. 6 (8): 56–67. ISSN 0097-8140.
  3. ^ "The TX-0: Its Past and Present". The Computer Museum Report. 8. The Computer Museum. Spring 1984.
  4. ^ a b c d e f g h Smith, Alexander (2014-08-07). "One, Two, Three, Four I Declare a Space War". They Create Worlds. Archived from the original on 2015-12-22. Retrieved 2015-12-18. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  5. ^ a b c d e Brand, Stewart (1972-12-07). "Spacewar: Fantastic Life and Symbolic Death Among the Computer Bums". Rolling Stone (123). Straight Arrow Publishers: 50–58. ISSN 0035-791X.
  6. ^ a b c d Goodavage, Joseph F. (November 1972). "Space War!: A Computer Game Today, a Reality Tomorrow?". Saga. 44 (8). Gambi Publications: 34–37, 92–94.
  7. ^ a b c d e Replay, pp. 10–13
  8. ^ "Players Guide To Electronic Science Fiction Games". Electronic Games. 1 (2). Reese Publishing Company: 34–45. March 1982. ISSN 0730-6687. Retrieved 2016-03-04.
  9. ^ a b c Bellis, Mary. "The History of Spacewar". About.com. IAC. Retrieved 2016-03-04.
  10. ^ a b High Score, p. 12–16
  11. ^ a b c Hackers: Heroes of the Computer Revolution
  12. ^ Lasar, Matthew (2011-10-25). "Spacewar!, the first 2D top-down shooter, turns 50". Ars Technica. Condé Nast. Archived from the original on 2015-07-26. Retrieved 2016-01-13. {{cite news}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  13. ^ a b Markoff, John (2002-02-28). "A Long Time Ago, in a Lab Far Away..." The New York Times. p. G9. Retrieved 2015-12-18.
  14. ^ Understanding Digital Games, p. 22
  15. ^ a b c d e f Monnens, Devin; Goldberg, Martin (June 2015). "Space Odyssey: The Long Journey of Spacewar! from MIT to Computer Labs Around the World". Kinephanos (Special Issue). ISSN 1916-985X.
  16. ^ Replay, pp. 14–26
  17. ^ Kruglisnki, Dave (October 1977). "How to Implement Space War (or Using Your Oscilloscope as a Telescope)". Byte. 2 (10). McGraw-Hill: 86–111. Retrieved 2016-03-07.
  18. ^ Beard, David (May 1979). "Spacewar in Tiny BASIC". Byte. 4 (5). McGraw-Hill: 110–115. Retrieved 2016-03-07.
  19. ^ Cox, Charles; Klucher, Michael (May 2007). "Unleash Your Imagination With XNA Game Studio Express". MSDN Magazine. Microsoft Corporation. Archived from the original on 2007-10-05. Retrieved 2016-03-07. {{cite journal}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  20. ^ Humphries, Matthew (2012-12-11). "Play Spacewar! on the DEC PDP-1 emulated in your browser". Geek.com. Ziff Davis. Archived from the original on 2016-03-05. Retrieved 2015-07-28. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  21. ^ "The Mouse That Roared: A PDP-1 Celebration Event". Computer History Museum. 2006-05-15. Archived from the original on 2016-01-03. Retrieved 2016-03-08. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  22. ^ Markoff, John (1990-12-16). "Digital Fetes the 'Germ' That Began a Revolution". The New York Times. Retrieved 2016-03-08.
  23. ^ Barton, Matt; Loguidice, Bill (2009-06-10). "The History of Spacewar!: The Best Waste of Time in the History of the Universe". Gamasutra. UBM. Archived from the original on 2016-03-03. Retrieved 2016-03-07. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  24. ^ Before the Crash, p. 212
  25. ^ Lorge, Greta; Antonucci, Mike. "Game Changers - Ed Logg, MS '72". Stanford Magazine (May/June 2012). Stanford University. Retrieved 2016-03-08.
  26. ^ Chaplin, Heather (2007-03-12). "Is That Just Some Game? No, It's a Cultural Artifact". The New York Times. p. E7. Retrieved 2016-03-08.
  27. ^ Ransom-Wiley, James (2007-03-12). "10 most important video games of all time, as judged by 2 designers, 2 academics, and 1 lowly blogger". Joystiq. AOL. Archived from the original on 2007-03-14. Retrieved 2016-03-08. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  28. ^ Owens, Trevor (2012-09-26). "Yes, The Library of Congress Has Video Games: An Interview with David Gibson". The Signal. Library of Congress. Archived from the original on 2016-03-08. Retrieved 2016-03-08. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)

References