Futureproofing Artifacts: Spacewar! 1962 In HTML5 175
trebonian writes "In 1997 we posted a playable version of the Spacewar!, the first graphical computer game. Spacewar! was written by Russell et al at MIT in the early '60s. We did not re-implement the game. Rather, we found the original source code, rebuilt it to get an authentic binary and ran it on a PDP-1 emulator that we wrote in Java. We chose Java to implement the PDP-1 because we believed at the time — correctly as it turned out — that a Java version would survive the browser wars. Also, it would not require any effort to keep it running on all platforms well past the turn of the millennium, and through the traffic peaks of Spacewar's 40th and 45th birthday. It's now getting close to 15 years later. We would not want to bet that in another 15 years a Java program will still run on the latest popular platforms. As a hedge to the future, and in an effort to continue the preservation of this significant digital artifact, we've now ported the PDP-1 emulator to Javascript/HTML5. This should see the game through Spacewar!'s 50th (and hopefully 60th) birthday. Expect another update around 2025."
First (Score:3, Insightful)
Open source software :)
Re: (Score:2)
No kidding. It's already future-proof by virtue that it's open source.
Re: (Score:2)
I like how it was modded off-topic when it actually is the first open source software. The source code wasn't released until later, on paper, but it's the earliest software that's open source.
Re:First (Score:4, Informative)
It is not the first open source software. Source was routinely released by IBM as far back as the 1950s. The SHARE user group was formed in the mid-50s for this very reason. Maybe you were modded down for being wrong, rather than offtopic.
Re: (Score:2)
:( first open source game?
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
Plus, according to inception the whole thing would end up running faster.
Yeah, but if it crashes, you die...
Re: (Score:2)
I know this was a joke at the expense of Java, but surely if it's possible to write a security-hole-ridden port of anything in HTML5 then HTML5 must have such holes all by itself?
Re: (Score:2)
Re: (Score:2)
I assumed the GP was referring to a leaky browser sandbox rather than your common-or-garden XSS issues.
Re: (Score:2)
And get sued by Oracle.
Flash? (Score:3, Insightful)
Despite that 90% of the earliest net memes are still perfectly playable today due to their SWF composition, it's interesting that they're (indirectly) making the statement that html5 will beat flash. I can see why, flash is a bloated, update happy, buggy, insecure beast of a program, sort of like java through the years.
Re:Flash? (Score:4, Insightful)
All your base are belong to badger badger badger, who thinks it may not be a bad thing that every time you masturbate, god kills a meme....
Re: (Score:2)
Either (1) There must be a whole lot of self-love abstination, or (2) there's a whole lotta memes that never see the light of morning...
Re: (Score:2)
Memes, fads, it's all just catchphrases to me.
Re: (Score:2)
Single White Female composition? This is /. That's not playable here.
Re: (Score:2)
Netcraft confirms it! Flash is dead! Despite that 90% of the earliest net memes are still perfectly playable today due to their SWF composition, it's interesting that they're (indirectly) making the statement that html5 will beat flash. I can see why, flash is a bloated, update happy, buggy, insecure beast of a program, sort of like java through the years.
Carrying your comparison to its logical conclusion, Flash will become a secure beast as Java has through the years.
Re: (Score:2)
You think flash is bloated, update happy, buggy and insecurely beastly now? Just wait until it's ported to javascript as an emulator!
And then they got free (Score:5, Interesting)
Bah - now they've let those little spaceships out on the web. At least you can use them to kill adds - http://erkie.github.com/
Get off my lawn! (Score:3, Insightful)
Re: (Score:2)
Why? I played it a few minutes. I'm not especially young, but it was rather boring, and I was able to grasp the limits of the whole game in under half a minute.
Re: (Score:2)
Why? I played it a few minutes. I'm not especially young, but it was rather boring, and I was able to grasp the limits of the whole game in under half a minute.
Like checkers, it's better with an opponent.
Re: (Score:2)
if you call them your opponent, you're doing it wrong
(or you should take a seat over here)
Re: (Score:2)
No chance in hell am I sitting next to you. Pervert!
Re: (Score:3)
Re: (Score:2)
Re: (Score:3)
I was able to grasp the limits of the whole game in under half a minute.
I suppose I played a later Spacewar. Back when I was a kid--must've been about 10 or so--the local college had a PDP-9 with a paper-tape for Spacewar. Feed in the papertape and start flipping the switches to customize. And customize you could--gravity/no gravity, computer player, warp/no warp, warp-star/no warp-star, up to three human players, partial damage, and I'm sure there were a few more.
I remember playing it for about six hours straight--two human ships against the computer (which was very good)
Re: (Score:2)
Don't take for granted, the first graphical PC game :-)
What do we even compare it with? It's a more prominent leap than CD was to DVD, SD to DDR, CRT to LCD, or even Windows to Linux (*ducks and covers*) he he
Re: (Score:2)
I don't think anyone was trying to promote this as the greatest computer game ever.
Futureproofing via HTML5/JavaScript? Really??? (Score:5, Insightful)
Re:Futureproofing via HTML5/JavaScript? Really??? (Score:4, Insightful)
I agree, I rather take my chances with a modern JVM and probably apply some fixes than have it completely broken for an unknown version of javascript and whatever the browsers of the future will think what HTML5 should look.
Re: (Score:3)
I would say it's more a vote of confidence in the ability of Oracle to mismanage Java into obscurity rather than any real confidence in JavaScript's longevity.
Re: (Score:3)
I would say it's more a vote of confidence in the ability of Oracle to mismanage Java into obscurity rather than any real confidence in JavaScript's longevity.
As bad as Oracle is going to screw the official Java pooch, the other branches will continue for years - there's simply too much invested in the platform to wholesale (or even halfsale) switch
Re: (Score:3)
The Windows version now uninstalls old versions before updating. The real problem with installing Java is the security issues if you're running a browser that allows all scripts.
Asteroids (Score:2)
Re: (Score:3)
The problem was the hardware. Individuals couldn't afford a PDP 1. My first personal computer was an Apple II in 1981 and it cost $6,000, real money then. Universities had computers and the ones in science labs got used for all sorts of cool things.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Yes, it's true, Apple hardware has been overpriced since the beginning.
Re: (Score:2)
because it took 18 years of computer progress to go from a computer that cost $120,000 (in 1960 money) to $3,000? (1979 money) for the arcade cabinet. I'm guessing on the price of the arcade cabinet because they were usually $3,000 to $5,000 back in the 1990s.
Re: (Score:3)
Price was only about $20,000 per unit in the early 70s. I guess that why it never really sold.
Re: (Score:2)
Right next to your bed? /rimshot
Re:Asteroids (Score:5, Informative)
Computers like the PDP-1 [wikipedia.org] were built using thousands of discrete transistor components for their logic and magnetic cores for their main memory. The price for a basic PDP-1 at that time was around $100,000 in 1962 dollars, equivalent to about $800,000 today. That's a *basic* system; the point-plotting CRT display used in Spacewar! [wikipedia.org] would have added quite a bit to the cost. The machine with all its peripherals took a good fraction of a room and probably weighed at least 2000 pounds. And running Spacewar! pretty much consumed the PDP-1's entire processing power. (Since the display was point-plotting only, the spaceships had to be drawn as series of dots, and the display had no storage ability, so a lot of processing overhead was needed to constantly refresh the entire list of currently displayed dots.)
When Spacewar! was written, the video game was basically a science-fiction concept, and computer graphics itself was just beginning to develop. Arcade games at that time were purely electromechanical games, such as pinball. The first commercial arcade video games (Galaxy Game [wikipedia.org] and Computer Space [wikipedia.org], both of which were ports of Spacewar!) didn't appear until 1971; Atari's Pong [wikipedia.org] came out the following year. Arcade video games of the early 1970s used custom state machines built from TTL logic chips instead of programmed computer systems; the first microprocessor-based arcade video games appeared starting in 1975 with Taito's Gun Fight [wikipedia.org], which used the Intel 8080. It was those programmable microprocessor-based systems that really allowed video game development to take off; for example, Asteroids was based on a 6502. Incidentally, Asteroids' vector display system first appeared in an arcade game with Cinematronics' Space Wars [wikipedia.org] in 1977.
Spacewar! was widely ported to various computer systems during the 1960s and 1970s, so it's no surprise that Asteroids bears a strong resemblance to it.
Re: (Score:2)
That's a *basic* system; the point-plotting CRT display used in Spacewar! [wikipedia.org] would have added quite a bit to the cost.
Is this correct? I always had the impression that the display was a standard part of the PDP-1 and only became optional in later models.
Re: (Score:2)
However, I overstated things when I said the display "would have added quite a bit to the cost". It only seem
Star Raiders (Score:2)
You shouldn't compare it against Asteroids, you should compare it against Star Raiders [wikipedia.org] for the 8-bit series Atari home computers. It was much, much more advanced. In fact, it's still kind of awesome.
A cool game to play. (Score:5, Interesting)
I played this at MIT - the setting was as cool as the game. Go down an alley, into a freight elevator, up to the top floor, where the elevator opens into a computer room, and play at the console. It felt like the game was embedded in a James Bond movie.
Re: (Score:3)
Re: (Score:3)
There was (mid to late 1970's) also a version of Dungeons and Dragons written in PL/1 (!) that was on at least one of the MIT mainframes. I have often wondered who wrote that and what has happened to it.
Re: (Score:2)
http://en.wikipedia.org/wiki/Zork [wikipedia.org]
Re: (Score:2)
Are there any photographs/photos. and/or videos of this setting? I assume it is not there anymore today. :(
Re: (Score:2)
Actually, the game embedded in a James Bond movie was the one called Domination, in Never Say Never Again [youtube.com]. And it wasn't in a basement, it was, naturally, in a casino.
Benchmark? (Score:5, Interesting)
How does the speed of this Javascript emulator (on a typical PC) compare to the original hardware PDP-1?
Re: (Score:2)
I don't know about speed, but the weight difference is (was) considerable. The old machine was four full racks and (according to the Computer Museum) ~ 1200 pounds.
Re:Benchmark? (Score:4, Informative)
I found some more information about the PDP-1 [history-computer.com], and it looks like it could complete 200K operations/second (100K multiplies).
It cost $120K in 1960, or around $900K in today's dollars.
I still don't know how fast the emulator is, but I bet it's faster than the original.
Re: (Score:2)
The emulator runs (slowly) on my Android phone so I guess a Javascript emulator weighs less than or equal to 169 grams.
(though I can't seem to get the keyboard controls to work - when I press a key, it ends up in the address bar),
Re: (Score:2)
As much as a duck!
Why not port to C (Score:3)
Re:Why not port to C (Score:5, Informative)
How do your port an emulator with graphics capabilities to plain vanilla ANSI C? C doesn't include any graphics API.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
ANSI C doesn't contain any meaningful display interfaces, so certainly something would have to be changed. But leaving it up to future generations to provide the part where the simulated frame buffer (if a PDP-1 used one) is made into a real window via whatever appropriate interface is probably okay. :)
Re: (Score:2)
So to keep the PDP-1 emulator code unchanged, have it output a mini graphics language ( control codes or HTML or Display Postscript or whatever the flavour of the month will be). You'll never update the emulator code base, just attach new generation grap
Re: (Score:2)
PDP-1 code > PDP-1 emulator code > Graphics interpreter code
How many tiers do we need to implement a video game from the early 60's? Hmm... makes me wonder about code inflation -- what the 2011 equivalent is to a single 1962 line of code.
Re: (Score:2)
That's certainly the general idea, but direct calls to a framebuffer API (for example) aren't needed. A C program has STDIN and STDOUT after all, and STDOUT can be piped to a graphics interpreter front end for whatever system we'll be running in 100 years.
Yes it isn't needed, heck you don't need a STDOUT interface you could have a wrapper that just peeks at the appropriate memory location in the emulator to do graphics. I thought the whole point was that because ANSI C will be compilable in 100 years, we can just, you know, recompile and link against an appropriate implementation of DrawPixel(). That implementation still needs to be provided in the case of piping stdout, but you've also required them to create a pipe, which not all systems make equally sim
Re: (Score:2)
... the simulated frame buffer (if a PDP-1 used one) ...
It didn't. The display was a point-plotting CRT which had to be dynamically refreshed by the CPU.
Re:Why not port to C (Score:4, Interesting)
C will live forever (Score:3)
If you port the emulator to plain vanilla ANSI C, then it should still run in 100 years unchanged.
My thoughts exactly.
What makes C so great is that it was born the way it is and does not change. I have been programming in C for about 25 years now and the first programs I wrote still compile and run unchanged today.
Compare this with other languages: Fortran, PHP, Perl, Python, all have gone through major redesigns from version to version. Moving a program from version n to version (n+1) means redesign, retesting, endless debugging.
I have been programming a lot in Python recently, but if I have to port a
Re: (Score:2)
If you port the emulator to plain vanilla ANSI C, then it should still run in 100 years unchanged.
My thoughts exactly.
What makes C so great is that it was born the way it is and does not change. I have been programming in C for about 25 years now and the first programs I wrote still compile and run unchanged today.
Compare this with other languages: Fortran, PHP, Perl, Python, all have gone through major redesigns from version to version. Moving a program from version n to version (n+1) means redesign, retesting, endless debugging.
I have been programming a lot in Python recently, but if I have to port a program from Python 2 to Python 3 I'd rather port it to C instead. Just think of checking every single division in every formula I ever used to see if I have to change '/' to '//' or not.
I don't want to do all that work again when Python 4 comes.
C has changed since the initial release, and a new standard is issued every so many years, incorporating new features/strictures to the language. Compared to many languages, C is [probably] the least-changing of all, but that doesn't mean that a new version of the standard doesn't bring improvements/changes/fixes to previous editions.
Re: (Score:2)
that doesn't mean that a new version of the standard doesn't bring improvements/changes/fixes to previous editions.
Yes, but the changes are mostly minor and do not affect software that's already working in C.
Compare this to Python, where a basic mathematical operator like '/' was changed from one version to the other. In Python up to version 2 the expression (2/3) has the value 0, while in Python 3 it has the value 1.5. This makes it impossible to use a program developed for version 2 without a serious risk of subtle bugs. An automated migration tool is useless in this case, since the dividend type may depend on an inpu
Re: (Score:2)
You can run a Python 2 program in a Python 2 interpreter; they aren't going anywhere
Yes, they are. When Python 2 packages aren't available in the repositories I use, I don't want to keep all the dependencies by myself, I have more important things to do.
If you're porting a program to Python 3 and integer-truncation division is important to you, use the "//" operator.
I have *lots* of code. I don't want to check every single division in each formula I have to verify if the correct operator to use is '/' or '//'. I repeat, I have more important things to do.
In conclusion, no Python 3 for me. And, since I don't know how long Python 2 will be available in the systems I use, I'm "deprecating" the Python lang
Re: (Score:2)
What makes C so great is that it was born the way it is and does not change.
It has had lots of stuff added over the years but generally C itself doesn't change in a way that breaks existing code (not sure if there have been any exceptions to this).
I have been programming in C for about 25 years now and the first programs I wrote still compile and run unchanged today.
Maybe the first ones do but I bet many later ones don't.
If your only interfaces to the outside world are reading and writing stuff to/from the console in the local 8-bit character set (of which you can probablly assume the lower half is ascii but not much beyond that) and read and write files whose names are in the local 8-bit character s
Re: (Score:2)
Mine don't. Mainly because they were written for a 16-bit environment and call BIOS functions and modify video ram directly. They don't even compile anymore.. but even if you could compile them, they'd segfault immediately.
Re: (Score:3)
Re: (Score:2)
Web 2.0 is cool, but when C walks down the street the bitches step aside. Fuggedaboutit.
Not to be confused with SPACWR (Score:3)
As a preteen in the late 70s I played a game that I remember as SPACWR on a friend's DEC PDP-11. My friend and I played for hours and thought it was great fun. It was really an ASCII Star Trek game originally written by Mike Mayfield in 1971 in BASIC [wikidot.com] and then translated into DEC BASIC by David Ahl who gave it the confusing name so similar to the game discussed here.
Here's another link for the curious.
http://www.dunnington.u-net.com/public/startrek/ [u-net.com]
Didn't have a PDP1 (or PDP 8 either) (Score:2, Interesting)
When I was in college (starting fall 1969), we took the original math and programmed an IBM 360 to print out a gravity map that could be pasted on posterboard/cardboard.
Then we played off of that.
The program got rewritten for a PDP-10, in interactive mode for use on graph paper (and one test version on a Techtronics 4010 graphics terminal).
It was the first programe to be banned by the computer center.
Just keep emulating (Score:3)
Re: (Score:2)
Repeat ad infinitum and you never have to know more than 2 languages at a time in order to preserve it.
I get the joke about writing an emulator for an emulator, but even if you wrote a new emulator for PDP-1 every lifecycle iteration, you still only have to know 2 languages: PDP-1 and whatever language you want to write the emulator in.
Re: (Score:2)
Re: (Score:3)
Because everything can be emulated in Logo?
Actually, does anyone know if Logo is Turing Complete?
Re: (Score:2)
Cinematronics SpaceWars (Score:2)
PDP-1 SpaceWar was a milestone but the arcade version from Cinematronics was a lot more fun I thought....
For a moment there (Score:2)
I thought they ported Java onto Javascript/HTML5. You know, so there'd be an emulator of a java that runs emulator of PDP that runs a game.
And the whole thing is inside of a Virtual box, that is installed on top of an instance running inside of a cloud :)
ASCII Art, lives forever (Score:2)
| .
v
.
* .
.
==>
50 years later... This is humbling. (Score:2)
You know, after working on my own long term project (25 years between updates), which Spacewar over-shadows by a factor of two, I've realized that code I write now, no matter how trivial, may be read back a long time afterward. And since I'm a very sloppy programmer, this is is embarrassing on a large scale.
Oh well. http://sites.google.com/site/dannychouinard/Home/rdos3-2-coco2-enhanced-dos [google.com] if you're curious.
The First Step (Score:2)
Javascript/HTML??? (Score:2)
bloatware (Score:2)
And, because it's in Java in a browser, it's running choppy on my 4 core i7 with 12gb of ram. Kudos, you've made a pdp game bloated and unplayable.
Emulator? Whaddya need an emulator for? (Score:3)
If an emulator, however cool, gets a 10, then Steve "Slug" Russell playing it last month on the original hardware [cnet.com] at the Computer History Museum [computerhistory.org], definitely goes to eleven.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Aahaha he nearly got me too. It's good to see the trolls trying new stuff, a little friendly competition is always fun.
Re: (Score:2)
Why do you think NetHack is so terrible?
Re: (Score:2)
Before my time, but i can imagine why they are so pined over: Emotions and ideas attached to those games.
Being the first of a kind, the possibilities those games presented were infinite, and captured imaginations.
*That* is why those games are so revered.
Re: (Score:2)
Oh, they will probably have atom level emulators of the hardware at that point.
Re: (Score:2)
You see, it's not only the file formats that change, if you use open standards you might be pretty safe, it's also the storage mediums that change. Having lived through the C64 and Amiga data, i have managed to preserve some data from those days
Re: (Score:2)
Java will be around in *50* years time.
/me screams in agony
Re: (Score:2)
Oracle may try to monetize java more but I can't see it as being in their interests to outright kill it. Plus the code is out there under the GPL so most likely there will be forks if oracle tries anything too nasty. Oracle may try to kill these forks with patent threats but some of them will simply move to a location where those threats have no teeth and patents only last ~20 years anyway.
I bet in a few decades time java will be like fortran and cobol are today, entrenched in certain niches but no longer p