Copyright © 1981 by Creative Computing, 39 E. Hanover Ave., Morris Plains, NJ 07950. Sample issue $2.50, 12-issue subscription $20.(but they went out of business in 1985, so there's not much point in writing off for your sample issue).
This HTMLized version was typed by Eric Fischer.
It all came together in 1961 at the Hingham Institute, a barely-habitable tenement on Hingham Street in Cambridge, MA. Three Institute Fellows were involved: Wayne Witanen, mathematician, early music buff, and mountain climber; J. Martin Graetz (which is me), man of no fixed talent who tended to act superior because he was already a Published Author; and Stephen R. (Slug) Russell, specialist in steam trains, trivia, and artificial intelligence. We were all about 25 (the more or less to be the same).
At the time, we were crashing and banging our way through the "Skylark" and "Lensman" novels of Edward E. Smith, PhD., a cereal chemist who wrote with the grace and refinement of a pneumatic drill. These stories are pretty much all of a piece: after some preliminary foofaraw to get everyone's name right, a bunch of overdeveloped Hardy Boys go trekking off through the universe to punch out the latest gang of galactic goons, blow up a few planets, kill all sorts of nasty life forms, and just have a heck of a good time.
In a pinch, which is where they usually were, our heroes could be counted on to come up with a complete scientific theory, invent the technology to implement it, build the tools to implement the technology, and produce the (usually) weapons to blow away the baddies, all while being chased in their spaceship hither and thither through the trackless wastes of the galaxy (he wrote like that) by assorted Fenachrone, Boskonians, and the World Steel Corporation.
Is that enough to turn the mind to margarine? It is not. In breaks between books, we would be off to one of Boston's seedier cinemas to view the latest trash from Toho. In the days before Mazdas and Minoltas, the Japanese (and occasionally the British and Californians) churned out a steady diet of cinematic junk food of which Rodan and Godzilla are only the best known examples. These movies depended for their effects on high quality modelwork, oceans of rays, beams, and explosions, and the determined avoidance of plot, character, or significance. They were the movie equivalent of The Skylark of Space.
If that's the case, we asked ourselves, why doesn't anyone make Skylark movies? Hearing no reply (our innocence of current film technology, economics, and copyright laws was enormous), we often passed the time in the Hingham Street common room in deep wishful thought, inventing special effects and sequences for a grand series of space epics that would never see a sound stage. Nonetheless, these books, movies, and bull-sessions established the mind-set that eventually led to Spacewar!
To a generation whose concept of a computer is founded on the Z80 chip, it may be hard to visualize a 704 or to comprehend the place it held in the public imagination (along with UNIVAC) as the type specimen of what a computer was: a collection of mysterious hulking gray cabinets approachable only through the intercession of The Operator. In the specially built computer room, The Operator set switches, pushed buttons, and examined panels of flashing lights, while his Assistants attended various whirring, clanking, and chattering devices, rushing to and fro with stacks of cryptically-printed paper, decks of weirdly-punched cards, and reels of recondite brown ribbon, all to the background hum of The Machine. Add a little incense and a few candles, and you could be forgiven for thinking these were the rites of some oracular shrine.
Everything about the 704, from the inscrutable main frame to the glowing tubes (yes, tubes!) in the glass-walled core memory case, proclaimed that this was a Very Complicated System operated only by Specially Trained Personnel, among whom programmers and other ordinary mortals were not numbered. In short, a computer was something that you simply did not sit down and fool around with.
While hardly your average populist Apple, the TX-0 was definitely a step away from the Computer-as-Apollo. Instead of being sealed into its own special chapel, it sat at one end of a typical large, messy MIT research space. With its racks of exposed circuitry, power supplies and meters, and its long, low L-shaped console, the TX-0 looked for all the world like the control room of a suburban pumping station. And the thing of it was, you were expected to run it yourself.
So here was the former 704 Operator's Assistant pushing buttons, flipping switches, and pressing keys to make his own programs work. In some ways it was simpler than the 704; for one thing, there wasn't a battery of clanking mechanical monsters. The TX-0's input and output medium was something called a Flexowriter: an all-in-one keyboard, printer, paper-tape reader and punch, that worked like a mule and had a personality to match. There was also a "high-speed" paper tape reader, a Grand Prix whiz that could read programs into memory almost as fast as the cassette-tape reader on a TRS-80.
And the TX-0 had a Scope. Now console-mounted, programmable CRTs were not unheard of at that time but they were generally slow, inflexible, and awkward to program. The TX-0 scope, on the other hand, was easy to use; you could generate a useful display with fewer than a dozen instructions. And if that weren't enough, there was a magic wand: the light pen. (The importance of these two devices can't be overemphasized; Ivan Sutherland used the scope and the pen to develop his original "Sketchpad.")
That was the TX-0, the world's first on-line computer, and the training ground for the designers and programmers of later generations of hands-on machines. The first computer bums -- hackers -- were the products of this training; without it, and them, there would have been no Spacewar!
Out of this cloud of computer bums emerged the group that brought Spacewar! to the silver (well, light gray) screen: Dan Edwards (AI Group), Lisp specialist; Alan Kotok (TX-0 staff), who wrote MIDAS, the successor to MACRO; Peter Sampson (AI Group), who made the Tixo and PDP-1 play Bach; and Steve Russell and I.
On the other hand, something is always happening on a TV screen, which is why people stare at them for hours. On MIT's annual Open House day, for example, people came to stare for hours at Whirlwind's CRT screen. What did they stare at? Bouncing Ball.
Bouncing Ball may be the very first computer-CRT demonstration program. It didn't do much: a dot appeared at the top of the screen, fell to the bottom and bounced (with a "thok" from the console speaker). It bounced off the sides and floor of the displayed box, gradually losing momentum until it hit the floor and rolled off the screen through a hole in the bottom line. And that's all. Pong was not even an idea in 1960. (Note: Well, maybe not Pong, but something very much like it. Watch these pages. --DHA)
The TX-0's counterpart to Bouncing Ball was the Mouse in the Maze, written by Douglas T. Ross and John E. Ward. Essentially, it was a short cartoon: a stylized mouse searched through a rectangular maze until it found a piece of cheese which it then ate, leaving a few crumbs. You constructed the maze and placed the cheese (or cheeses -- you could have more than one) with the light pen. A variation replaced the cheese with a martini; after drinking the first one the mouse would stagger to the next.
Besides the Mouse, the TX-0 also had HAX, which displayed changing patterns according to the settings of two console switch registers. Well-chosen settings could produce interesting shapes or arrangements of dots, sometimes accompanied by amusing sounds from the console speaker. The console speaker is a phenomenon whose day seems to have passed. More than just a plaything, for the experienced operator the speaker was a valuable guide to the condition of a running program.
Finally, there was the inevitable Tic-Tac-Toe, with the user playing the computer. The TX-0 version used the Flexowriter rather than the scope. (The game is so simple to analyze that there was even a version for the off-line Flexo.)
These four programs pointed the way. Bouncing Ball was a pure demonstration: you pushed the button, and it did all the rest. The mouse was more fun, because you could make it different every time. HAX was a real toy; you could play with it while it was running and make it change on the fly. And Tic-Tac-Toe was an actual game, however simpleminded. The ingredients were there; we just needed an idea.
All this changed in the fall of 1961, when the first production-model PDP-1 was installed in the "Kluge Room" next door to the TX-0. It had been anticipated for months; an early brochure announcing the machine (as well as a couple of no-shows called the PDP-2 and PDP-3, in case you had been wondering about that) had been circulating in the area for a while. It was clear that the PDP-1 had TX-0 genes; the hackers would be right at home.
The -1 would be faster than the Tixo, more compact, and available. It was the first computer that did not require one to have an E.E. degree and the patience of Buddha to start it up in the morning; you could turn it on any time by flipping one switch, and when you were finished you could turn it off. We had never seen anything like that before.
With the Fenachrone hot on our ion track, Wayne said, "Look, you need action and you need some kind of skill level. It should be a game where you have to control things moving around on the scope, like, oh, spaceships. Something like an explorer game, or a race or contest... a fight, maybe?"
"SPACEWAR!" shouted Slug and I, as the last force screen flared into the violet and went down.
The basic rules developed quickly. There would be at least two spaceships, each controlled by a set of console switches ("Gee, it would be nice to have a joystick or something like that..."). The ships would have a supply of rocket fuel and some sort of a weapon: a ray or beam, possibly a missile. For really hopeless situations, a panic button would be nice... hmmm... aha! Hyperspace! (What else, after all, is there?) And that, pretty much, was that.
The PDP-1 was a no-frills machine at the beginning; except for a few diagnostic and utility routines, there was no program library. In a way this suited the hackers just fine; here was a chance to improve on TX-0 software and to write new stiff that couldn't have been done before. MACRO and FLIT were translated from TXish to PDPese, FLIT becoming the first in a continuing line of DDT on-line debugging programs. Steve Piner wrote a text display and editing program called Expensive Typewriter (For a while, "expensive" was a favorite adjective for naming various PDP-1 routines that imitated the functions of more mundane devices. Among them was Peter Samson's E. Planetarium, as we shall see.), another original whose lineage you can trace, if you like, right down to the latest word processors.
With the software taken care of we could write real programs, which is to say toys. Bouncing Ball was successfully converted to PDP-1 use, but HAX, for some reason, was not. But no one really missed it, because we had a brand-new toy invented by Professor Marvin Minsky. The program displayed three dots which proceeded to "interact," weaving various patterns on the scope face. As with HAX, the initializing constants were set in the console switches. Among the patterns were geometric displays, Lissajous-like figures, and "fireworks." Minsky's program title was something like "Tri-Pos: Three-Position Display," but from the beginning we never called it anything but The Minskytron ("tron" was the In suffix of the early 1960s.)
The classic needle and wedge space ship outlines and the opposite-quadrant starting positions were established at this stage, as shown in Figure 1. Acceleration was realistic; it took time to get off the mark, and to slow down you had to reverse the ship and blast in the other direction; the rocket exhaust was a flickering "fiery tail." Rotation, on the other hand, was by something we called "gyros" -- a sort of flywheel effect invented to avoid consideration of messy things like moments of inertia. I guess they were really rotational Bergenholms.
It was apparent almost immediately that the featureless background was a liability. It was hard to gauge relative motion; you couldn't tell if the ships were drifting apart or together when they were moving slowly. What we needed, obviously, were some stars. Russell wrote in a random display of dots, and the quality of play improved. The only thing left, we thought, was hyperspace, and that was on the way. In fact, we'd just begun.
The box is wood with a Bakelite top. The two switches are double-throw; the button is a silent momentary switch. Their functions are as follows:
With the control boxes, players could sit comfortably apart, each with a clear view of the screen. That, plus the carefully designed layout of the controls, improved ones playing skills considerably, making the game even more fun.
Russell, never one to "do something" when there was an alternative, begged off for one reason or another. One of the excuses for not doing it, Slug remembers, was "Oh, we don't have a sine-cosine routine and gee, I don't know how to write a sine-cosine routine..." Then Alan Kotok came back from a trip all the way to Maynard (DEC headquarters) with paper tapes saying "All right, Russell, here's a sine-cosine routine; now what's your excuse?" "Well," says Slug, "I looked around and I didn't find an excuse, so I had to settle down and do some figuring."
With the heavy mathematics in hand, Slug produced the first object-in-motion program in January 1962. This was nothing more than a dot which could accelerate and change direction under switch control. Even without a hardware multiply-divide capability (on the early PDP-1s, anything stiffer than integer addition and subtraction had to be done by subroutine) the computer was clearly not being pushed.
From dot to rocket ship was a surprisingly easy step: "I realized," Slug says, "that I didn't have to worry about the speed of the sine-cosine routine, because there were only two angles involved in each frame -- one for each ship. Then the idea of rotating the grid came out." The ship outlines were represented as a series of direction codes starting from the nose of the ship; when the ship was vertical and tail-down, each code pointed to one of the five possible adjacent dots could be displayed next. To display the ship at an angle, Russell calculated the appropriate sine and cosine and added them to the original direction code constants, in effect rotating the entire grid. With this method, the ship's angle had to be calculated only once in each display frame. The outline codes were kept in a table so that different shapes could be tried out at will, but this meant the table had to be searched every frame to generate the outline. As the game developed, this arrangement proved to be a sticking point which we shall see was neatly solved by Dan Edwards.
By February, the first game was operating. It was a barebones model: just the two ships, a supply of fuel, and a store of "torpedoes" -- points of light fired from the nose of the ship. Once launched, a torpedo was a ballistic missile, zooming along until it either hit something (more precisely, until it got within a minimum distance of a ship or another torpedo) or its "time fuse" caused it to self-destruct.
"Peter Samson," recalls Russell, "was offended by my random stars." In other words, while a background of miscellaneous points of light might be all very well for some run-down jerkwater space fleet, it just wouldn't do for the Galactic Patrol. So Peter Samson sat down and wrote "Expensive Planetarium."
Using data from the American Ephemeris and Nautical Almanac, Samson encoded the entire night sky (down to just above fifth magnitude) between 22 1/2 ° N and 22 1/2 ° S, thus including most of the familiar constellations. The display can remain fixed or move gradually from right to left, ultimately displaying the entire culinder [cylinder?] of stars. The elegance does not stop there. By firing each display point the appropriate number of times, Samson was able to produce a display that showed the stars at something close to their actual relative brightness. An attractive demonstration program in its own right, E.P. was "duly admired and inhaled into Spacewar!"
Russell: "Dan Edwards was offended by the plain spaceships, and felt that gravity should be introduced. I pleaded innocence of numerical analysis and other things" -- in other words, here's the whitewash brush and there's a section of fence -- "so Dan put in the gravity calculations."
The star blazed forth from the center of the screen, its flashing rays a clear warning that it was not to be trifled with. Its gravity well encompassed all space; no matter where you were, if you did not move you would be drawn into the sun and destroyed. (As a gesture of good will towards less skillful or beginning players, a switch option turned annihilation into a sort of hyperstatial translation to the "anti-point," i.e., the four corners of the screen.)
The star did two things. It introduced a player-independent element that the game needed; when speeds were high and space was filled with missiles, it was often sheer luck that kept one from crashing into the star. It also brought the other elements of the game into focus by demanding strategy. In the presence of gravity both ships were affected by something beyond their control, but which a skillful player could use to advantage.
The first result of this new attention to strategy was the opening move in Figure 3, which was quickly dubbed the "CBS opening" because of its eye-like shape. It took a while to learn this maneuver but it soon became the standard opening among experienced players, as it generally produced the most exciting games.
The addition of gravity pushed Spacewar! over the edge of flicker-free display. To get back under the limit, Dan Edwards devised an elegant fiddle to speed up the outline display routine.
In Russell's original program, the outline tables were examined and interpreted in every display frame, an essentially redundant operation. Edwards replaced this procedure with an outline "compiler," which examined the tables at the start of a game and compiled a short program to generate the outline for each ship. This dramatically reduced calculation time, restoring the steady display and making room for the last of the original bells and whistles.
The original hyperspace was not that elegant. "MK I unreliability" boiled down to this: you had exactly three jumps. In each jump your ship's co-ordinates were scrambled so that you never knew where you would reappear -- it could be in the middle of the sun. You were gone for a discernible period of time, which gave your opponent a bit of a breather, but you came back with your original velocity and direction intact. To jump you pushed the blast lever forward.
Hyperspace had one cute feature (well, I thought it was cute). Do you remember the Minskytron? One of its displays looked very much like a classical Bohr atom, which in those days was an overworked metaphor for anything to do with space and science-fiction. Reasoning that a ship entering hyperspace would cause a local distortion of space-time resulting in a warp-induced photonicstress emission (see how easy this is?), I made the disappearing ship leave behind a short Minskytron signature (Figure 4).
The most irritating of these (and the first to be improved in later versions) was the appropriately-named Crock Explosion. Something dramatic obviously had to happen when a ship was destroyed, but were were dealing with a plain dot-matrix screen. The original control program produced a random-dot burst confined within a small square whose outlines were all too discernible (Figure 5).
This explosion was intended merely as a place-holder until something more plausible could be worked out, but after all the other features had been "inhaled," there wasn't room or time for a fancier calculation.
Similarly, the torpedoes were not quite consistent with the Spacewar! universe after the heavy star was in place. The gravity calculations for two ships was as much as the program could handle; there was no time to include half a dozen missiles as well. So the torpedoes were unaffected by the star, with the odd result that you could shoot right through it and hit something on the other side (if you weren't careful getting round the Star, it could be you). We made the usual excuses... mumblemumble photon bombs mumblemumble... but no one really cared.
The heavy star itself was not entirely Newtonian. The common tactic of plunging down the gravity well to gain momentum by whipping around the sun (Figure 6) gave you somewhat more energy than you were really entitled to. As this just made the game more interesting, nothing was immediately done to correct it.
Also in May, the first meeting of DECUS (Digital Equipment Computer Users' Society) was held in Bedford, MA. At that meeting, I delivered the first paper on the subject, pretentiously titled "SPACEWAR! Real-Time Capability of the PDP-1."
Over the summer of 1962, the original Spacewar hackers began to drift away. Alan Kotok and I went to work for Digital. Steve Russell followed John McCarthy to Stanford University. Peter Samson and Bob Saunders stayed in Cambridge for a while, but eventually they too went west. Dan Edwards remained with the AI group for a few years, then moved to Project MAC. Jack Dennis and the PDP-1 also wound up at Project MAC, which evolved into MIT's Laboratory for Computer Science. Others took up the maintenance and development of Spacewar! Program tapes were already showing up all over the country, not only on PDP-1s but on just about any research computer that had a programmable CRT.
Dan Edwards still works for the U.S. Government, developing computer security systems. Alan Kotok is still a consulting engineer with DEC. Peter Samson is now director of marketing for Systems Concepts, Inc., in San Francisco. Bob Saunders had gone to Silicon Valley, where [he] is an engineer-programmer for Hewlett-Packard.
Jack Dennis is a Professor of Science in the Electrical Engineering Department at MIT.
John McKenzie, the chief engineer, is retired, but over the past year or so has been helping to restore the TX-0 and PDP-1 to life at the Computer Museum.
And what of the Hingham Institute? Wayne Wiitanen has recently become a Senior Research Scientist at the General Motors Research Laboratory, where he is happily designing eyes for robots. Slug, after various adventures, is now a programmer-analyst for Interactive Data Corp. in Waltham, MA. I am reduced to writing for a living, but tend to act somewhat less superior therefore.
Spacewar! itself has bred a race of noisy, garishly-colored monsters that lurk in dark caverns and infest pizza parlors, eating quarters and offering degenerate pleasures. I think I know a few former hackers who aren't the slightest bit surprised.