Hacker News new | past | comments | ask | show | jobs | submit login
DEC PDP-1 emulator running "Spacewar", the earliest known digital video game (masswerk.at)
105 points by smartmic 15 days ago | hide | past | favorite | 43 comments



My Dad worked in the research labs at Eastman Kodak, where he eventually devised the "Bayer filter" used in digital cameras.

Around 1962, there was an open house evening, the first time I set eyes on a computer. I briefly got to play this exact game.

Later that year, I busted up a bunch of spring clothespins, to use as toggles to work out binary arithmetic from a book our grandfather had given us. The look on my Dad's face was priceless.


Spacewar! (there's an exclamation mark in the name) inspired me to write a modern one player version with gameplay more like the amazing (and free) Waves (https://store.steampowered.com/app/107600/Waves/). It bombed and sold about 9 copies! Here's the Steam page: https://store.steampowered.com/app/2434510/Gravity_Waves/


I also had a take or two at a "Spacewar! for One". Neither made a dent in the universe. :-)

[1] Outer Orbit (closer to Spacewar! and its orbital mechanics): https://www.masswerk.at/outerorbit/

[2] Gravi-o-roids! (featuring multiple gravity attractors and probably the better game): https://www.masswerk.at/gravioroids/


It looks cool!


Thanks! I also wrote Tiny Solar System which is kind of KSP for 5 year olds. https://store.steampowered.com/app/2116950/Tiny_Solar_System...


The game is quite impressive for 1962. I'd also expect the first game to be something like tic-tac-toe, should be easier than such a real-time game.

The circular screen also brings up the idea of having circular displays today. It seems at first pretty inefficient, like windows are rectangles, duh. But such constraints can produce creative solutions, a very different way how to layout the UI. It's fun to think about how it could look like. (we have circular screens in many watches, but that's a bit special case ...


For an actual GUI on a PDP-1 (the PDP-1 featured a light pen for input), see the very first DECUS proceedings [1], "A World Oceanographic Data Display System" (1962) by Ed Fredkin (who was one of the most ardent proponents of the PDP-1), page 32.

(This issue also features a paper on Spacewar! by J.M. Graetz, "Spacewar. Real-Time Capabilities of the PDP-1".)

[1] https://bitsavers.org/pdf/dec/decus/confProceedings/DECUS_19...

The PDP-1 provided also the basis for the first commercial CAD system by Itek.

[2] https://web.archive.org/web/20130129213055/http://cadhistory...


Also in that 1962 DECUS report, it appears that holy wars are older than me. In particular, there's a short debate between a proponent of MACRO vs. another who preferred DECAL for programming. These were two different assemblers that were offered for PDP-1 programmers.

http://bitsavers.trailing-edge.com/pdf/dec/pdp1/FRAP_DECAL_I...


Hi! We are grateful for all your nice archeological work, may we please ask to make "Baa Baa Black Sheep" on the Ferranti available again based on the scans? Many thanks!


That's not me. Sorry.


:) From what I can recall, it was a java (applet) Ferranti simulator running a typed in copy of the song obtained from a library (Manchester?). It was part of a research/art installation project. I'm not so sure now, but .at, and masswerk seemed to be involved. I'll look into it, or if someone here recognizes it...


Do you mean this one (Manchester Mark I emulator in Java by David Link)? https://web.archive.org/web/20110723062727/http://alpha60.de...

Related to the topic of music on the Mark I: "BBC finds oldest digital music recording", https://bit-tech.net/news/beeb-finds-oldest-digital-music-re...

See also this paper for a bit more background: https://link.springer.com/chapter/10.1007/978-3-319-53280-6_...


Thank you! Although it wasn't the loveletter I was thinking of, but you are right: it was probably this, because it also plays some music and it is covered in the paper. There was an instance on the web, so those who could not make it to the installation could also experience it. According to alpha60.de, there was a Group Exhibition "Love Letters", Gallery Gabriele Senn in Vienna from 12.05.2023 to 28.07.2023. I think it was this: https://web.archive.org/web/20110723063000/http://alpha60.de... but the jar never loads from the archive. This is what I am after!


The key connection here is that David Link's emulation running "Love Letters" was an exhibit at the dOCUMENTA exhibition in 2012 and the Mark I thus entered the art world.

> David Link’s eponymous installation LoveLetters was first shown at dOCUMENTA(13), 2012. In it, the artist and computer archeologist Link romantically resurrects the earliest electronic, programmable and universal calculating machine worldwide: the Manchester University Computer or MUC. In 1953 and out of nowhere, it started to produce strange and touching love letters, addressed to anonymous people, or perhaps machines. The present version Love Letters – core is also based on the original source code by Christopher Strachey, a friend and colleague of Alan M. Turing, from 1951, and accompanied by two photographic prints of love letters on vintage CR tubes in the first on-screen font ever.

(Gallery Gabriele Senn, https://galeriesenn.at/love-letters/)


The closest modern example of round displays would be smart watches.


The earliest known implementation of radial pie menus was in an early CAD system called PIXIE developed at Cambridge University by Neil E. Wiseman, Heinz U. Lemke, John O. Hiles, on a PDP-7 with a round 340 vector display with a light pen, connected over the network to a Titan, one of the first network distributed user interface systems.

Flight of the PIXIE - Yuja Wang:

https://www.youtube.com/watch?v=jDrqR9XssJI

Films from the University of Cambridge Library Archives:

https://www.cl.cam.ac.uk/library/archives.html

It wasn't until I implemented pie menus in PostScript for the NeWS window system in 1988 that they were actually drawn in round windows.

https://donhopkins.medium.com/how-to-choose-with-pie-menus-m...

More:

https://news.ycombinator.com/item?id=39217923

DonHopkins 87 days ago | parent | context | favorite | on: Kando: The Cross-Platform Pie Menu

Thanks for the shout out and links!

That timeline you linked to goes along with this article I wrote a few years ago:

Pie Menus: A 30 Year Retrospective. By Don Hopkins, Ground Up Software, May 15, 2018.

https://donhopkins.medium.com/pie-menus-936fed383ff1#8546

The earliest known implementation of pie menus was in an early CAD system called PIXIE developed at Cambridge University by Neil E. Wiseman, Heinz U. Lemke, John O. Hiles, on a PDP-7 with a 340 vector display with a light pen.

Neil E. Wiseman, Heinz U. Lemke, John O. Hiles, PIXIE: A New Approach to Graphical Man-Machine Communication, Proceedings of 1969 CAD Conference Southampton IEEE Conference Publication 51, pp. 463–471.

https://www.donhopkins.com/home/documents/PIXIE%20a%20new%20...

Flight of the PIXIE - Yuja Wang:

https://www.youtube.com/watch?v=jDrqR9XssJI

Films from the University of Cambridge Library Archives:

https://www.cl.cam.ac.uk/library/archives.html

In 1986 Mike Gallaher and I together came up with the same idea, and I implemented a prototype proof-of-concept for the X10 window system I called "theta menus":

https://donhopkins.com/home/pub/piemenus/theta-menus/

Mitch Bradley suggested the name "pie menu", and I implemented them in the X10 "uwm" window manager, which I integrated into Mitch's Sun Forth system so it was possible to script the window manager in Forth:

https://donhopkins.com/home/pub/piemenus/pietest/

https://donhopkins.com/home/pub/piemenus/pietest/fuwm-main.f

X10 Pie Menu Window Manager:

https://www.youtube.com/watch?v=IJhvB6kwmog

You could define both pie menus and linear menus in a special menu definition syntax in your .uwmrc file, and configure them to run various window management, application launching, and shell scripting commands. But there was no pie menu editor, just a text file defining the menus.

We performed an experiment to compare the speed and error rate of pie menus and linear menus, which I programmed in Forth to randomize and present the menus and measure the error rates and timing statistics.

Pie Menu Experiment:

https://www.youtube.com/watch?v=s0zEUi6p2ws

Implementing a Forth scriptable pie menu window manager for X10 led the way to implementing pie menus in PostScript for various versions of the NeWS window system. It was easy for me to make the transition from Forth to PostScript, which is much more like Lisp than like Forth, and NeWS had an object oriented programming system like Smalltalk which is great for implementing user interface toolkits.

Just the pie menus from All The Widgets:

https://www.youtube.com/watch?v=mOLS9I_tdKE

Ben Shneiderman demo: Don Hopkins and pie menus in ~ Spring 1989 on a Sun Workstation, running the NEWS operating system.

https://www.youtube.com/watch?v=8Fne3j7cWzg

[...]


I've played this briefly (on a pdp-1). Edinburgh University had moved their CS dept to an out of town campus (Kings Buildings). The university's open day (open house in US English) events however happened in town. As a school kid I'd go attend those events. This would be around 1980. I'm not sure the full story but I got the impression that the pdp-1 had been left in the Appleton Tower building when everyone left for KB years earlier. Perhaps it wasn't up to being moved. Anyway, it, running spacewar, was pretty much the only computer you could see on one of these open day events. Of course a pdp-1 was a deep relic of history even then. The only other one I've seen is in the CHM in Mt View.


KDE still ships an amazing game that, now I know, is a clone of this game

https://apps.kde.org/kspaceduel/

I remember playing this in the age of KDE 2 (which in my opinion was peak desktop experience)


On the Vectrex (1980s vector-graphics home video game console), a game presumably based on Spacewar was Vectrex's Space Wars:

https://www.youtube.com/watch?v=XakwjZXAdFk


Notably, Spacewar! is not a vector game, rather, it's X/Y point plotting. Meaning, each point is plotted individually on a high-res 1024 x 1024 screen and has to be refreshed regularly by the program in order to stay visible. (This is also the major bottleneck of the game, in terms of timing, and only became viable thanks to Dan Edwards' just-in-time compiler for the spaceship outlines.)

In other words, the burden of maintaining the display is entirely on the program and the instructions for this have to be recomputed for each frame (as memory for storing any screen related information was horribly expensive and thus unfeasible.) Which makes this even more remarkable.


Thank you! It's a point plotter!

Vectrex is a line plotter. It still has to refresh the entire display every frame however and it's still the bottleneck. That's why arcade games like Asteroids have GPU-like hardware that execute display lists to unburden the CPU from this overhead.


I remember a very similar game I played on a Tektronix 4051 computer in the late 1970s.


Every time I see these I always think of my roll of punch tape that has "Lunar Lander" written on it that I can not possibly use as I have no access to a DEC.

Should the title read "earliest known Digital video game"? I keep reading it "the very first computer game ever", instead of "from DEC". Maybe I am wrong, is it the very first video game (before tennis for two, etc)?


There was a arcade that had that game for a short period of time, friends and I loved that game. The machine disappeared after a few months :(


That was almost certainly the Cinematronics "Space Wars" cabinet, which I saw here and there back then. I mostly remember one being in a bowling alley's arcade. It was a custom platform, not based on the PDP-1, but I'm not finding much info about it. It was two players only - there was no provision to play against the computer.

https://en.wikipedia.org/wiki/Space_Wars


There was also Computer Space, which was a very similar single-player game.

https://en.wikipedia.org/wiki/Computer_Space


While not the original setup, thanks to a bit of back-porting, you can play Computer Space on the PDP-1, too: https://www.masswerk.at/icss/


The controls I've found so far:

Triangle Ship: A=left S=thrust D=right 4=fire

Rocket Ship: J=left K=thrust L=right 0=fire

I guess there are two human players, sharing a keyboard.


Also, gamepad mappings: https://www.masswerk.at/spacewar/images/gamepad-mappings-hr....

There are also virtual touch controllers. If a touch device is not auto-detected, toggle them on/off with Options Menu (top right corner) -> Virtual Controllers.

Finally, you can change keyboard mappings by the "Keyboard" menu at the top. (The splash screen, which is not part of the original game, reflects the current mapping.)

---

If interested in the code (PDP-1 assembler), see this walk-through: https://www.masswerk.at/spacewar/inside/

Canonical reading on the game's history: "The Origin of Spacewar" by J. M. Graetz, https://www.masswerk.at/spacewar/SpacewarOrigin.html


Does it not display the instructions when you first navigate to it? It does for me.


Thanks, I missed those.


One of my favourite tidbits from computing history is that the original motivation for creating the set of utilities that became the very first version of UNIX was to aid in porting this game from a GE mainframe to the PDP-1.



Ha, thanks for the correction, I've been giving the wrong name to Ken Thompson's game for years!


Also, it was ported (rewritten) to a PDP-7.


Very cool that it emulates the phosphor "burn" fading away like the original vector graphics hardware. You can see and play the real thing at The Strong National Museum of Play in Rochester, New York.


Actually, the real thing can be seen (and played) at the Computer History Museum (CHM) in Mountain View/CA. [1][2] As far as I know, there's only one restored and functional PDP-1.

(There are some unrestored, like at the Smithsonian, but these are stored away in boxes.)

[1] https://computerhistory.org/exhibits/pdp-1/

[2] https://www.computerhistory.org/pdp-1/

Regarding the CRT tube and phosphor: The display uses a CRT tube developed for RADAR, which uses P7 phosphor. This features a short, responsive activation in bright blue and a long sustain in greenish-yellow. (It's actually a 3D display, as in X/Y and time. It also features 8 intensities of brightness, which do not scale too well, for which Spacewar! rather manages apparent brightness by refresh rates.)


I was lucky enough to play it against Steve Russell at the CHM, about 10-12 years ago I believe.


This is amazing! I've played it at the computer history museum and this is just as good (although the real circular monitor is super fantastic).


I guess Tennis for Two is not exactly digital.


Alternatively, Draughts.

https://youtu.be/uHQ4WCU1WQc


I guess a turn based strategy game displayed on a CRT (storage display) is technically a video game...

https://youtu.be/wvHscto5J-4?si=908N1G99SiYeL3Y7


I was gonna post this too. One of the best documentaries on YouTube.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: