Read Me First
Here, presented in its entirity, is the first computer program I ever wrote:
10 PRINT “HELLO”
20 GOTO 10
It may not have been the most elegant or useful of programs (the only way to stop it flooding the black screen with white text was to reset the computer).
It may not even have worked first time - I seem to remember missing the quotation marks out of the first line and thus getting my first taste of the BBC Micro’s dreaded, unhelpfully ambiguous SYNTAX ERROR message. (I was in primary school. Cut me some slack.)
But it was a start. I wrote dozens of little BASIC programs like that for the BBC Model B (none of them much use for any practical purpose). I never got as far as doing a game for the Beeb because maths was never my strong point and, in those days, anything involving graphics also involved maths advanced enough to comprehensively boggle my pre-teen mind.
Then came the 16-bit era, to my mind the golden age of homebrew games. We traded in our BBC Model B for an Amiga 500 - a technological leap akin to going straight from a transistor radio to a colour TV. I cobbled together a text adventure in AmigaBASIC and dabbled with Shoot Em Up Construction Kit (a “game making utility” rather than actually a programming language, with predictably rubbish results).
The breakthrough for bedroom coders of that era came with AMOS, a souped-up version of BASIC that made it easy for the hobbyist to display graphics, play sounds and get input from a joystick. Finally, the ability to make proper games! A friend and I spent much of our early teens producing neat little public domain games, excitably riffing off each other’s ideas and ending up with a steady stream of titles that were actually not that bad, considering that we were two rank amateurs.
Then the Amiga scene withered away, and with it my nascent programming career. Life got in the way. With no formal qualifications in computing and no improvement in my maths prowess, I abandoned programming languages for the richness of the English language and became a journalist.
Meanwhile the era of the bedroom coder seemed dead and gone. Videogames made the leap to 3D and required ever-swelling armies of coders, artists, designers and musicians to create. Games development was no longer the realm of the hobbyist.
Just recently, though, the tide seems to be turning. Take Minecraft and Super Meat Boy, two of the best games of 2010. Both compulsively, dazzlingly playable. Both labours of love for minuscule dev teams (two guys worked on SMB, while Minecraft had just the one developer until recently).
Now, I’m not vain enough to think that I’m going to be rivalling their creations any time soon. I’m not looking for a change in career. But just lately I’ve been feeling the old itch again. Right now is the best time in decades to be an indie game dev, and I want in.
Only problem is I haven’t done any coding in more than a decade and the only language I’m fluent in, AMOS, is dead and buried. Time to learn some real skills.
This blog will chart my progress as I blunder headlong into the uncharted territory of “proper” programming, in a proper grown-up language: C++.
Any comments, criticism (constructive or otherwise), hints and tips along the way are more than welcome.