|Statement by Robin Keir - Programmer on Microcosm|
I was the lead and eventually the only programmer on the Microcosm CD-i project. It's been a long time but I'll see what I can remember about it...
Psygnosis were the original developers of the Microcosm game. We went up to their offices near Liverpool to talk to the people there and find out more about the game. They had developed a version on some weird Chinese PC clone type system - I can't remember it's name, but Philips bought one for us to play with.
Since most of the rest of the programmers in the Dorking studio at that time were working on porting 7th Guest to CD-i, I was pretty much the only programmer assigned the project.
The whole deal with Microcosm was for us to port it to CD-i in order to show off the MPEG movie hardware add- on. The computer rendered scenes of traveling through the internal organs in your "spaceship" were to be presented via MPEG movie clips whilst the actual gameplay items comprised software "sprites" layered on top of the movies.
There were 2 main problems to overcome:
1) The MPEG movie clips had to be joined together on-the-fly to provide "seamless" jumping from one clip to another, giving the illusion of total interactive user control over the movies.
2) The CD-i system was not known for its great graphical processing power so any software generated "sprites" had to be as optimised as much as possible in order to produce any meaningful sensation of a fast "arcade" style game.
Problem (1) was the hardest task. MPEG video sequences on CD-i contain many elements and need to be carefully synchronized. This synchronization is achieved with timestamps built into the MPEG stream on every "sector" of data. If 2 completely separate MPEG movie sections are to be played back-to-back in a seamless fashion we had to buffer them through memory as they are played off disc and manipulate the timestamps in realtime, buffering enough of the 2nd stream in memory so when the 1st stream ended we were ready to branch right into the 2nd section.
Several people had worked on this so-called MPEG "seamless branching" technique but nobody had really nailed it at that time. To make life even more difficult, in Microcosm we were required to branch up to 3 different movie clips in real time. An example is where you are traveling down an artery (or whatever they were supposed to be!) and you came up to a 3-way split. The user could take the left, center or right branch by selecting it with the controller right before reaching the junction and the game was supposed to "seamlessly branch" into the correct movie segment and continue on its way.
Problem (2) was interesting to work on. I developed a system of "compiled sprites". This worked by taking an image of a spaceship or whatever kind of sprite was to be used and "compiled" that into a sequence of position independent 68010 assembler instructions that would actually directly draw the pixels onto the screen. For example, suppose the first line of the sprite consisted of 10 red pixels followed by 3 green pixels. The sprite compiler code would generate assembler where 5 mov commands of 2 bytes each using a value corresponding to a red pixel would be created followed by another mov command of 2 bytes followed by another mov command of 1 byte. It was all setup to create highly optimized assembler code to draw things in the fastest possible way. For each sprite you then had a mini assembler program that when called would actually render the image on the screen.
John Piesing at PRL (Philips Research Labs) in England had actually developed a similar "compiled sprite" library, but mine was even faster and used less RAM.
It was around this time, March-April 1994 that it became evident that the Philips labs in Dorking, England where all this was taking place was going down the drain. People who hadn't already got new jobs lined up were not exactly wanting to hang around working on potentially dead-end projects. I had already grown tired of the project and its lack of support and had hoped that the project would be canned since it was eating money and it was also obvious that Microcosm wasn't after all a very playable or exciting game. It was desperately lacking any gameplay. The graphics were its only attraction. Luckily (!) for me I was offered a position at the Santa Monica, Los Angeles Philips CD-i studio. I decided to take it. Unfortunately (!) I was still required to work on Microcosm.
Jean-Pierre Abello (sp?) in the Philips Santa Monica, CA offices was the only person I was aware of that was working on the elusive MPEG "seamless branching" technology. He had some very simple demos kind of working but still nothing really useful. I was committed to solving this problem and did eventually produce usable working code after a few weeks in my new USA job. There was some tricky low level assembly language involved for manipulating the MPEG timestamps and some hairy buffering code that managed the loading on the individual movie clips from CD but it did work and actually looked really cool.
The compiled sprites technology was also looking rather nice. Nobody had really created technology that pushed so many or such large sprites to the limits that Microcosm was doing and people would not have believed that such a game was even possible on such pitifully weak hardware.
As often seems inevitable in the games industry (even though Philips was never really /in/ it) the people in charge came to realize what I had known for a long time -- that Microcosm was doomed to failure. Other than the fancy graphics of was a deadly dull and boring game. It was dropped and we moved on to new projects.
I daren't think how much money was thrown away on that project. We even had mini movie shoots for some of the "cut sequences" -- sections between the gameplay where SGI rendered scenes were coupled with live action video. The SGI machines that performed the rendered movie sequences cost an arm and a leg. I think we had something crazy like 4 or 6 of them, just for this project!Research Conducted by Bas
With special thanks to Robin Keir for submitting this statement
Copyright © The Black Moon Project 2001 - until my dying breath! No part of this website may be reproduced without permission.
We are not connected to any mentioned company in any way. All patents and trademarks are owned by their respective holders.
Property of the CDinteractive Network, bringing new light to old technology.