Matthew Gatland

Rewriting Takedown

August 05, 2013

I wrote Takedown while I was at high school.

It only worked in Windows. These days, I often don’t have a Windows computer nearby. I thought it would be fun to rewrite the game in Javascript, so that it can run on anything.

What went right

It was fun rewriting my old code. It was a bit like peer-programming with my younger self – a person who was endlessly enthusiastic, though extremely inexperienced.

Reusing old assets and content led to some satisfying moments of rapid progress – like when I got the level loader working, and suddenly had 10 levels to play with.

Changing things

Initially, I wanted the new version to be identical to the original. It uses the original art, sound effects, levels and storyline.

But I did allow a few changes. The original control scheme was terrible; you could move in any direction, and fired in the whatever direction you last moved in, unless you were holding shift which locked your rotation – it was complicated and no-one liked it.

I replaced those controls with a 2-stick shooter style setup where your movement direction and attack direction are independent.

I also couldn’t resist fixing spelling mistakes, making the hardest missions easier, and adding autosave. Do you remember when games didn’t autosave? It wasn’t just me and Takedown – even the triple-A games of the time didn’t have autosave.

Despite the autosave, it still mostly looks and feels like a Visual Basic game from 2002 by a 16-year-old.

Cool! That was the goal.

What went wrong

It took a really long time.

After a week, I started to feel depressed. Why am I doing this? This isn’t helping my business. This isn’t making me a better designer.

My younger self added a lot of features to Takedown. If I’m 10 times faster, I’m also 12 times less patient. I left out any feature that wasn’t used in the main campaign – then also left out a few that were used.

This means the Javascript game will never be a full remake of the original game. The missing features include:

Scripting

I made the new game compatible with the original mission file format. This forced me to support all my old ideas about mission scripting.

For example, there’s no concept of a collectable item in Takedown. Instead, you simulate it as follows:

It’s cool that the new game supports the original mission files. But if I rewrote the mission scripts, I could get rid of a lot of awkward scripting hacks.

Conclusions

I’m happy that Takedown lives on the internet now and everyone (who uses Chrome) can play it.

I feel guilty about spending so much time on this, and embarrassed that I don’t have any other new games to show people.

But maybe there’s an audience out there somewhere who will discover this game and enjoy it. Maybe people who are nostalgic about awkward, early Windows games?

(Whatever happened to Comet Busters, anyway?)