There are a few obvious changes in this build and some behind-the-scenes fixes.
There are now graphics for the duck. I went through a number of different ideas for what the duck should look like:
- A Sinistar-style skull (full face view);
- A Terminator-style skull (2/3 view);
- A demonic face;
- A modified version of the existing robots (a different color with flames coming from beneath it);
- A robot bird/pterodactyl;
- An Impossible Mission-style sphere.
I think the Terminator-style skull would have been the best option, but I couldn’t get it looking anywhere near right. The design had to be limited to what I could actually draw, which turned out to be a pulsating eyeball. It has nothing to do with the “marauding mechanicals” theme but it looks neat, so pulsating eyeball it is.
In order to change the shape of the duck I had to change how the library determined if there were collisions between Harry and other game objects. Specifically, I had to move the collision test code out of the library entirely and add a callback to the game’s delegate so that the user of the library could create its own collision test based on the shape of the sprite bitmaps. I tightened up the collisions at the same time.
On the subject of the duck, I rewrote its movement again. Now it’s pretty close to the original Chuckie Egg.
The sprites now appear behind the score indicators at the top of the screen thanks to the GBA’s ability to interleave sprites and tiled backgrounds.
The scrolling system used to support arbitrarily-large levels is now a separate class. I ripped most of the code out of the text scroller and replaced it with the new scroller class.
The ROM is 70K smaller. Most of the savings came from removing unused sounds or converting stereo sounds to mono.
Lastly, the high score music is in the game. It’s in the wrong place, however, as there’s no high score screen yet.
The todo list is getting shorter:
- New sound samples.
- New death music.
- New level designs.
- High score screen.
- Title screen bitmap.
- Title screen music.