I wanted to put an easter egg in a sound/lighting controller I built for a client and friend. It’s got a round LCD with an interface designed with CRT vibes in mind, so I went looking for some Asteroids clone that would be easy enough to wrap up in a translation layer against my own rendering subsystem.
So I found the Hackvision Asteroids game – and did just that.
everything was of course way off from working well under these new conditions, and while this is hardly a critical part of the device I still wanted it to work well so I had to some furniture around to get it to fit.
* Ripped out a bunch of fluff (no need for high-scores, sound, etc).
* Replaced most of the bitmaps with 8-bit greyscale ones.
* Decreased the resolution and re-organized the HUD.
* Replaced delays with state-machines (game loop must return, can’t sit and wait for stuff).
* Ghosed the asteroid bitmaps in favor of rendering the verts with anti-aliased lines.
* “Galaxy Warp” replaced by a slowly charging shield, sorry Paul! 😉
* Edge-wrapping code reworked for circular wrapping.
This was certainly a fun little challenge! Thanks for making this and I hope you will take pleasure in knowing that your code will be sitting in an industrial DIN-rail cabinet for future technicians to find and go “WTF is that weird thing mounted next to my relays?”. Hopefully the strange enclosure design with peak enough curiosity for someone to find your game 🙂
I LOVE IT. Thanks for posting this, and great job with the development. I wrote Asteroids about 12 years ago when I was first learning microcontroller development, and I am still really happy with how it turned out. I love the round LCD, and am impressed that the wrapping on the edges worked so well. Nice work.