From Codex Gamicus
Jump to: navigation, search

Spacewar! is one of the earliest known digital computer games. It is a two-player game, with each player taking control of a spaceship and attempting to destroy the other. A star in the centre of the screen pulls on both ships and requires maneuvering to avoid falling into it. In an emergency, a player can enter hyperspace to return at a random location on the screen, but only at the risk of exploding if it is used too often.

Steve "Slug" Russell, Martin "Shag" Graetz and Wayne Witaenem of the fictitious "Hingham Institute" conceived of the game in 1961, with the intent of implementing it on a DEC PDP-1 at the Massachusetts Institute of Technology. After Alan Kotok obtained some sine and cosine routines from DEC, Russell began coding, and by February 1962 had produced his first version. It took approximately 200 hours of work to create the initial version. Additional features were developed by Dan Edwards, Peter Samson and Graetz.[1]

Contents[edit | edit source]

 [hide] *1 Background

[edit]Background[edit | edit source]

[1][2]Steve Russell programmed the first version of Spacewar!

Between 1959 and 1961, a collection of interactive graphical programs had been created on the TX-0 experimental computer at MIT. These included Mouse in the Maze[2] and Tic-Tac-Toe.[3]

In the fall of 1961, a PDP-1 was installed in the "kludge room" of the Electrical Engineering Department, and even before its arrival, a group of students at a tenement on Hingham Street had been brainstorming ideas for programs that would demonstrate the new computer's capabilities in a compelling way.[3] "We had this brand new PDP-1," 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."[4] Russell had just finished reading the Lensman series by E.E. 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."[4] Other influences cited by Graetz include E.E. Smith's Skylark novels and Japanese sci-fi tokusatsu movies.[5]

[edit]Gameplay[edit | edit source]

The basic gameplay of Spacewar! involves two armed spaceships called "the needle" and "the wedge" attempting to shoot one another while maneuvering in the gravity well of a star. The ships fire missiles that are unaffected by gravity (due to a lack of processing time). Each ship has a limited number of missiles and a limited supply of fuel. Each player controls one of the ships, and must attempt to simultaneously shoot at the other ship and avoid colliding with the star. The hyperspace feature can be used as a last-ditch means to evade enemy missiles, but the reentry from hyperspace would occur at a random location and there is an increasing probability of the ship exploding with each use.

Player controls include clockwise and counterclockwise rotation, thrust, fire, and hyperspace. Initially these were controlled using the front-panel test switches, with four switches for each player, but these proved to wear out very quickly under normal gameplay, and the location of the switches left one player off to one side of the CRT display and visually disadvantaged as a result.[3] Most sites used custom control boxes wired into the same switches, although joysticks and other inputs were also used.

Several optional features were controlled by sense switches on the console:

  • no star (and thus no gravity)
  • enable angular momentum
  • disable background starfield
  • the "Winds of Space"- a warping factor on trajectories that require the pilot to make careful adjustments every time they move.

[edit]Subsequent developments and variants[edit | edit source]

[3][4]Two players using the front-panel of a PDP-12 to play Spacewar! at the Vintage Computer Festival

The first operational version of the game, finished by February 1962, contained a randomly generated background starfield. However, the inaccuracy and lack of verisimilitude annoyed Samson, so he wrote a program based on real star charts that scrolled slowly: at any one time, 45% of the night sky was visible, every star down to the fifth magnitude. The program was called "Expensive Planetarium" (referring to the price of the PDP-1 computer), and was quickly incorporated into the main code. The star gravity well and the hyperspace feature also had yet to appear in that first playable version; they were written by Edwards and Russell, respectively, to add elements of strategy to what initially was a shooter game of pure reflexes. With these additions, Spacewar! was essentially complete by late April 1962.[3]

The game spread rapidly to other research centers, where other programmers began coding their own variants, including features such as cloaking devices, space mines, and even a first-person perspective version, played with two screens, that simulated each pilot's view out of the cockpit.[4]

Spacewar! was a fairly good overall diagnostic of the PDP-1 computer and Type 30 Precision CRT Display, so DEC apparently used it for factory testing and shipped PDP-1 computers to customers with the Spacewar! program already loaded into the core memory; this enabled field testing as when the PDP was fully set up, the field representative could simultaneously relax and do a final test of the PDP.

[edit]Ports to other systems[edit | edit source]

Spacewar! was extremely popular in the 1960s, and was widely ported to other systems. As it required a graphical display, most of the early ports were to other DEC platforms like the PDP-10 or PDP-11, or various CDC machines.

Early microcomputer systems also supported Spacewar!. The Cromemco Dazzler had a version, as did the ECD Micromind. The Micromind did not have a high-resolution bitmap display, due to the high cost of memory at the time. This version rendered ships in portions of the computer's flexible character generator, which was dynamically generated to support rendering ships at different angles.[6]

Spacewar was ported in the 1970's to a new computer, the HP9825 desktop calculator, using a pen-based plotter as the display. Ported by a mathematician working in the (then) 544 ARTW/Trajectory Division, it was a natural project for the engineers working on ballistic missile codes.

[edit]Spacewar! today[edit | edit source]

[5][6]Vint Cerf playing Spacewar! on theComputer History Museum's PDP-1, ICANNmeeting, 2007

As of May 2006, there is only one working PDP-1 known to be in existence, at the Computer History Museum in Mountain View, California. The computer and display were completely restored after two years of work, and Spacewar! is operational. On May 15, 2006, the museum presented The Mouse That Roared: A PDP-1 Celebration Event.[7] The PDP-1 was demonstrated running Spacewar! as well as other programs, and members of the public were able to play the game using makeshift controllers.

Code simulatingSpacewar! has been included with Microsoft XNA Game Studio Express.[8]

The game is available as PDP-1 source code and in emulation on the web.

[edit]Games inspired by Spacewar![edit | edit source]

[7][8]KSpaceDuel, a modern derivative included in many Linux distributions[9][10]The Spacewar! Java applet

Over the years, many computer games have been inspired by Spacewar![9]; some are known by the same name. Some are straightforward clones, but most have introduced additional variations to the game play, such as:

  • various rates of acceleration
  • various levels of gravity (even negative)
  • missiles affected by gravity
  • fuel (energy) regeneration over time
  • shields

Arcade versions of Spacewar! were released as the Galaxy Game (1971), Computer Space by Nutting Associates (1971), and Space Wars by Cinematronics(1977), the last being the most commercially successful.

The first networked version of this genre was Orbitwar (1974) by Silas Warner on the PLATO network. It included all the features of the original Spacewar! with the addition of a Big Board where PLATO users would await challenges from each other to play.

Home versions have appeared for most computer and console systems, with some becoming quite elaborate, such as the Star Control series, introducing a wide variety of gameplay frameworks around the basic one-on-one combat system at its core. Senko no Ronde can be described as a modern interpretation of Spacewar!, with a design heavily inspired by versus fighters such as Street Fighter II. The Escape Velocity series also owes its 2D inertial combat and navigation to Spacewar!.

Non-space themed variants with similar play (ie two players control a vehicle using similar controls – ie rotate left / rotate right / move forward / fire – and try to score by hitting their opponent with a missile) include Tank by Kee Games and Combat by Atari.

Although some accounts mistakenly identify Spacewar! as a motivation for the development of Unix, the game involved in that case was Space Travel.[10]

Atari, Inc. made Space War, an Atari 2600 port of the original with additional options. Atari Corporation had an Atari Jaguar game called Spacewar 2000' in development as a 3D update to the original, but was cancelled when Atari abandoned Jaguar support.

[edit]Earlier computer and video games[edit | edit source]

The first graphical computer game is believed to have been OXO (a Tic-tac-toe game), developed by A.S. Douglas in 1952. William Higinbotham built Tennis for Two in 1958 using discrete analog hardware rather than a program for a digital computer.