CC_Turrets1.jpgRealtime Games Software Ltd.’s Carrier Command was released in 1988 for the Amiga, Atari ST, PC, ZX Spectrum, Apple Macintosh, Commodore 64 and Amstrad CPC. The game is, more or less, a cross between an aircraft carrier simulator, and a real time strategy game, where the goal is to pilot the carrier around an archipelago of 64 islands in an attempt to colonise them before your adversaries carrier does. Apparently, there’s some sort of story about scientists making the two carriers, and one of them falling into the hands of terrorists, but it’s not really important.

The most amazing thing about Carrier Command at the time of its release was the ability to pilot different vehicles stored in the carrier: WALRUSes, the amphibious assault vehicles, and MANTAs, airborne attack planes. Plus, it was all rendered in glorious filled-in vector 3D and looked slick as anything.

Then there was the depth of gameplay – islands were through a supply network that needed to be taken in to account when colonising and attacking, enemy islands could be defended by autonomous drones, and the enemy was a hell of a lot faster than your ship. If you can get past the look of it, it stands up remarkably well, even now.

In January of 2003, Martin Bell decided to start work on a remake of the game, and started a workblog to document his progress, commenting in his first entry:

“Decide to finally get arse in gear and learn 3D graphics that I 'always wanted to learn'. Find that DirectX LPHURTSMYHEAD with SILLYUPPERCASEHORRIBLENESS, and decide to take the 'true and righteous' OpenGL path ;) Oh, and also decide on rather ambitious first project.”

Three and a half years later, he’s still going. GameSetWatch contacted him via email to find out how things are progressing, and to talk about how awesome the original was.

What inspired you to start work on the game?

Ever since reading the Amiga reviews and thinking 'what an amazing concept!' I've been kind of unhealthily obsessed with the game. At that time the Amiga & ST were out of my price range by a long way (£399 for an Amiga 500!), which probably only added to it's aura in my eyes. Around the early eighties, there were a series of magazines (I forget the name) that showed state-of-the-art renders of (probably really simple) geometry in 3D that just amazed me. A few years ago I decided to get my head down and finally learn how to create such 3D worlds. Carrier Command was the obvious engine for doing so. It also coincided with the birth of my son, so I was in an umm...productive frame of mind.

Did you ever play the sequel, Battle Command? I hear it was pretty bad.

I briefly played it on the Amiga - it looked quite nice (parachuting tanks!), but was a step back from CC in many ways - not really worthy of the title sequel. Off topic a bit I was influenced by Armourgeddon about the same time - really cool game but needed discipline to play it properly (a bit like CC really).

carrier_command_original.gifWhat is your experience with the original title?

I originally played the Spectrum 128 version first, which was an amazing achievement on such a diminutive machine. While pared down a little, some of the gameplay aspects were actually more refined than the original 16-bit versions, which was nice. When I finally bought an Amiga, CC followed soon after... the name Thermopylae will always remind me of a great battle I had, which confirmed my thoughts that the game was way ahead of its time.

It seems like you've had a few restarts on the project - did you realise the game was going to be so difficult to make when you started on it?

I knew there'd be difficulties - not being at all familiar with 3D mathematics was the main stumbling block. I've not actually re-started the project, just had to re-think some of the design decisions I never really made or thought about enough in the first place. Design is an iterative process though; the code is in a much better state as a result. My programming and software engineering skills have improved during the course of managing such a large project - it would have failed before now otherwise. The hardest thing to handle has been a few periods of self burn-out, where I was simply doing too much. I'd sit there willing myself to code something up but my mind was refusing to think straight - swamped with CC overload. While such fervour is probably required to see this project through to completion, it was ending up counter-productive. Just recently I've been amazingly productive by taking this into account and having more time out.

Early on, it seemed a lot of the problems on the project were related to your attempts at perfection in terms of collision detection and accurate damage representation - and especially physics modelling.

Yes my knowledge was severely lacking in those areas, hence the eventual decision to 'outsource' physics & collision to 3rd party engines. I suppose I do tend too much towards perfectionism sometimes, which can be a good and bad thing. Accurate damage representation is a personal bugbear. As I say on my site, this is a chance to put my code where my mouth is. It's safe to say that without the internet at this point, the project would have faltered badly. Thanks to a few key people and game development resources (mainly gamedev.net and the gdAlgorithms mailing list) I managed to finally get things done.

The whole project seems like it's been a huge learning experience for you - has this been one of the enjoyable aspects?

Oh yes - the learning was the main aim of the project really (that and try to get a job in the games industry, which it succeeded in doing). The old cliché surfaces - I wish I'd paid more attention at school – but nothing can beat ones own personal interest as a driving force for learning. There have been hard times, but I don't think I was ever going to give up - I'm too stubborn really. I've learnt to leave my code in a good state at the end of each day though!

Where are you working?

I'm currently working for Bizarre Creations - they of Project Gotham Racing fame. Xbox 360 stuff at the moment - quite similar to PC dev as it turns out.

Have you run into many problems that you didn't see coming? That is, are there things in the original game that you expected to be easy to include or emulate, but have turned out to be more difficult?

The original game used some clever mechanics to compensate for lack of processing power at the time. I don't have that luxury with today's gaming expectations. So really the main problems have arisen from bringing the thing more up to date. Proper islands (not squares!), physics, random world generation are the things that spring to mind. I can't comment on the AI yet though - that should be a challenge! I want to get the game mechanics as stable as I can before starting on the AI though.

On the other hand, have there been things that you've found easier to implement than you expected?

Umm no, can't think of any... I didn't really start with a preconception of how hard or easy it would be - I just began.

You had someone else helping with the modelling a while back; are they still on the project, or is it back to just you?

That's kind of ongoing, though he's busy with a lot of other projects. The code will take a lot longer than the models I suspect.

CC_BuoyancyForces01.jpgWhat's keeping you occupied with the game right now?

I've had some problems integrating the physics engine - I've just ditched the buoyancy functionality and implemented my own instead, which works much better for me.
Just checked out the state of fragment shaders again as I periodically do - they progress so fast I've been leaving graphical bits to the end. I'm also looking at writing some music too - it'll be strings and classical sounding judging by what I've come up with so far - trying for a Williams Fantasia theme without sounding too similar.

How is the AI coming along?

Funny you should ask - it's just beginning now with the Island defence AI taking shape. Not strictly AI I know, but it falls into that category nowadays. I have a large document with ideas for the main campaign AI - just have to organise them into something coherent for the next step.

A few years back you commented that you knew why the original game paused while travelling between islands, but you never actually explained why.

Ah yes, I believe that due to floating point limitations, the islands were separate 'localities' and all game entities were transferred to a new locality when travelling between the islands. I could be wrong though...

Finally, and I know you probably dread this question, but when can we expect to see the finished product?

I don't think it'll ever be finished! No really, I can see myself improving and adding things to it long after any kind of formal release. As to the question you really want answering, I'm not sure. The development has proceeded in bursts of inspiration followed by slower periods, also depending on my RL situation. If pressed, I'd say my milestones are:

(a) Alpha: Get the game playable by a single player + Island defence AI + graphics improvements (i.e. everything but the enemy Carrier).
(b) Beta: Get in the enemy carrier + campaign management AI.
(c) Possible: Networking?

I'd hope to make the alpha stage by the end of this year, but my predictions before now have been somewhat optimistic!

A networked game of Carrier Command would be pretty amazing.

Networking is firmly in the 'possibility' category, though given enough time...