The more I "see", the less I know.

5 July, 1998

    Phew! I know I always kick off these diary entries with some lame excuse about work (I mean, I’m at university for God’s sake - who am I trying to fool?) but the last fortnight has been exceptionally frantic. No sooner had I handed in my last piece of work for the term (whoopee!) than I started work at the British Survey of Fertiliser Practice (oh). At least I managed to blag a 5-hour day, thus enabling me to start at 8 in the morning (not too bad as I can walk there in 5 min) and finish at 1 in the afternoon - no wasteful lunch breaks, y’see? Not only that, but I finally got down to some serious coding this week: like a man possessed, I have been cleaning up my old (sloppy) code, and rewritten most of my experimental "learning" project, AMATEUR WARS, from scratch. Currently, it’s still a few days from being finished but after spending a good many hours getting the lasers working properly and fiddling with the controls I can honestly say...

    Well, what CAN I say? I have to confess - it plays like a dog. It isn’t really that much fun at all in my opinion (or, I suspect, in anyone else’s). Yes, the code does what I tell it to (more or less) and the ships aren’t entirely crappy looking, but that doesn’t make it any good. The background is slightly dodgy, but that isn’t the problem either. It just has absolutely NO imagination, no art, and no soul. It is purely a technology demo, and not a particularly impressive one at that. As a showcase of my programming skills so far, it makes for a profoundly depressing experience. It might have looked good on paper, but there are several crucial elements missing; for example, I haven’t bothered with a scaling system for moving the sprites, and they currently glide entirely free of inertia (in an astonishingly-limiting 4 directions of movement). The lasers (as yet) fail to obey the laws of physics, and although it took me an AGE to figure out how to get them to do what they currently do (i.e. fire in a most dull and unoriginal manner) I am stunned at how bland the final effect is. No excuses - I have to look myself in the mirror and say "My first game is crap."

    So, what have I learned since I last wrote in this diary? Well, I’ve got the hang of pointers and structures, and I think I understand a lot of stuff better than I did before. I felt I had improved so much over the last week that I tore apart ol’ AMATEUR WARS a few days ago and rewrote it to be less confusing to a) me and b) those newbies who might find it useful (is that possible?) I even worked out the laser-firing functions on paper (you should have seen how badly messed up they were at one point) before trying to integrate them. Yes, I was that organised. But, all this programming stuff is incidental - what I’ve come to realise is that whenever we download someone’s game or demo, or have a peek at their public source, we are usually viewing the FINISHED PRODUCT(tm). It works. It is clean. It goes well. Yet, the process of writing games (indeed, writing anything - but games are pretty complicated as far as I can tell) is full of mistakes, pitfalls and unforseen bugs that leap out and mess up everything. Grrrr! We don’t usually get to see the evolution of other people’s programs - we see the spit-and-polished show version.

    Now, I’m not some naive games junkie who picked up a magazine, read about Net Yaroze and thought "Kewl, I can do that!". I knew learning C, learning how to apply it to the Yaroze, and then writing my own games would be a slog. But, at the same time, I can remember seeing James Rutherford’s early, unreleased demos (see diary entries passim) and thinking "Wow. If I could even do THAT I’d be happy". Well, I’m not at James’ level back then yet (tho’ I’m certainly getting closer and closer every week) but I think I won’t be happy even when I AM there - I think I’ll be looking at the guys who are still way ahead of me (and that’s most of you) and thinking "I want to be able to do THAT". And hey - even if I get there, I’ll end up looking at ‘proper’ commercial games, wistfully dreaming "I WISH I could do that..."

    So where does it end? When will I be happy with what I can do and give up wanting to be the best? Or should I always aim to be the best? Or should I stop treating this programming lark like the scoreboard in ‘Top Gun’? Right now, my main driving force is that I know I can get better - a lot better, in fact. It’s actually really great noticing how much better I’ve got in the last week, but what happens over the long term? Will I keep improving or will I ‘plateau’? Will I create a storming 2D GDUK entry only to embark on my next creation and discover I was born with the "unable to understand 3D maths" gene? I think that I get too hung up with the technical side of things - the problem is, the more that I see other people’s code and understand bits of it and the things they do, the more I realise that I don’t know diddly-squat in the big picture of grown-up games development. That’s quite a depressing thought, and the main reason I sit here typing out dubious code (and swearing loudly at 2 in the morning when it quite rightly goes belly-up on me). But there’s only so long you can keep putting "yet" at the end of sentences. Sentences like "I’m not good enough to work for Rare... yet".

    I’m not actually that bothered by this damp patch - I knew I’d get this feeling at some point, and I’ll probably get it again. This is going to be a short, bitter diary entry because, right now, that is how I feel. I think at times this diary is a bit happy-clappy, and it needs a bit of ‘edge’ - a bit of 1970’s urban realism, a gritty docu-drama life-on-the-street feel, if you will. Right now I feel a bit defeated, and I don’t really have much fight in me, but on the whole this Yaroze lark is great fun, and I’ve not had a regret since I got my machine; it’s just hard bloody work!

    Enough of this moaning on - I need to get s_amawar.gif (16621 bytes) finished (as much as I want it to be, anyway) and get a move on with my GDUK entry. And I think I’d better hurry along with looks like I’m going to have to make some time for getting that ‘playability’ element just right. Roll on the next diary entry!

Next page?

Or return home?