The dreaded ‘T’

During the short time that I’ve been writing articles for this site, I’ve tried to avoid getting into a full blown rant about whatever subject I happened to be writing about at the time, for the sake of you, dear reader and your innocence. I do not wish to drive anyone away from the site because they happen to passionately disagree with me on something, or because they’ve suddenly found it incredibly hard to locate anything useful amongst the abuse being channeled through this particular media. I’ve tried to prevent articles coming across as an incarnation of my own personal vendettas against the things have got in the way of games development over the years.

However, this time, I’m afraid I will lose the fight despite my best efforts. The beast that is the subject of this article is one of my least favourite things and my feelings will flow throughout the next few paragraphs. For that reason I strongly advise anyone of a nervous disposition to use your back button and find a less aggressive article for your reading pleasure. Thank you.

Theories! I hate the (insert your own expletives here) things! The amount of times I’ve had to stop coding to listen to someone’s (yes, that’s you John) brand new idea that’s going to require you to re-do the whole engine just to find out that it didn’t work after all. They’re just stupid! Stupid, stupid, stupid!!! What a waste of time. Yes, they sound sensible first time out, yes, it’s all plausible and like it might well work when you first hear it, but invariably they don’t.

The time when they usually first rear their ugly heads is when you’ve been busily working your way through coding each and every feature required by your latest creation, only to find yourself stuck on one particular thing. It’s usually nothing major, just a little snag that’s going to slow you down a bit, but because you’ve got a headache and haven’t slept for a while, you try airing your concerns out loud. It’s not that you’re after reply as such, the question “How the bloody hell am I going to do this?”, is usually more rhetorical than anything, but once you’ve said it, it’s out there and you can’t take it back. Whoever’s sat nearby realises you’ve got a problem and they want to help you get through it in order to get the game back on track. They’ve got the best of intentions, this is true, but the problem is that they haven’t got much of a grasp on how you’ve done everything up to that point and as a result, they don’t realise how much they are asking of you when they say, “Why don’t you do it like this…?”.

Suddenly your brain is clouded. Maybe everything you’ve done up to this point has been in vain, maybe it’s all been one massive mistake from start to finish. What were you thinking?! You’ll have to start over, but you can’t, you’ll just have to dive in and try and ressurrect the poor creature. So, you start coding whilst half listening to the latest theory that’s going to solve the problem and then the cloud lifts and you realise all too quickly that it’s bollocks. It’s never going to work, you’ve just reworked half your code for nothing and you’re now pretty much lost, with code that’s half of one thing and half of another. You’re even more tired and your head is burning. Panic sets in just in time for you to hear the immortal words, “Ooh, I’ve had another idea, how about this?!”.

Once coding has begun on a particular feature, it should not be interrupted by anyone’s latest theory, no matter how wonderful it seems to be at first glance. Mark my words, it will only lead to misery, headaches and alcoholism. The worst offender of our back catalogue occurred during the development of Zip n’ West in Flash MX. Some features had more theories than I’d had hours sleep the night before, some went well in to double figures. At home I have folders full of scraps of paper with titles along the lines of “Collision theory #27″. I’m not sure we ever did come up with one that worked as well as we’d have liked.

It wasn’t all bad though, in amongst the hundreds of theories were some elements that would become invaluable and when viewed with a clear head could have directed us towards a very well made game, but unfortunately something else got in our way. That’s for another article though. For now, just heed my words, theories should be resigned to the time prior to coding, once you’ve started try and stick to your own tried and tested techniques.

There you go, I feel much better now.


    this is where prototypes come in!

  • ..and source control for that matter!

  • You can’t make 27 prototypes every day!!

Leave a Reply