On Thursday evening I discovered, after being alerted by a Facebook 'mention', that Magic Carpet had been re-released for Windows on
gog.com. As I hadn't played it for a long time I paid up the $5.99 and downloaded it. It turned out it was 'just' the original packaged up with
DOSBox but the price was right and I was very unlikely to get round to setting it up myself. That would have required all sorts of hassle like trying to work out where my boxed copy of the original is for a start.
It was weird to be playing a game I wrote the graphic engine for seventeen years ago and once I'd checked the manual to work out how to turn all of the options on, several things struck me.
- The reflections and animated water were pretty cool for the time.
- Stereo 3D with red/cyan glasses was (and still is) cool.
- Stereogram mode was a stupid idea, specially when I got the maths so very wrong (1/z not z you idiot).
- Sean had done a pretty good job of moving all that stuff around at a decent speed.
- What to do at the start is so much more confusing than games these days.
- DOSBox emulation of the 640x480 Vesa mode we used for 'high' resolution is really, really slow.
- The draw distance is pretty pathetic.
Sadly, that last one is the thing that strikes you the most as you try to play. The fog really does seem to start just in front of your nose. I think I should warn anyone reading this that most of the rest of this post is probably going to turn into an excuse for this pathetic draw distance.
I had been working the Graphic Engine for Magic Carpet for a while. In fact, for the a year or so I was the only programmer working on it. It was aimed at 50+ Mhz 486 CPUs and pretty well optimised when you consider it textured with gourad shading and translucency. In my prototype version the tiles/triangles that made up the landscape were about 20 metres across and it drew, I think, 20 tiles before the fog faded it out completely. This meant you could see 20x20 = 400 metres before the fog faded the 'horizon'. Characters, trees, the lumps in the landscape and the speed of the carpet were all scaled accordingly.
then some smart arse decided it would be cool to make castles and things out of the landscape itself. These looked kind of cool but suddenly the tiles had to be the width of a castle wall or the walkway that the archers patrolled to defend it. Now the tiles were only about 2 metres across. The engine still only drew 20 tiles to the 'horizon' (I couldn't up this number and expect a decent frame rate on the target hardware) but 20x2 is only 40. The fog now kicked in at just 40 metres. characters were scaled up accordingly, the landscape smoothed out and the carpet's speed scaled up by a factor of 10. Suddenly it only took about a second or so to fly to the 'horizon'.
This sort of thing doesn't happen when you code games on your own...
Since trying to play it I've downloaded the mac version of DOSBox but haven't got round to trying it yet. Hopefully I'll be able to play in glorious 640x480 'HD' when I'm only using one level of emulation*. I had previously been running DOSBox (an emulator*) on Windows7 running on VMWare (an emulator*) on my iMac.
*Is it emulation when it's all related Intel CPUs? I really don't know.