Getting Into Games Development (Part 1)
July 26, 2017
One common question from people outside of the games industry, whether they’re students, contractors that we’ve had in to fix the air conditioning, or just a friend of a friend that overhears something over dinner, other than “can you get cheap Xbox games..?” and “do you play a lot of games?”, is “how did you get into the games industry?”. The games industry can be pretty damn hard to break into nowadays, particularly with the more prestigious development studios (such as our own), so we get pretty used to that question… I’m not going to go into the answer to that in this post, I’m just going to use this as an excuse to write a shortened self-biography… a very short answer to that question, though, would be “make something”. And I guess that gives me a decent excuse for writing this – as I will now bore you to death writing about “stuff that I made” :-p
The route that I took into games development was very different to what I’d expect for a newcomer in modern times – though the principles are hopefully similar. It shows how my childhood naturally lead into a career in games development. First, let me take you back to sometime around 1982…
The Commodores
As a child, I owned just three different computers… the Commodore Vic 20, the Commodore 64 (C64) and the Commodore Amiga. I have fond memories of each – but particularly, as for most people of the era, the C64.
Gaming was a little bit different back then… games usually came on cassette tapes. You’d put them into an external tape drive, type something on the computer (eg. ‘LOAD “”,1,1’) and manually press the play button on the drive… sometime between 5 minutes and an hour later the game would be ready to play. Buying the games was as much fun sometimes as playing them, you’d head over to the games shop, browse hundreds of covers, talk to the shop owner possibly about which games were better… and sometimes, if the shop wasn’t too busy, you’d have a chance to try the game out first. Prices ranged from £1.99 (“budget”) to £9.99 usually…
Magazine Listings
Kids of today wouldn’t believe this – of course – but another, cheaper, source of games was to type them in yourself. Computer magazines would often include games within their pages that you could type into your computer and play. The games were typically very, very simple – but the fact that you’d typed it in yourself made them feel better. The screens for the games were often just sets of PRINT commands with the layout right there in the listing. The sprites and graphics for the game would be a series of DATA statements. What’s fantastic here, though, is that it gave a very early glimpse into modding – you could change lines of the program to alter the levels, the graphics, change the speed of the balloon that you were piloting, etc. It was all just incredibly easy – and gave a very easy way to get started on making games for children at the time… computers back in the 80s were incredible for this – from the moment you turned them on, you were practically invited to start programming, it was just so easy to get into.
Cheats, Pokes and Zzap!
In 1985, a gaming magazine called “Zzap! 64” launched. I bought the first issue and, for several years after, collected every single issue.. It was, along with it’s ZX Spectrum counterpart (Crash), a little unique back then as the reviews tended to be completely honest – the editors didn’t care whether a publisher had paid for a double-page advert in the magazine, if the games being reviewed were rubbish, they’d award them as such, regularly giving games well below 10% scores. One of my favourite features of the magazine, though, wasn’t the reviews – it was the tips/cheats section, where you could learn how to gain unlimited lives/health and suchlike, either legitimately (through a key combination hidden in a game, a name that you’d need to enter into the highscore table or otherwise) or by “hacking” a game by using “pokes”… “poke” was a BASIC command on the C64 that simply allowed you to alter memory contents – so, just as an example, a game’s code would likely have one place where the player’s life counter would be decreased… by changing that “DEC $C011” to “NOP NOP NOP” (NOP = “no operation”), you’d never lose a life. You’d still die and perhaps need to restart the screen or level that you were on – but you’d never see a “GAME OVER!” screen ever again. Because, yeah, games were cruel in those days – save points were rare and, once you’d used up the 3 lives that you started the game with, you’d often have to start the game again from the very beginning.
Anyway, there was usually a delay between a game being released and the magazine printing a poke for it – so I started to look into how the pokes worked, looking at the disassembly of a game and learning how little bits of it worked… that was my first foray into assembly language programming and would quickly become an addiction. Expansion cartridges for the computer – such as the Expert Cartridge, my particular favourite – allowed you to stop a game that was running, analyse the screen contents and code, make alterations and then restart the game. Very importantly for cheat-making, it allowed you to search for certain things in memory and to record the location of them… to make an unlimited lives cheat, you’d look at the number of lives that you had at the time (let’s say 3 for this example), search for all occurrences of that in memory… go back to the game, lose a life, pause again and search for 2. If you had more than one occurrence you’d repeat and search for 1. That would usually be enough to give a definite hit on where the life counter was stored in memory… the final searches would be to look for code that modified that memory location – one part would set the initial value to 3 (you could increase that to 255 for a “255 lives” cheat), another might decrease it (as above, replace that with NOPs for “infinite lives”) and another might increase it (you should also disable this perhaps – otherwise you might lose all your lives through overflowing the 8bit register!).
Pretty soon, I was writing cheats for Zzap! myself, filling their pages with pokes and assembly listings that would allow other gamers to “cheat”. At one point, for about 6 months, I was “working” for a magazine, making cheats and pokes for almost every game that was released on the C64 – they paid me only by sending me copies of the latest games. I’d get the games on the day of release – and often before – and would have cheats sent back to them the next day usually… they were exploiting a teenager, perhaps, but I enjoyed the challenge – and I started to understand more and more about the inner workings of the computer.
Cracking, Piracy and Copy Protection
During my time making cheats for games, game developers were facing problems for children mass-copying games at home. Tape-to-tape devices were used to make “backups” of games and these backups were finding their ways into the hands of their friends, and then their friends, etc. Developers had to fight back – they did this by implementing anti-duplication code. Tapes were recording using analog technology – so a copy of a game would never be identical to the original, there’d be fluctuations in the waves recorded onto them… copy protection systems basically meant that cheap home copies of games would be unlikely to work… copies could still be made – but tape-to-tape duplication became much harder and required hardware that most couldn’t afford.
Copy protection systems made it harder to write cheat for games, too, as if you could stop a game, poke it and restart it, you could have just “saved” the game at that stage too – which would’ve been a simpler way of copying it than tape-to-tape. To inject a poke into a game, we eventually needed to write complex programs that would hack into the “loading system” for a game, which the copy protection system would be part of, having it call back into our own code once the loading of the game had finished – and allowing us to apply our cheat at that stage.
My friends at the time were complaining that their tape-to-tape copy systems weren’t working any more … so I’d help them out sometimes by getting unprotected copies of games for them. Rather than applying a cheat at the end of loading a game, I’d instead just jump into code that would save the game out – with all of the copy protection schemes removed. It was a very easy next step – and everything that I’d learnt from making cheats simply lead into that.
Demos, DYCP’ers and Genesis*Project
I was getting pretty burnt out – at the age of 15 – from all the hacking around games… I heard about something else from some of my friends, something called the “demo scene”, so I started to look into that. Reading an advert in one of the games magazines, there was somebody in Liverpool that I could send disks to that would copy games and “demos” onto and send them back to me. At no cost. He was a member of a group called the “Scouse Cracking Group” (SCG). Off my disks went and, a couple of days later, they came back – the same stamps that I’d put on my parcel came back, sellotaped over (ie. the naughty Scouser was cheating Royal Mail and getting away with free postage). I loaded the first disk up and was amazed – I saw my first demo at this time and realised that this was what I really wanted to be doing… the demo was doing stuff with the computer that I just didn’t know was possible… colours, characters and sprites flying around the screen, animating in ways that Commodore (makers of the C64) hadn’t intended for the machine to be capable of doing…
Pretty soon, I was making demos myself. Usually, I’d see something that somebody else had made, recreate it myself, get someone to make some graphics and/or music for me… and I’d send this off on disks to my growing list of “friends” (contacts). As I got better, my list of contacts would grow… I’d be sending disks off in little parcels all over Europe – Germany, Sweden, Austria, etc. My stamps would be returned, along with new disks, and I’d in return send disks off and returning the sender’s stamps to them as well… this was our “internet” and how we would publish demos across the world. I’d receive (and send) games in a similar way, at first, but I quickly gave up on that side of it as I was enjoying making – and watching – demos too much.
As my programming skills improved, I was asked to “join” other groups to make demos for them – going from SCC (Silsden Cracking Crew) to Pyrotech, Excess, Rough Trade Incorporated .. and eventually settling at Genesis*Project. My name was “Raistlin” (a character in the Dragonlance books which I was reading at the time) as, like TV and movie stars, demo coders preferred not to use their real names (ignore the fact that most of us would quite calmly give everyone our home address – it just wasn’t a concern back then…). I made a lot of demos, probably too many, and really enjoyed this – despite not actually making any money from it.
As an aside, I did some more “serious” programming at this point too… I was about 16 years old, “studying” for my GCSEs, and really wanted to have a better TV and sound system for my room… I wrote a few programs for a magazine called “Commodore Disk User” and was amazed when they accepted them – and paid me. Over a period of around 6 months I had 7 or 8 of my programs published in their magazine, earning between £150-250 for each. More than enough to buy myself a big screen TV, hifi music system, surround sound speakers and even a little sofa to enjoy it all from. Each of the programs I made took about 3-4 hours’ work – including writing the documentation – so my hourly rate was pretty amazing, especially for 1990-91. A couple of my programs actually made it onto the front cover of the magazine – such as my ‘2×2 Character Editor’, seen here:-
This all continued for a few years until I was getting ready to go to university – Delirious 10 was my final release, in July 1991, just 2 months before I’d start my BSc Mathematics. I was very proud of this release as I’d gone all-out to beat a few “world records” on the C64 scene… I had the most “BOBs” (Blitter Objects, a term coined from a feature of the Commodore Amiga – one that could only be simulated on the C64 as, well, it didn’t even have a “blitter”) on screen, for example, which was an especially proud moment since I was also drawing these into 32 multiplexed sprites so that I could render them on top of a hi-res multicolour picture (nb. I used self-generating-code so that I could absolutely maximise performance – every single clock cycle counted on the C64)… demo coders were very competitive in those days – so I’d call out other demo groups that had attempted to set similar world records.. I don’t think I went as far as to call them “lamers” (a common put down at the time) but I did try to show off just a little…
All of this was very “formative” for programming in the games industry as making demos at the time was more about trying to squeeze as much out of the hardware as possible (and, usually, less about design)… along with trying to find hardware tricks to make the machine do things that it wasn’t really supposed to.
*DYCP (Different Y Character Position) was a particular demo effect that involved the drawing of characters, usually from a scroll text, at different Y coordinates across the screen… you’d typically text scrolling from left-to-right with each character moving up-and-down with a unique y-position in a sine wave.
The University Years
I made the conscious decision to leave my C64 at home when I started university … I’d spent so many years programming and hacking away at my computer that I’d missed out on all the drinking and parties… “Demo Parties”, where you’d go off to an old school hall somewhere and show off your programming skills to a room of other geeks, weren’t really the same… I decided to use university as a bit of a “reset”. So, yeah, 1991-1994 were my serious years… drinking, dancing, falling over in the street before even getting to the bar, looking at a toilet bowl of interesting colours after drinking half a bottle of whisky … yeah, these were the good years
There was studying too, of course, as I somehow managed to make it through with a decent BSc (Hons) in Mathematics.
Job Applications (And Interviews..)
With university finished, I sent my CV and results off to banks, accountancy firms and finance companies… fully expecting that I’d achieve my “dream” career of becoming an accountant.
Brought back down to earth with a mountain of rejection letters, from the ones who could be bothered to reply, I headed off to McDonald’s in Leeds – they were interviewing for an Assistant Manager position. Sure, I was aiming a little lower than I’d originally planned – but what could possibly go wrong?!? It was the summer of 1994 and I was as keen as a mouse in a cheese factory to get stuck into work and earn some money.