Archive entry by Ste Pickford on Sun, 26 Nov 2006
The plot of Zub involved navigating through 10 different planets to find the lost Green Eye of Zub. We didn't have the time or resources to create many differences between each planet - they were all essentially the same, a floor, a series of platforms with three exits, and some baddies. What we did was draw a different floor and platform graphic for each planet, and a unique baddie. I think we originally planned to make each baddie behave differently, and have some unique gameplay, but there just wasn't time. John had already 'wasted' about three days on the main character's play control, so there was no way we'd get to spend time making each baddie play differently once the scheduled half day on baddie movement code had been spent.
I think its really interesting to see just how little data we had to make do with on a 48K machine. Each of the 10 planets was allocated just 56 bytes (yes, bytes!) for the background graphic data (32 bytes for the floor pattern, and 24 bytes for the platform), and 360 bytes for the local baddie (72 bytes per frame of animation). Even that took up just over 4K, a significant chunk of available RAM.
We'd lavished a lot of RAM on the main character's animation, and had some unusually large graphics on the side panel, so Zub was a little bit more sparse in-game than most games at the time, but these numbers must be mind bogglingly small to anyone who's messed around creating graphics files in Photoshop or MS Paint. Go on, have a look at the sizes of PC graphics files.
My inexperience as a video game artist is well illustrated here. I drew 5 frames of animation for each baddie, 4 of which formed the main animation. There are lots of things you can do with 4 animation frames; you can cycle 1, 2, 3, 4, 1, 2, 3, 4, etc., or you can ping-pong 1, 2, 3, 4, 3, 2, 1 etc., or you can have a two frame animation in one situation, and a different two frame animation in another. I wanted to use all these techniques as I designed the baddies. Most of the baddies cycle, but #3 and #6 are supposed to ping-pong, #8 was supposed to cycle through the first 3 frames then blow up using the last frame when it got close, and #10 was supposed to use the first two frames flying towards you, and last two as if flew away, after dropping a bomb.
My inexperience was expecting all these different animation / behaviours to actually get programmed! John got the first baddie working with a 4 frame cycle, then there was no time left to spend on exceptions or alternate versions of the code for every other level. In fact, there might not have even been enough RAM for more code! As a result some of the baddies looked really bad - #8 especially so as the 'zap' frame kept flashing up flipped horizontally and unreadable half the time. Never put text in graphics!
I think I originally intended the 5th frame to be a 'flip' frame for when the baddie changed direction in flight, and we'd have either some separate animation, or some other explosion effect for when the baddies died, but lack of time and RAM meant this wasn't possible, so John used the 'flip' animation frame as the 'death' frame.