Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Classic Games (Games) Emulation (Games) Java The Internet Virtualization Games

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."
This discussion has been archived. No new comments can be posted.

Futureproofing Artifacts: Spacewar! 1962 In HTML5

Comments Filter:
  • First (Score:3, Insightful)

    by Shikaku ( 1129753 ) on Tuesday March 01, 2011 @07:08PM (#35352920)

    Open source software :)

    • No kidding. It's already future-proof by virtue that it's open source.

      • 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.

      • I wish they would have just future proofed java by porting it to html5. Then they wouldn't have to rewrite their pdP-1 emulator. Plus, according to inception the whole thing would end up running faster.
  • Flash? (Score:3, Insightful)

    by Anonymous Cowar ( 1608865 ) on Tuesday March 01, 2011 @07:13PM (#35352944)
    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.
    • Re:Flash? (Score:4, Insightful)

      by realityimpaired ( 1668397 ) on Tuesday March 01, 2011 @07:48PM (#35353166)

      Despite that 90% of the earliest net memes are still perfectly playable today due to their SWF composition

      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....

    • by msauve ( 701917 )

      90% of the earliest net memes are still perfectly playable today due to their SWF composition

      Single White Female composition? This is /. That's not playable here.

    • 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.

    • by mcrbids ( 148650 )

      You think flash is bloated, update happy, buggy and insecurely beastly now? Just wait until it's ported to javascript as an emulator!

  • by BigSlowTarget ( 325940 ) on Tuesday March 01, 2011 @07:16PM (#35352956) Journal

    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)

    by Auroch ( 1403671 ) on Tuesday March 01, 2011 @07:21PM (#35352986)
    Now, if only we could force the current generation to play this for a few hours before complaining that I need to buy a PS3 because their xbox 360 isn't good enough...
    • 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.

      • 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.

      • 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)

      • 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

      • I don't think anyone was trying to promote this as the greatest computer game ever.

  • by johnthorensen ( 539527 ) on Tuesday March 01, 2011 @07:22PM (#35352994)
    To say that JVMs won't exist for current platforms 15 years hence is a bit of a stretch, I think. On the other hand, HTML5/JavaScript (implementations, not the standard) is such a moving target that I wouldn't count on code written for it being able to run in a few years, much less a decade-and-a-half later. Still a cool hack, but the reason given is kinda lame.
    • by sapgau ( 413511 ) on Tuesday March 01, 2011 @07:45PM (#35353148) Journal

      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.

    • 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.

      • 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

  • I see a striking resemblance between this and Atari's original 1979 Asteroids. I am curious how it took eighteen years to make that progress, though. Surely academia wasn't that far ahead of mainstream entertainment... or was it?
    • by wbean ( 222522 )

      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.

    • 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:Asteroids (Score:5, Informative)

      by Colin Douglas Howell ( 670559 ) on Tuesday March 01, 2011 @08:55PM (#35353554)
      As previous replies have pointed out, advances in hardware were key. In 1962, integrated circuits were still in their infancy. They had only been invented four years earlier, and the only ones in production were being built for U.S. military projects like the Minuteman nuclear ballistic missile. And even those were very small-scale circuits, with only a few logic gates per chip.

      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.
      • 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.

        • Well, DEC's PDP-1 sales literature (such as the PDP-1 Handbook scans available here [bitsavers.org]) seems to always list the display among the optional equipment, though it was probably a popular option. The only standard I/O equipment (not counting the front panel) was the console typewriter and the paper tape reader and punch. Seems reasonable, since I'm sure there were some customers who had no need for a CRT.

          However, I overstated things when I said the display "would have added quite a bit to the cost". It only seem
    • 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)

    by mbone ( 558574 ) on Tuesday March 01, 2011 @07:31PM (#35353052)

    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.

  • Benchmark? (Score:5, Interesting)

    by hawguy ( 1600213 ) on Tuesday March 01, 2011 @07:33PM (#35353064)

    How does the speed of this Javascript emulator (on a typical PC) compare to the original hardware PDP-1?

    • by mbone ( 558574 )

      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)

        by hawguy ( 1600213 ) on Tuesday March 01, 2011 @08:55PM (#35353556)

        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.

  • by martin-boundary ( 547041 ) on Tuesday March 01, 2011 @07:35PM (#35353072)
    If you port the emulator to plain vanilla ANSI C, then it should still run in 100 years unchanged.
    • by Jeremi ( 14640 ) on Tuesday March 01, 2011 @07:42PM (#35353122) Homepage

      How do your port an emulator with graphics capabilities to plain vanilla ANSI C? C doesn't include any graphics API.

      • by Jorl17 ( 1716772 )
        ASCII graphics man! A pixel THAT BIG is all we need. He'd also implement "refreshing" as just clearing the screen. Ah, I can see it already...Ha Ha Ha. Nice catch ;)
        • Hey I resent that! We used to print out our porn sideways on teletypes uphill both ways in the snow, and WE LIKED IT, DAMMIT!
    • 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. :)

      • 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.

        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

        • 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.

        • 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

      • ... 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.

    • by QuantumLeaper ( 607189 ) on Tuesday March 01, 2011 @08:16PM (#35353338) Journal
      MESS http://www.mess.org/ [mess.org] already has a PDP-1 emulator, it's currently in C.
    • 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

      • 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.

        • by mangu ( 126918 )

          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

      • 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

      • I have been programming in C for about 25 years now and the first programs I wrote still compile and run unchanged today.

        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.

  • by 0111 1110 ( 518466 ) on Tuesday March 01, 2011 @07:43PM (#35353126)

    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]

  • by Anonymous Coward

    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.

  • by Superdarion ( 1286310 ) on Tuesday March 01, 2011 @07:48PM (#35353168)
    So they wrote a PDP-1 emulator for java. Maybe they should keep building emulators to run the last emulator on a newer system. Repeat ad infinitum and you never have to know more than 2 languages at a time in order to preserve it.
    • 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.

  • PDP-1 SpaceWar was a milestone but the arcade version from Cinematronics was a lot more fun I thought....

  • 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 :)

  • | .
    v
                .

                      * .
    .
      ==>
                               

  • 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.

  • Here's a better idea for future-proofing software: end insane copyright laws.
  • I get it that nothing will be around forever, includig Java but javascript and html never stop changing! I bet the java version still works longer than the new one does.
  • 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.

No spitting on the Bus! Thank you, The Mgt.

Working...