There was a period of about 3 months between finishing the first Speccies game (read a postmortem on that here) and actually releasing it, so I was thinking that “perhaps I could make a small 16K Spectrum game in the meantime – or get a good start on one“, so I put my thinking-cap on. I wanted to make a small action game. I had an idea – “I’ll remake the arcade game Pop Flamer – that’ll fit nicely into 16K“, so I wrote the scrolling routine and showed it to Craig (who I was going as draft for his pixelling-skills). Unfortunately he didn’t really like what he saw, so I prompty dropped it and put on my thinking-cap again. Not that it helped – my head was pretty void of ideas.
But a couple of days earlier I’d played a Flashgame called “Pathologic“ which was simple, but I liked it – it was very stylistic, and for some reason the thought of remaking it popped into my head 3-4 days later. Perhaps that could become a good 16K game for the Spectrum?
I thought about it for one day and then I went to work. I’d only played about 15 levels of the Flashgame, so I located the savefile on my computer, examined it, edited it with a hex-editor, and hey presto – all 50 levels were now open. 😀 So I did the same thing as I did with the DOS version of The Brainies for my remake – I took a screenshot of every level for reference.
I decided right away that I would make it a sequel to the game I had just finished. The practical thing about that was that I could reuse the main character. The first thing I did was grab some tiles from another Spectrum game I’d also borrowed from on the first game – Xenon. I constructed the first level manually as lines of data in the source code. Then I converted the graphics so I could use them, and then I could start writing code to draw a level from some data and roll a sprite around on top of it.
I worked some more on getting things working. After that I put in the routines to draw text and numbers, and by the afternoon the next day I had the gameplay fully working. You could roll around, tiles visited would turn inactive, and it was checking if all the circular objects had been collected – which would turn the screen green (in this case, some fool that may or may not have my name, resulted in the oposite result – the red screen indicating failing a level).
On the third day I worked a bit on the main menu and had the basics of that working. I also added better messageboxes for having completed or failed a level. It didn’t work fully yet, though – the game locked up when showing the messages (which was intentional…I’d get to that in time).
I also partly implemented the level selection screen on the third day. I had to carefully choose which levels from the original game I wanted to use. The original game has 50 levels, but some of them were too big for the Spectrum screen, but I finally realized that if I didn’t use any informational text on the screen, then I had a bit more room available, and I could fit 45 of the original 50 levels onto the screen. Then that was settled. The colours aren’t quite right yet, though. Oh, and I still needed to actually put the levels into the game.
…so I also wrote a level editor on the third day. The grid in the game is 16 by 12 tiles which would be 192 bytes if saved as individual bytes, or a whole 8640 bytes for all 45 levels. That’s the entire memory in a 16K Spectrum so I had to compress the levels, and I decided to compress in two ways. First off I used a bit of bitstream compression which I wrote in BlitzMax and built into the editor itself. It was simple – since there are only 4 types of tiles I could define one tile in two bits. On other words – one byte would describe four tiles. That would bring the memory needed for levels down to a quarter – 2160 bytes. On top of that I implemented the same LZ compression I’d also used in the first Speccie game, and that brought the leveldata down to about 1500 bytes. Phew, that was a busy day. 🙂
On the fourth day I spent most of my time making the levels. Now that I had an editor and screenshots of all the levels it was an easy task. Okay, so my eyes were close to popping out of my head from straining them, but that’s how it is sometimes. 🙂 I also worked a bit on some of the other things that didn’t work fully yet.
At the end of day four the game still used the borrowed graphics, and I still had some debug information on the screen.
On the fifth day I pulled all the parts together and fixed everything that didn’t work yet. I’d also gotten “all” the new graphics from Craig which I put in – the game only uses four different types of tiles after all. That must be an all-time low for a game. 😀
Craig also came up with the subtitle of the game. It’s actually pretty clever considering the game is monochrome and the name of the colours on a Spectrum (ATTRs – short for ‘Attributes’). The final change was putting a bit of BRIGHT white into the game on the things you have to collect, and by lunch on the fifth day the game was completed. 🙂
Finally Craig made the loading screen about two months later. Then I could finally make the TAP & TZX files (used for loading the game into emulators or record them on cassettetape, and a day or two later they were recorded to tape as it was time to get ready for the release.
In the meantime we had decided to release the game after the first Speccie game, as it doesn’t makes sense to release a sequel before the actual game. I ended up putting both online on the same day though. It’s a free download – just like the first Speccie game, but it is also included on the deluxe cassette edition.
All in all, I have to say that it went quite smooth – there were no big problems developing it, but it IS a quite simple game all things considered. Besides – how many problems can you possibly get yourself into in such a short time, LOL? (knock on wood). I never thought I could make an entire game in assembler in just 4½ day (working evenings), but there you go – it’s possible. 😉