I was much impressed.
In early 1977, I took an assembly-language programming class at Oregon State University, taught by Ted Lewis. This class used a PDP-12, which sported analog-input knobs, an oscilloscope-like video screen, a pair of tape drives, and lots of switches and lights -- but only 4K words of memory, with 12 bits per word. The class required a project, so another student (Bryan Miller) and I decided to try our hand at a SpaceWar knockoff, which we named "SKYLARK". We might have named it "Skylark" or even "skylark", but were prevented from doing so due to the PDP-12's 6-bit character set, which was unable to represent lower-case characters.
After many long nights producing punched tape and playing (ummm... debugging) the game, we had a reasonable implementation, with a pair of spaceships, missiles, mines, and a sun with gravity -- but without the fabled MIT razor-edged hyperspace button. We were of course closely supervised by our two lab assistants, Jack Sarvela and Keith Spitz. Bryan and I were excused from actually handing our project in, as the teaching assistant (Dave Cautley) not only had some familiarity with our game, but also had a strange aversion to having a refrigerator-sized PDP-12 placed on his desk, flatly refusing any and all offers to do so.
We played with the game for some months after class was over, extending it and making it more robust and playable. But the press of life soon crowded it out of our minds. The last listing I printed out was dated January 15, 1978, less than a year after we completed the first version. I graduated from college, did several consulting jobs, got married, took a "real" job at SRI in the Bay Area, completed a Masters in Computer Science, had children, moved back to Oregon to take a job at Sequent (and to get a house in which to raise the children), and finally joined IBM when it purchased Sequent in 1999.
It was not until the year 2000 that I gave any real thought to SpaceWar. I was taking an object-oriented programming class, taught by Andrew Black, that covered Smalltalk and Java, the first class in my doctoral coursework. This class happened to require a team project, so why not see what 23 years of hardware and software progress had done for SpaceWar? The project was just as much fun as the earlier one had been, though advancing age had slowed my reflexes, forcing me to enlist my children's aid in debugging. They didn't seem to mind much.
Each team turned in their project by posting it on the web (this was the year 2000, after all), and that was that.
At least, that was that until about six months later, when Dr. Black received an email from the Retro-Computing Society of Rhode Island asking for two things:
Now, I had long since lost track of the PDP-12, but, packrat that I am, I had kept the old DECtapes from the class. I mailed the 23-year-old tapes to Rhode Island, fully expecting them to be completely useless. To my astonishment, SpaceWar still ran.
The two players are operating the game via the switch registers. The sun is visible in the center of the screen, and the two ships can be barely made out, one to the left and slightly below the sun, and the other directly opposite.
Ships fire missiles at each other, which must be manually detonated. Each ship can lay "mines", which do not accelerate (so that the ship laying a mine must accelerate away from it), but which explode on contact. With anything, including the ship that released it. Anything that touches the sun explodes.
The players use the left and right "switch registers" to control their ship. The left switch register (and thus the leftmost player) controls the white ship, and the right switch register controls the black ship. Six of the twelve switch-register bits in each of the two switch registers functioned as follows, from right to left:
Three of the "sense switches" acted as follows:
Objects bounce off of the edge of the screen. Earlier versions would wrap objects around, but bouncing was more fun.
The large white circle is the sun, while the two smaller circles are the ships. The photo to the left shows the "black" ship to the lower left, and the "white" ship to the right. The "white" ship is firing its engines, accelerating away from the sun. The photo to the right is less distinct, but the "white" ship is at the upper left and the "black" ship is towards the bottom.
You may notice that this program has no Y2K issues, as it has no idea what the date or time is. Sometimes ignorance is bliss.
(And just to prove that lightening really can strike the same place twice, I received a request from O. Sharp for the source to SpaceWar. The PDP-12 in question still needs to be restored, so it may be some time before there is a second site running this software. But one never knows!)