Digging deeper into the Minnesota port

Spacewar at Minnesota: invisibility instead of luck

One thread of Spacewar!'s long journey runs to the University of Minnesota, where, on a CDC 3100 in a nuclear-physics laboratory, Albert W. Kuhfeld rebuilt the game from the idea rather than the code, and in doing so quietly redesigned it. His one change to hyperspace turned a game of luck into a game of skill, and his account of it carried Spacewar! out of the computer rooms and onto the newsstand.

the machine and the man
A CDC 3100, 1966–68

Rebuilt from the idea

Two players at the CDC 3100, the Spacewar game on the display and Kuhfeld's home-made control boxes in the foreground
Minnesota Spacewar on the CDC 3100, with the home-made control boxes. From Kuhfeld's 1971 Analog article.
Like most of the ports, Minnesota's Spacewar! was not copied from the MIT source but reconstructed from descriptions and memory. Between roughly 1966 and 1968, with the main work in 1967, Kuhfeld wrote his version on the CDC 3100 at the university's Williams Laboratory of Nuclear Physics. He built his own control boxes for it: a lever for turning, a lever for thrust and braking, a button for torpedoes, and a switch for the panic button. The reconstruction-from-hearsay that defines the long journey is exactly the condition this project works in, and Minnesota is a good example of it.

the redesign
The Minnesota Panic Button

Invisibility, not hyperspace

The MIT game's hyperspace is an escape of last resort: press it and your ship jumps to a random point, at the risk of materialising inside the sun and being destroyed. It is pure luck. Kuhfeld replaced it with something better. The Minnesota Panic Button makes your ship invisible, but, as he put it, "your enemy can't see you, but neither can you yourself". You keep moving and steering blind, and your exhaust flame and any torpedo you fire give your position away. The escape now rewards nerve and dead reckoning rather than chance, "a panic button involving skill rather than luck".

"While programming Minnesota Spacewar, I opted for a panic button involving skill rather than luck. The Minnesota Panic Button makes your ship invisible. Your enemy can't see you, but neither can you yourself. The advantage lies with the player who is better at mentally predicting trajectories, which is made simpler because the rocket flames are not invisible: any course alterations will immediately pinpoint ship position." Kuhfeld, Analog, 1971 (p. 71).

Diagram of toroidal space: the ship Arrow fires across the edge of the universe to hit the Flying Wedge
Rocketship Arrow demonstrates "toroidal space" by firing across the edge of the universe to destroy the villainous opponent Flying Wedge. Arrows have been drawn in to clarify the situation to some extent. (Timing between plots, .75 seconds.) Click to view full size.
The rest of his changes tended to focus on tactics in the game. Ammunition is limited to twenty torpedoes a ship rather than the MIT thirty-one; they fire in salvoes of up to four at one-second intervals; fuel runs to about two minutes of thrust; and retro-rockets brake the ship at roughly a quarter of main power. Every one of these is a design judgement about how the game should feel, made by a player who had never seen the original code.

"When a ship reaches the right edge of the CRT, it reappears at the left edge. When it goes out the top, it comes back in the bottom ... This is easy to program, for it is something digital computers will do automatically because of the way they handle positive and negative numbers. It's quite possible that the original programmers of Spacewar were as surprised by the effect as anybody is upon seeing the game for the first time, but if they were, they realized they had a good thing going and kept it. With the relatively small display terminals usually available, this little trick is the only thing that keeps the game from getting cramped." Kuhfeld on "toroidal space", Analog, 1971 (p. 72).
spacewar on the newsstand
Analog, July 1971

The game in a science-fiction magazine

Spacewar program flowchart from Kuhfeld's 1971 Analog article, the program flow broken into boxes with the 'Generate Picture, SHIPA' box expanded into its sub-elements
SPACEWAR FLOWCHART: Here the program flow is broken up into its elements, represented by the small boxes. The box labeled "Generate Picture, SHIPA" has been similarly broken into its smaller elements as a representative sample. Each box in the program could be similarly broken down, and it would be quite possible to break down the boxes in the detailed example into their smaller elements (Kuhfeld 1971: 70). Click to view full size.
Kuhfeld did what almost none of the other porters did: he wrote it up for a wide public. His article "Spacewar" appeared in Analog Science Fiction / Science Fact, July 1971 (vol. LXXXVII, no. 5), the leading American science-fiction magazine, complete with photographs of the screen and an explanation of the rules. For many readers in 1971 this was their first contact with the idea that a computer could be played. The article also caught the mechanism of the game's spread in a single line: "It is in the nature of MIT graduates to wind up at installations with computers; and with a new computer, the fun can start all over again." The diffusion of Spacewar! was a by-product of where its players were posted.

"For nearly a dozen years I've been trying to get an article on the remarkable educational game invented at MIT. It's a great game, involving genuine skill in solving velocity and angular relation problems, but I'm afraid it will never be widely popular. The playing 'board' costs about a quarter of a mega-buck!" Albert W. Kuhfeld, Analog, July 1971.

Diagram of the three variations on the standard trajectory, with the gyro control moved Left, Center, or Right
The three variations on the standard trajectory. "Left," "Center" and "Right" refer to the direction the gyro control is moved in each maneuver, producing, respectively, counterclockwise, no, and clockwise rotation. (Timing between plots, 1 second.) Click to view full size.
The article even opens as fiction: a tense Spacewar duel between two players, Fletcher and Tatge, narrated torpedo by torpedo, "the glowing blips approached each other in the battle display", before Kuhfeld pulls back to explain the quarter-million-dollar machine behind the game. The full piece is reproduced at masswerk.at/spacewar/kuhfeld and archived at luminist.org.

why this belongs here
The reading

The port as criticism

Diagram of the spin-and-drift tactic: the Flying Wedge spins, fires, and accelerates past the sun into orbit
SPIN-AND-DRIFT with flip getaway. The good ship Flying Wedge begins with a rapid spin to clockwise, while firing its tail rockets. When it is far enough from the sun that flying can be neglected for a moment, it turns to face the enemy ship Arrow (conveniently playing the part of a sitting duck in this enactment) and fires. Flying Wedge then continues its spin and accelerates past the sun, achieving an orbit rather like the "left" variation in the other image. (Timing between plots, 2 seconds.) Click to view full size.
Minnesota makes plain something the version table can only gesture to: that to re-implement Spacewar! was to interpret it. Kuhfeld did not merely move the game to a new machine, he argued with it, and his argument, that an escape mechanism should test skill rather than luck, is a piece of design criticism written in code. Each lab that received the game retuned it to its own taste, so that "Spacewar!" by the late 1960s is less a single program than a family of differing readings of one idea.

"I've done three versions of Spacewar so far, and each of them has been more elegant than the preceding version. Version I was a crude, get-it-working sort of thing that was fun to play, but really only served to define the programming problems. Version II was slightly faster and had a few more features. Version III has bells and whistles: it keeps score, which none of the earlier versions did, and the two ships are no longer identical, which helps in playing the game, but makes the programming harder. But I'm proudest of things that don't show, things buried deep in the programming. Version III is a bit faster than the earlier versions, even though it's more versatile." Kuhfeld, Analog, 1971 (p. 78).
"Although it uses a computer to handle orbital mechanics, physicists and mathematicians have no great playing advantage; John Campbell's seventeen-year-old daughter beat her MIT student-instructor on her third try and thereafter, while the most promising player I've seen was a theology student. Good reflexes and an eye for motion seem to be far more important than training in the concepts involved. And most perverse of all, the fun part of the game isn't really playing it, it's writing the program." Kuhfeld, Analog, 1971 (p. 78). John W. Campbell, the magazine's long-time editor, died on 11 July 1971, the very month this issue appeared.

← Back to the versions and the ports table

the first few years
Kuhfeld on the MIT years

"It was an education for all concerned"

Kuhfeld ends his article by looking back at what Spacewar! had been at MIT, and what became of it once the hard problems were solved. The arc, from a teaching machine that nobody planned to a recreation the faculty wanted shut down, is one this project keeps meeting.

"The first few years of Spacewar at MIT were the best. The game was in a rough state, students were working their hearts out improving it, and the faculty was nodding benignly and smiling as they watched the students learning computer theory faster and more painlessly than they'd ever seen before. It was an education for all concerned. The students were doing creative and difficult program design and debugging, and the only problems in sight were the few students who neglected their other studies to concentrate on Spacewar. After all, it looked so much like the things they came to school to study that it had to be good for them! And a background of real-time interactive programming was being built up that anybody in the school could draw upon; one of the largest problems in the development of the game was learning how to talk to a computer program, and have it answer back. Knowledge of this sort is useful whenever interaction with a computer is desirable, and many of the faculty were starting to put it to use." Kuhfeld, Analog, 1971 (p. 79).
"Eventually, after most things were implemented and working, the only real program development going on was done by a couple of students trying to introduce a computer-piloted flying saucer to occasionally zoom through the game as a kind of 'wild variable.' To the best of my knowledge, they never got it working. Students were still playing Spacewar, but with all the problems solved it was rapidly degenerating into pure recreation, and even gambling. Nobody was learning anything, except orbital dynamics, but they were taking up valuable computer time. The faculty became less benign; they wanted to use the computer. And Spacewar at MIT drifted off into the sunset." Kuhfeld, Analog, 1971 (p. 79).
sources
On this page

References