2008-03-02

The Secret Posts - Post Zero

(Written 28/01/2008)

So, these are the secret posts. I’m planning to unveil them once this project is finished, but for the time being they need to be kept hidden.

The reason for the secrecy is that I’m planning to enter the latest PDRoms contest. Ordinarily I see homebrew compos and think they’d be fun, but never get around to doing anything. This one piqued my interest because it is frustratingly restrictive: code a homebrew game in a month with a 2-bit (4 colour) display.

Even Spectrum programmers had more colours to play with.

First task is to come up with some game ideas. Remakes are specifically outlawed in the rules so it needs to be something original. I’ve had an idea for a while about a traffic warden game - I’m set on producing a game that evokes the intensely mundane scenarios employed by the early British software industry at some point - which would do the job. However, I can’t see that one working in 4 colours. Doesn’t really fit with the way I’ve imagined it.

Other ideas? Games revolving around the 4 colour limit, like a “Simon” clone or a Columns-style puzzler. That’s a bit obvious though, isn’t it? I’m sure that a significant number of entries will go down the route of employing the limitation as a game mechanic. Not that, then.

Another game, or genre, I’ve been meaning to explore is the shoot-em-up. Apart from Space Invaders, I’ve never written a shooter. I can see a very stylised, mainly black-and-white line-drawn vertical shooter working quite well, especially if there’s a lot of movement on the screen. Lots of animation, bullets flying everywhere, score bubbles appearing every time an enemy gets destroyed, explosions, etc. Maybe even a particle system so that missiles leave a trail of monochrome grey smoke in their wake.

Sounds like a plan.

Which platform? The game needs to be written in a month, so I haven’t got time to dig into the internals of the hardware. It also needs large graphics. That basically rules out the DS. Aside from the fact that the DS’ screens are a bit on the small side for a vertical shooter, I haven’t got time to work out how 3D sprites work in PALib and fix any bugs I come across. The GP2x is a better plan - I can code and debug in Windows and just recompile for the console when I’m ready to test. It also lets me use SDL, which has fewer constraints than PALib. Lastly, its CPU can be clocked to 4 times the speed of the DS, so I don’t have to worry so much about writing tight, efficient code.

GP2x it is, then.

I’ve spent some time over this weekend getting the graphics done. I decided on an Apache-style helicopter as the main sprite, mainly because I’ve been playing “Under Defeat” on the Dreamcast lately. After drawing the helicopter sprite tilting in 4 different directions, I can see why so many shoot-em-ups were based in space - space ships are much easier to draw. The chopper’s got a set of swirling, dithered blade images that will sit over the top as a separate sprite.

Also in the image bank so far are two enemy planes, both drawn tilting left and right in addition to their standard image. I’ve got a UFO that looked more like a fried egg until I modified it, so it now looks more like a hubcap, a SAM missile that rotates on its Y-axis, a set of powerup icons, a few bullets, and a heart icon that I can use as a life indicator. I’ve also got a game logo for the left-hand border and a recoloured Simian Zombie logo for the right-hand border.

One problem I’ve got is the background. The game obviously needs to scroll or players won’t know that they’re making any progress. Drawing large, intricate backdrops a la Herzog Zwei, Moon Cresta, Battle Squadron or any other vertical shooter is out of the question. There aren’t enough colours. I thought that a Solar Striker-style background might do the trick - the game uses a very light grey to draw monochrome backgrounds that don’t distract from the game. Unfortunately, even that isn’t possible. There simply aren’t enough colours.

Eventually, I decided that the easiest way around the problem is to have pale (dithered grey and white) clouds drift beneath the action. It suggests movement without being intrusive or complex to draw. Perfect. Even better, I can have multiple layers of clouds moving at different speeds to give a parallax effect.

The logo was easy to do - find a font that looks good, type out the game’s name, and slap the GP2x’s “x” at the end. The game name was more tricky to decide on; I eventually went with “ChromaX”, reflecting the platform it runs on and the competition’s limitation (colour).

I still need to draw a couple of explosions, at least one more enemy, an additional 4 frames of animation for the chopper (to fill out the diagonal tilts) and a couple more clouds. I think that should cover all of the graphics. Hopefully the graphics done so far will work when they’re animated - I’m a terrible artist so the graphics might look awful when in motion.

After that’s done I can start on the coding. My big fear is that it’ll turn out like something written in SEUCK. Argh.