Posted on February 15, 2007
The Asteroids Evolution to Retro Blaster
My first video game true love was Asteroids. I think the game must have satisfied some internal, mental need to keep things cleaned up. The Sisyphusian nature of this electronic task was enough to make me pour quarter after quarter into the machine in an attempt to just earn one extra ship at 10,000 points. I was never very good at the game, but I would always have a go at the machine if I found it in an arcade, laundromat, grocery store, or liquor store. It’s funny that as kids we thought nothing of spending copious amounts of time in a liquor store playing video games, buying packs of Star Wars cards, and guzzling Bubble Up and Root Beer. We would even tell our parents that we were going to the liquor store. Now-a-days we probably would have been put in a youth home for just stepping into a liquor store at age 11. Back then, the local liquor store was the hub of teen and pre-teen activity. We weren’t there for the alcohol (I guess some kids must have been, but we weren’t). It was our local carnival with games, candy, soda, adventure.
Anyway, after Asteroids, I poured quarters into Asteroids Deluxe, Space Duel, and to some extent Sinistar and Blasteroids. I remember going to a Savon Drug store and purchasing Asteroids for the 2600 and playing it non-stop for weeks on end. I also had a version for the Atari 800. It was similar to the 2600 version but with slightly better sounds, visuals and game play. Asteroids for the Atari 7800 was an absolutely awesome version that few have played. Probably my favorite classic version was a game called Megaroids. It a demo game that came with Megamax C for the Atari ST. A version was also created for the PC and Amiga. It was the a great version of the arcade game and a nearly perfect adaptation with more colors. When the PC arrived to prominence, I was one of the first on the block to buy Micorsoft Windows Arcade with Asteroids included, and of course I found a definitive version on Mame. The later Harbro Atari games for the PC and Consoles was decent, and I own a copy for both PC, and Playstation, but it never held my interest as much as the original incarnations.
I have wanted to make an Asteroids game of own every since I borrowed graph paper from my dad in 1979 and started to plot out the worlds of wonder in my 9 year old head. My first attempt was on the Atari 800 in Basic and it was a complete failure. The lack of suitable math skills for object rotation and vectors left me with a pretty putrid piece of pre-novice game programming. I left Asteroids type games behind and created puzzle and classic board games for years until STOS on the Atari ST enabled me to think about trying my hand at action games once again. I was in college at the time and besides producing yet another fully realized Yhatzee style game (Zambool Atari ST), I never found the time back then to delve deeply enough into the inter workings and create a good Asteroids clone.
After many false starts with a number of programming languages (Java, Dark basic, Game Creator, Game Maker, C++), I finally decided to throw the gauntlet at Flash and see with I could come up with. With help from books By Jobe Makar, and other game programming masters, the first game I came up with was a semi-polished version called Zeno Fighter. It is currently in the Work In Progress section of the site and I might go back some time and finish it off. properly. This one uses Steve’s Particle engine for explosions, and I copied the Asteroids “Jaws” music straight from the MAME version of the game. I was attempting to do CIRCLE math collision detection on the blobs (rocks), and if you try this WIP, you will see that sometimes the shots go through the edges.
I moved from this version to a more ambitious version called Pixel War. In this game I threw out all of the Asteroids vector graphics and decided to create pixel art for all of the game elements. I also wanted many more things on the screen to shoot at, weapon upgrades, and other enhancements. In creating this game I discovered the need for many new OOP building blocks for my games. These include objects to handle basic sprite properties, depth mangers and clean up routines, in game text display classes, and more. All of this code and animation started to slow the game down. Because of this, I dropped development of this game and started some basic animated sprite reel bitmap caching routines. The basic idea behind this was to cache every frame of animation for a sprite in a bitmap object and flip through them like cell animation in an interval. The interval is controlled by the game loop and this gives the programmer great control over the display of each individual frame of animation for an object.
Retro Blaster is the game that sprouted from this. It will be available on the site shortly.