You may remember that this is the talented fella behind seven Atari ST games for HiTec and Virgin Mastertronic? His final two games were absolute knockouts: Alien World is a shoot 'em up with frenzied action. Whereas Scooby-Doo & Scrappy-Doo is...well... a new personal favourite of mine. Terrific games!
So, I thought it might be an idea to track down this fella and have a chat about his history? I found him interesting, especially with regards to his upbringing - like the need to get two paper rounds to afford a Commodore 64. A humble start, for what was about to be the beginning of a very special career. My sincere gratitude to Gary for taking the time out of his schedule to answer all my questions and I hope you all enjoy the interview?
However, I must admit that I almost censored his photograph... Hmm, I can't think why! ;-)
Hello Gary, please tell us about yourself
I got interested in games at an early age. I was probably around 8 or 9 when I first saw and played Space Invaders. This would have been when we were on holiday and in later years my parents took us to Butlins and I remember visiting the arcades lots to try out all sorts of other games. This was only once a year though and as I grew older I became aware of home computers starting to become popular. I remember looking through the Argos catalogue and flipping between the Spectrum and Commodore 64 and dreaming about owning one of those machines.
We were a working-class family though, my dad worked in a steel mill and my mum was a cleaner at the local college. The C64 was just too expensive. However, my mum made me a deal: if I could save enough pocket money to pay for half of the C64 then they'd get me one for Christmas. I was already doing 2 paper rounds and had saved some money so after about a year of saving that I had enough and my folks bought me a C64 for Christmas. I think I was about 13 at that time and this was the start of a life long passion.
I spent loads of time playing games, swapping tapes with friends at school as kids did. I was always curious as a child and would take things to bits to see how they worked. I also loved building things in Lego and Mechano, so I think this curiosity and creativity lead me down the path of wanting to create my own games. It was hard to get started though, I tried Basic but it was too slow. I used to type in pages of listings from magazines but often these were just data statements and told you nothing of how to program a game.
The programming bug was about to be born...
I was aware that real games were written in machine code but had no idea how to do that until one day I came across a basic listing for an assembler. This gave me a route to trying out and learning to program in assembly. The only problem was you had a limited number of lines before it ran out of memory. I then saw an Action Replay cartridge advertised in a magazine. This had a machine code monitor and disassembler, so I saved up more paper round money and bought one. I would then type directly into memory in hex and disassemble the code to make sure I had done it correctly. This was the start of my proper programming days and I was able to experiment with writing scroll routines and moving sprites around the screen...
It was hard though and I had a love/hate relationship with coding initially, getting frustrated and going back to just playing games, then really wanting to make my own creations and coming back to programming and trying again. I wanted to do so much but just didn't know how to. All I had was a C64 reference manual, an Action Replay cartridge and my own creativity. Looking back on it now, writing directly in machine code is pretty cool given my age at the time. To this day I still remember some of those hex opcodes!
The next few years were spent on and off between playing games and trying to write them on the C64. I'd often get partway through a game then have ideas for another game and start working on that instead. Actually finishing a game can be the hardest part of it.
I left school and went to college to study programming. Unfortunately, they dropped that just before it started and put me on a business course instead, boring!!! Fortunately, they had a great careers advisor and after a few months, she secured me a work placement at Alligata Software. After 2 weeks they offered me a full-time job!
What was it like working for Alligata?
At Alligata it was pretty standard. I started as a junior programmer helping out on a C64 game doing things like the intro, high score table, music and sound code. I had access to an assembler rather than doing everything in hex. We assembled from a tape which took about 20 mins and sent the game over the parallel port to another C64.
I later moved to programming the Amiga and we used GenAm to assemble the code and ran it on the same machine. This was a bit time consuming as you'd take over the operating system so you had full control of the machine and all of the memory. So you had to reboot and reload everything after each run.
Onto PAL Developments...
Where things got more interesting and unusual was later in my career when working for PAL developments which published games though Hi-Tec Software. We built our own development system from the ground up. I wrote almost all of the software so I created assemblers for different chipsets (6502, Z80, 68000) and we connected to different machines using parallel cables. I wrote a text editor, disassembler, machine code monitor and communication software on both the Amiga and ST. We could then send over and run the code on the C64, Spectrum, Amstrad, Amiga, ST, MSX and then I later altered the Z80 assembler so we could write Gameboy games as well. It was a similar chipset to a Z80 but with some registers and instructions missing, so we called it the Z40 internally.
We had to build some specialised hardware as some machines such as the Spectrum, Amstrad, MSX and Gameboy didn't have a parallel port, but an electronics wiz (Ian) from Alligata built those for us and wrote the comms software on those machines. This was a huge time saving for us, no more rebooting after each run, just sending it over the parallel port and running it on the target machine.
That was just one part of what was needed. I also wrote map editors, tools for cutting out sprites, placing objects, creating collision data, full-screen animation codecs... I think the only commercial software we used was DPaint. It's not like today, there were no engines, few commercial software tools, you built everything yourself.
A do-it-yourself world?
As I mentioned we built our own development system and I wrote most of my own tools such as the map editors. These would also get refined with extra features added each time we made a new game, so there was a gradual improvement over time.
I think I used the ST as my editor/assembler. We used a standard 520 ST and an Amiga 500. For the graphics then Richard Morton would draw the blocks and sprites in DPaint and then import these files into our editors. The editors would then cut the blocks up, pull out the sprites and palettes and then he could go about creating the map files for the levels and then save these in a binary format that I'd use in the game.
For audio, I wrote a tracker player and we'd outsource the music. It's so long ago that I can't remember how we did sound effects, I think for the ST, maybe I did those myself with a little editor I created to define the sounds we played? It’s so long ago I really can’t remember!
A very different world?
I guess when I started at PAL it was a step backwards. Alligata was a bigger company with more people located in the same office working together. PAL was just me and another programmer Richard Stevenson in a back room of a small office building. It really didn't matter though as I was doing what I loved which was writing games.
Over time the team grew and when Hi-Tec was set up then there were more opportunities to do slightly larger and more challenging games. The atmosphere improved as well as you could discuss ideas with other coders and artists, chat with the team who created the box art, did the publishing and the advertising.
The early games for Mastertronic were written in a matter of weeks, maybe a couple of months. As my programming skills developed and PAL / Hi-Tec became larger then the games became a bit more ambitious and took a bit longer. The longest title in development was Scooby & Scrappy Do, which took about 6 months for the Amiga and ST.
You appeared to master the Atari ST so quickly?
I think there are a number of reasons the games got better. I certainly got better at programming. Going from the 6510 in the C64 to 68000 CPUs was a big step up and the 68K was just fantastic to code for. 15 32bit registers and a feature-rich instruction set, it was just a dream to use.
In the early days, we'd outsource the graphics as well as the music and the games were much simpler. As the company grew though, Richard Morton joined us and we worked together on pretty much every game I did from that point onwards. That teamwork made a big difference to the quality of the games and ideas we had, it was very collaborative and a really enjoyable time in my career.
As the standard ST didn't have much in the way of hardware then horizontal scrolling was one of the big challenges. The CPU just isn't fast enough to software scroll the full screen and render sprites at a reasonable framerate. We worked out a technique though which I called pairs scrolling. I'd look at adjacent blocks that were scrolling on to the screen and pre-shift (software scroll) these into a cache. I'd do this for the whole scroll area and when I came across 2 blocks that were already in the cache then I could directly copy them to the screen rather than having to incur the slow cost of shifting and combining them again.
I think this is probably what you're seeing with Alien World and Scrappy that makes a big difference, along with improved sprite drawing routines that I optimised over the years. It's all about counting the number of CPU cycles taken and looking for ways to optimise the code to get better performance.
Who inspired you?
Initially, my inspirations came from C64 games as that was the machine I was using. Tony Crowther was a definite inspiration, he produced many games I played as a kid and I met him a few times when I started in the industry. I used to read Zzap64 every month and you'd learn the names of the more prolific programmers. I loved reading the programmer diaries and Andrew Braybrook made a big impact as well. Paradroid and Uridium were favourite games of mine and reading about how these were developed drove that internal craving to make my own games.
Archer Maclean created some amazing games as well, Dropzone and IK+ on the C64 are fond memories. I was actually playing Dropzone at the Cambridge Computing History Museum last year showing the game to my son and who popped up behind me to watch, only Archer! I’m not sure how I knew it was him having never met him before, but I did. Anyhow, we had a long chat and it was great to be able to thank him for the influence he and his games had on my life, which ultimately helped shape me into the person I am today.
We were always trying to make better games and we'd often look at arcade games for inspiration too. You can see it in a number of the games we produced, Ikari Warriors gave us ideas for Blazing Thunder, R-type for Alien World, Space Harrier for T-Bird / Futurebike and there were a whole host of platform games that gave us ideas for Scooby. I was a big shoot-em-up fan and we still visited the arcades occasionally. I remember on one trip out Dave Thompson completed Space Harrier on a single credit, pretty good value for just 10 pence!
Any inspirations from the demoscene?
I remember looking at demos early on with the C64 and later on the Amiga and ST. It certainly had an influence on me when trying to program. How could they get more than 8 sprites on the screen when that was all the hardware supported? I then started to experiment myself and wrote little C64 demos with bouncing raster bars, opening the borders and some basic sprite multiplexing, although it wasn’t very sophisticated. Hey, I was still a kid!
Writing the title and high score screens for a game can be a bit of a bind as they tend to come late in development and you’re pretty tired by this time. As I mentioned earlier, finishing a game is really hard. I think some of the things I did was just to make the title screens look a bit different, and to give myself something enjoyable to do!
There are some great demo coders out there and I’ve worked with a number of them over the years, especially at Core Design. Coders from that era were always looking at ways to push the machine, whether that was doing things the hardware wasn’t designed for or meticulously counting CPU cycles to optimise your code as well as you could. I believe this attitude has helped me over the years. If you look at Killzone Mercenary on the PS Vita that game really pushes the boundaries of what is possible on a handheld device at that time. I was the engine lead and the brief was to produce a game that looked like a PS3 title. That was a lot of hard work and performance analysis as the PS3 is a beast when you fully leverage the SPUs, so it’s massively more powerful than the Vita! It was a struggle getting so much out of that machine, but I think we did a really good job in the end.
Any spare time left to play a few games?
Unfortunately, I don’t get that much time to play games these days as family life doesn’t leave me with lots of spare time. I can’t say I’ve booted up any of my old games over the last few years. I don’t have the time to invest in large games but I do have a Switch and I do like to look at some of the indie titles that are out there.
I also take my kids to the Cambridge Computing History Museum quite often so I get to play some of the older games and it’s a great day out. My wife isn’t a gamer though so she thinks it the most boring place on the planet!
Looking back, any regrets?
I’m not sure really. I’ve had a long and varied career, worked in many different studios, cities and sometimes other countries. Everywhere that I’ve worked I’ve met interesting people and have gained some life long friends. Even when things have been tough, if you look back you can usually find something positive from the situation. Programming and especially writing games is a life choice; you’re choosing to have a life where you continually learn. You have to otherwise you just can’t compete and the games industry is a very competitive place.
Would you say that times have changed for the better?
That would be quite a long answer but you could put a link to my The Centre for Computing History video here if you like? Which is a superb idea because this is a very interesting video and an eye-opener - Steve.
What are you doing these days?
I guess a lot has happened since the early 90s. I’ve worked on most platforms since the 16bit era, all of the Playstation platforms, N64 and PC. I’ve worked on some well-known titles - Tomb Raider, 24, Medievil, Little Big Planet and Killzone to name a few. We pushed the boundaries of what was thought possible in VR with RIGS on PlayStation VR. I’m no longer in the Games industry these days though. When Sony decided to close the Cambridge Studio I decided to try something else. I’ve been made redundant 5 times in the games industry due to companies going into liquidation. Most of those times finding a new job had meant moving to another city as well. This isn’t something I’m prepared to do anymore now that I have a family.
I do miss writing games but what I miss most is the creative side and teamwork. I don’t miss the stress, pressure and unrealistic expectations from publishers, massive teams where you’re a tiny cog in a huge machine. I miss the small team vibe, pushing the boundaries of what you believe can be done. I occasionally tinker around on an emulator and have been writing a Uridium style shooter on the C64 but I’ve had to put that on hold since the pandemic started. I’ll look at this again during some of my holiday time when I don’t need to focus quite so much on my work life.
I now work for Arm in Cambridge who designs chips and you probably have several of these in your phone, tablets, smartTV and other devices. I lead a team that looks at GPU performance when running general-purpose compute on those devices, so languages such as OpenCL and Vulkan compute rather drawing graphics using vertex and pixel shaders. With advances in technologies such as Machine Learning and digital assistants, more of this processing is moving on to mobile devices rather than being run in big data centres in the cloud. This is where being able to run general computing workloads on a GPU, rather than just rendering graphics, becomes ever more important.
It’s very different to working in the games industry, but challenging in a good way and my skills with pushing the boundaries of performance come in handy. I’ve worked at many places before but I’ve never known any company to care about its employees as much as Arm does. They’re very open with their staff, promoting a sharing community with learning and development as a pivotal part of the job, so this suits me well.
Thanks for getting in touch Steve, it’s been quite a trip down memory lane!