>> Monday, May 1, 2006
If you have followed the updates on The Black Moon Project you didn’t miss the cheat codes we gave you about Creature Shock a while ago. Quite exclusive they were as nobody was aware of these CD-i cheats! When only recently we talked with the original CD-i coder of Creature Shock a lot of interesting facts about this game showed up. It’s time to share.
Argonaut Software was under a publishing agreement with Virgin Interactive Entertainment. Argonaut was an independent developer so they always used to use publishers to take their products to the market. When Virgin was contracted a 3 cd-I game deal, a Creature Shock conversion was on top of that list.
The CD-i project was assigned to only one person: Martin Piper. Creature Shock was the first game he completed after he joined Argonaut. 11 Years later, in October 2004, Argonaut had to close its doors because they ran out of money.
To get the ball rolling we only had to citate the back of the CD-i boxart: “It took Argonaut three years to cram this Double CD full of stunningly rendered 3D environments….” Three years? What happened there?
“You are right, the more than three years development time indicates there were problems.
The biggest and first problem was trying to fit a PC game that used a lot of virtual memory onto a console with much less memory. For this in implemented a cached compressed file system to allow me to read in data, even while MPEG was playing, to allow me to render lots of frames of different sprites if required or have access to lots of data whenever I needed it.
The second was the difference in processing speed compared between the PC and CD-i versions, with CD-i being much slower in terms of processing and very much slower in terms of memory bandwidth. Luckily the most intensive part was the motion video which (thank God!) the CD-i had extra hardware to deal with that problem. The next most CPU/memory intensive part were the sprites. On the PC 2D graphics are generally stored as pixel data and memory copied onto the frame buffer. On the CD-i this wouldn't work because the CPU and memory were too slow to keep on copying all this memory around, even using dirty rectangles didn't help much. So the 2D scaled and non-scaled sprites used a special technique called binary compiling to make sure they were drawn at a good speed on the CD-i. This involves taking the pixel data and passing it through a tool which generates 680xx machine code. The resulting machine code stores the exact minimum amount of pixel data required to the frame buffer without needing to do all the wasteful memory copying.
The third problem were the tools supplied with the development kit because Creature Shock used a lot of small video clips. Unfortunately I tried using the standard tools to create the CD and quickly found we ran out of space due to the tools adding two seconds of blank data between each clip. So I had to create my own tools that would reduce this gap to a couple of sectors and change my MPEG playback code to emulate the gap in the CD data instead. This worked because the CD-i allowed the incoming CD data to be accessed through a ring buffer. That said it was a miracle Creature Shock didn't use more CDs than it did!
Another problem was the asset data processes. We had many gigabytes of raw data to convert to MPEG video streams and I remember we were sending out many CDs to Philips to get them encoded. These days gigabytes of data doesn't seem like much but back then the biggest hard drive in the building was only two gigabytes and weighed like a huge brick!
The problem that took the longest to resolve was a small hardware bug that was found in some MPEG cards for some revisions of the CD-i hardware. I remember one time a couple of Philips engineers came over with their hardware debugging kit and after a while we eventually found the problem. In the end I worked around the bug by detecting the failure and resetting the hardware.
The 3D interactive bits had to be cut, there was no way the Cd-i was ever going to render that in real time. So we actually created some extra MPEG assets for the CD-i version to fill in the gaps in the story....
I also remember having early discussions with some technical people at Philips about custom access to the MPEG hardware. I wanted to use the DSP chip (by standards back then it was fast!) to draw my own dynamically generated graphics and possibly even 3D. But as you probably know with the MPEG hardware changing so much there wasn't an easy way to guarantee hardware access at that level from the CD-i....
There was a possibility the game got cancelled as well when I first calculated the game video data wouldn't fit on 2 CDs, but that problem got solved. Since the team was small (and cheap) the project was able to keep going for years. I don't think it ever broke even though”
When reading this list of problems, didn’t the whole CD-i create bad blood in you?
“Not at all, I actually loved working on the little machine because in some ways it reminded me of my old Amiga programming days. You see, I'm the typical games programmer. I was born in 1973 and by the age of eight I was starting to programme the family computer, a ZX81. By the time I was 16 I had completed my first commercial game for the Commodore 64 and was already selling software libraries and technical articles to magazines. I got my lucky break at Argonaut when an employee spotted my work at a computer show in London. He said "write off to here we'll interview you." I got the job and then moved across the country, leaving home was tough as it was my first time away from my parents. But I loved the work, imagine a load of other people who have the same interest in programming as I have. This working environment proved to be a great learning experience and when the CD-i project started my knowledge of 680xx meant I was picked to do the job. The rest, as they say, is history. “
Another Argonaut game on cd-I release lists, was Alien Odyssey. Do you know if this game ever was in development?
”It would have been nice to use the engine for CD-i Alien Odyssey but that conversion project didn't really start. I actually started the Sega Saturn conversion but that was also cancelled after a month, we had a new bigger project to work on. I assume this was why Argonaut/Virgin moved away from CD-i because technology wise it was being eclipsed by the newer consoles from Sega, Sony and Nintendo. To stay in the race Philips needed a much newer machine, but they didn't deliver. History is littered with the cases of old consoles.”
Who else was responsible for the CD-i development at Argonaut?
“I was the conversion programmer and Paul Saunders was the asset controller who organised the rendering and compression of the MPEG assets. That was the team. (only two people!) The PC version had a larger team, but the CD-i version just used the PC assets as much as possible.”
Ofcourse, we highly thank Martin for his contribution and especially his work on Creature Shock which is easily one of the best games available on CD-i.