Light Replaces Electrons for Giant Vector-Graphics Asteroids Game

For all its simplicity, the arcade classic Asteroids was engaging in the extreme, with the ping of the laser, the rumble of the rocket, the crash of crumbling space rocks, and that crazy warble when the damn flying saucers made an appearance. Atari estimates that the game has earned operators in excess of $500 million since it was released in 1979. That’s two billion quarters, and we’ll guess a fair percentage of those coins came from the pockets of Hackaday’s readers and staff alike.

One iconic part of Asteroids was the vector display. Each item on the field was drawn as a unit by the CRT’s electron beam dancing across the phosphor rather than raster-scanned like TV was at the time. The simple graphics were actually pretty hard to create, and with that in mind, [standupmaths] decided to take a close look at the vector display of Asteroids and try to recreate it using a laser.

To be fair, [Seb Lee-Delisle] does all the heavy lifting here, with [standupmaths] providing context on the history and mathematics of the original vector display. [Seb] is a digital artist by trade, and has at the ready a 4-watt RGB laser projector for light shows and displays. Using the laser as a replacement for the CRT’s electron beam, [Seb] was able to code a reasonably playable vector-graphic version of Asteroids on a large projections screen. Even the audio is faithful to the original. The real treat comes when the laser is slowed and a little smoke added to show us how each item is traced out in order.

All [Seb]’s code is posted on GitHub, so if you have a laser projector handy, by all means go for it. Or just whip up a custom vector display for your own tabletop version of Asteroids.

24 thoughts on “Light Replaces Electrons for Giant Vector-Graphics Asteroids Game

          1. Unless the RGB laser driver is both rather bright and VERY fast, you’re not getting Star Wars or Star Trek. Tempest is out of the range of most DIY laser vector displays as well.

          2. I stand corrected – I was specifically thinking of the RGB laser being used in ( http://hackaday.com/2013/03/12/playing-mame-games-on-a-rgb-laser-projector/ ), which is the only one I was personally familiar with. For some reason, I thought Star Trek was unplayable, rather than just rounded-off looking. Call it the failings of an aging memory or something.

            However, I was right about Star Wars. I remember seeing that it was just unplayable.

          3. I only played Star Wars once and that was a unit that was traveling around with the movie in theaters.

            A CRO like electrostatic deflection tube would be ideal for this. It’s a pity you can just put some foil on the neck of a conventional TV tube.

  1. That is really well done, I use these sort of videos to motivate my kids to study harder, look what you can do if you have skills etc.

    The problem of the corners may also be solved by drawing every second segment of a loop because then you are changing direction while the laser is off, you just need to run around the loop twice. If this gives any time advantage in the end would need to be investigated experimentally.

  2. I really liked the oscilloscope version of asteroids.

    Never made one, but playing asteroids on your CRO would be so cool (although all modern CROs are raster now anyway). Sigh.

  3. Been there, done that. In the 80’s I used to work for a company that placed arcade machines in convenience stores and other locations for a percentage of the take. One day, around ’86 or so we had didn’t have any machines in the shop to be repaired that day and we were bored. A fellow tech and I took the HeNe laser assembly from a broken Pioneer laser video disk player, scavenged from a Dragon’s Lair machine. With only a minimum of interface circuitry, we took the outputs of an old Asteroids motherboard and connected it to the steering mirrors on the laser assembly. We used an old LCD score display from a Gotlieb pinball machine to block or allow the beam thru. In under a day, we had it all working and were playing Asteroids, drawn with a red laser, on the wall of the shop, 5 feet high! We ended up making several more for the Boss’s kids and business associates. A couple of years later, I interfaced an Asteroids board to the high-powered laser system at our local planetarium where I worked nights & weekends running the Cosmic Concerts. We were able to play a [very warped] game of Asteroids on the planetarium ceiling (dome) and we also used it in some of our shows. I was concerned that the steering mirrors (galvos) would not be able to keep up with the speed of the game board, and/or that the beam would oversteer on the corners, but neither of those turned out to be an issue, it worked great! I also tried it with a Space Duel motherboard, but couldn’t get the color mixing to work properly.

    1. Either you screwed up facts or your story is BS. Gottlieb – not Gotlieb – pins of that era used fluorescent displays – Genie used blue iirc – so no way could you have used a score display to switch the beam off and on. LCD tech in the 1980s was strictly calculators and a few low-res portable computer displays. They didn’t have enough contrast/brightness to be used as score displays.

      1. Gottliebs did indeed ship with blue fluorescent displays. And they were absolutely horrible. They failed at an extremely high rate. For customers that bitched long enough and hard enough on warranty claims, they replaced them with large LCD numeric displays. Similar to to a calculator, (NOT like a TV screen) just bigger. Problem with those though, is you couldn’t read them in a dark arcade. We replaced the LCD replacements with fluorescents made in Russia. Assuming the machine itself was still running. Gottlieb was in their 3rd bankruptcy at the time, and the quality of their machines had gone to hell.

          1. Don’t believe they gave out a whole lot of those LCDs because many machines got early retirement due to motherboard issues. But my “Black Hole” machine had them until I switched it to the Russian fluorescents. And they were still in my spare parts bin until I finally threw ’em out a couple of years ago. Sold my Black Hole to a collector who gave me a small fortune for it. It was a really fun machine to play, but broke down constantly. Not like the old Gottliebs, they were rock solid. My collection is now down to just 6 machines: 3 Williams, 2 Ballys and a Stern.

  4. We did an ultra primitive version of this back around 1989. It didn’t play asteroids, but we were able to take the laser from a Sony LDP 1000 and connect the beam steering mirrors control our x and y axis. We used an amiga 1000 left/right audio output to feed an op amp to drive the beam steering. We didn’t have any calibration or blanking, but by feeding different frequency sine waves out the left/right channels, we could get some really interesting ‘spirograph’ patterns on the wall. Fun times!

  5. Nice to see this done on more modern hardware (if done with very esoteric software…)
    Back in the ’90s there was a commercial effort to modify the MAME project to allow the output from vector based roms to be displayed with a laser. It worked pretty well which is impressive considering the technologies available at the time https://www.youtube.com/watch?v=NrKB3Utu-G4

    More recently there have been a few attempts at reproducing this (another one called lasermame, one called lazymame, both of which seem to have faded into obsolescence) and most recently one based on openlase featured on hackaday http://hackaday.com/2013/03/12/playing-mame-games-on-a-rgb-laser-projector/ which works but was never really optimized well enough to work with the more complicated games.

    As far as I can tell this is the first project to do a ground-up implementation of asteriods (which is nice since the emulation based approach is copyright encumbered), and it seems like he is able to get quite nice performance with his simplified version. Looks like he has flappybird in the github as well (not clear if it is complete or not though).

  6. It’s still missing the phosphorus persistence of traces. But a great attempt.

    I’m very surprised that there is no servo like feedback in those galvanometers. Passive drive seems like a real limitation.

    1. Totally agree with the open loop control problem.

      If you use the maximum available electromotive force available from something as weak as a open loop galvanomic drive to drive a vector path then that same limited maximum force has no hope of rapidly changing to a force derived centripetal path.

      I would use two very long and thin hobby three phase motors that are common now and grind a narrow flat onto the side of the shaft for the primary laser reflective surface. Then with a second motor (offset by 90 degrees), grind a similar flat across a wider section but only to the axis. This would create the minimum mechanical movement (and momentum) for the maximum deflection.

      There are lots of options for these motors to have closed loop control like encoders or FET sensors and they have much more power to overcome their self momentum.

      1. Quite a few companies make laser galvo-mirror assemblies for just this purpose. There are a bunch of them on flea-bay. Back in the 80’s we used to build our own. A high-quality optical grade front-surface mirror is an absolute MUST. The challenge then becomes making the mirror as small and light as possible, but still big enough to steer the beam around. The beam is often collimated so it may be a relatively wide 2-3mm in diameter. Plus the second galvo has to deal with the changing angle of the beam coming of the first galvo. Oversteering, slow inertial changes, and non-linearity of the galvos is precisely measured then compensated for in the control software.

  7. Yeah, they’ve got a handful of vectors on the screen. No way is this ever going to do Asteroids, unless you’ll accept a rounded-off, misaligned mess that flickers horribly. You’d need multiple projectors working on a section of screen to make it playable.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s