Why Galaxian Link to heading

I’ve decided to go with Galaxian for my next game. I’m going in roughly chronological order, and it’s the last game I wanted to cover from 1979.

Why cover Galaxian at all? You may have deduced from my review that I’m not actually a big fan of the game, and that is true. The problem is that most early games are just awful. I’m doing this chronologically since games get more complex over time, and I want to take advantage of that to build up my skills and game engine gradually. If I were to only cover games I actually enjoy playing this strategy wouldn’t work very well.

I’m trying to cover games that are considered iconic, but I’ve already skipped over Space Invaders. Actually I implemented a version of Space Invaders but decided it wasn’t good enough to post online. Galaxian is my opportunity to take that work and turn it into something usable.

Notable Features Link to heading

I’m going to be able to re-use a lot of what I’ve already created for Kessler Syndrome for my Galaxian clone. The basic foundations of how I’m doing sprites, keeping track of entities, playing sounds, handling input, hit detection, etc should all continue to work without changes.

Here are some of the things I’m expecting to add to the engine for this game:

  • Graphic objects will need to be able to handle multiple animations. For example when an enemy leaves the convoy to charge at the player it switches from its idle animation to a turning animation, then has a rotation effect to keep it pointing in the direction it’s moving. I don’t currently have a good way to implement that.
  • I will need some way to handle scripted movement. Two places that Galaxian does this are by having text scroll onto the screen, and the movement of enemy ships. I’m undecided on if I want to use the same technique to handle both of these animations.
  • I’m going to need to make a fancier looking star field. The one I used for Kessler Syndrome is just a static image, but in Galaxian the stars twinkle and move down the screen. The original version of Galaxian does this by using some arcane hardware techniques that don’t really translate to modern systems. There are a couple of ways I could do it, and I haven’t really decided which is best yet. Probably I’ll end up adjusting it to be more aesthetically pleasing, since I find the Galaxian starts a bit too twinkly. I need something that looks at least 20% less like Christmas lights.
  • I’m hoping to add some kind of midi or mod music format support so I can include either some background music or play a jingle at various points like Galaxian does. Hopefully mine sounds better than the original.

Planned Improvements from the Previous Game Link to heading

  • This time around I’m going to improve my take on the attract screen a bit. It will rotate between a title screen with some example gameplay (or at least a sample of the graphics), an info screen with point values, and the high score list. The original game didn’t have a scoreboard at all (and neither did Asteroids) so I had just tacked it on to the game over screen. This proved to be annoying since you couldn’t see the high scores without playing through a game and entered your own score.
  • Some kind of security update for the score API. It’s way too hackable right now. I think it is actually impossible to fully secure it, however I’m going to make it annoying enough to hack that no one will bother.
  • I also would like to add some functionality to pause the game. Obviously this wasn’t a feature on any arcade games, but mine isn’t an arcade game and I think it would seriously improve the experience to be able to pause when you feel like it. If this proves too annoying to implement I might scrap it for now. It is something I’ll need eventually though so maybe it’s better to handle it early on.

It also probably goes without saying that I’ll need lot of new assets (sprites, sounds, etc) for this game. Even the stuff I can carry forward will needed to be adapated to be in color.