Monday, May 12, 2008

My Year As A Video Games Programmer

I got a blog comment on my other blog last week asking for information about a video game I worked on back in 1987 and that whole episode in my life came rushing back to me so I thought I'd better get it down before it fades from memory.

The Tube posterEarly in 1987, I was made redundant from a company called MacSerious Software when they decided to drop their Apple hardware sales force. That's another part of my life that I won't go into here but on a speculative visit to the local Dumbarton job centre, I noticed a card advertising for an experienced 6502 programmer. I wasn't expecting to see anything like that in there so I reckoned it was some sort of karmic intervention as I had indeed done some extensive work with the 6502 processor, which was what was in the Apple, Commodore and BBC computers of the time. Since I needed a job to support my wife, three-year old daughter, new mortgage and a car it was worth checking out.

The job was with Gannon Designs in Alexandria so I called, got an interview with the M.D. Martin Gannon and basically got the job on the strength of my previous work. I had absolutely no experience of games coding and was completely self-taught in 6502 assembly programming but I had done a lot of work on it, writing stuff like experiment process control and analysis on the Apple II and an image analysis suite for the BBC Micro, had several articles published in an Apple II focused magazine and had a bit of a hobby in removing the protection from Apple II games. Anyway, getting into video games was probably every programmer's dream at the time so I jumped at the chance.

Martin Gannon had been a fireman who, rather than spend his dead time on duty sleeping or playing cards like the rest of the watch, began programming games on the C64 and Vic-20 computers. He turned out to be a bit of a computing prodigy and even had a game out for the Vic-20 before the technical manuals had been released by figuring out how the video chip worked himself. He left the fire service when Argus Press M.D. Stephen Hall recognized his talent and pushed him to set up his own games development team and do work for the Quicksilva and Grandslam labels. Martin's first words to me were " Hi, I'm Martin! Bye the way, I've got a medical condition that makes me break wind a lot from both ends but it's not smelly so please don't be put off by it. So, you've done some 6502 coding…" and I knew were going to get on well.

Pac-Land posterGannon Designs was based in a small industrial estate behind the ex-torpedo factory in Alexandria and, unlike the bigger developers, was just a little office and a single programming room. The building we were in was pretty anonymous looking, which was pretty sensible if you know the Vale of Leven area. If the local wildlife had got a sniff that the place was full of home computer kit, then we'd have been turned over quickly and regularly. With five of us and all the computer kit jammed into that one wee room along with a Pac-Land arcade machine and a fancy coffee machine, so began my introduction to the world of games programming.

Things were definitely looking good. We had deals to do the Pac-Land and The Hunt For Red October conversions for the Commodore 64, Sinclair ZX Spectrum, Amstrad CPC and Sony MSX systems. Martin was working on a game of his own design called The Tube, a sort of mixed-mode space shoot em up and also doing a fair bit of sub-contracting work for other development teams by writing customized, protected, fast tape-loaders for them. Our graphics designer Mick also got to design loads of game loading screens for these so if you ever see a wee lozenge with MD in it in the corner of a game loading screen from that era, then it was probably done by Mick and the loader would have been Martin's. I've never since seen anyone capable of hand-coding and patching raw machine code as fast as Martin could do it - the man was a genius with computers.

I got put onto working on The Hunt For Red October even though we had no design yet. I dutifully read the book and got down to working out some of the physics involved in moving a sub through a 3-D environment while the rest of the team got on with trying to figure out Pac-Land. We had no support from Namco other than a photocopied manual in Japanese so the guys just played the arcade machine over and over and over to get the graphics and levels mapped out.

The Tube loading screen
We never really got much further on The Hunt For Red October. Argus wanted The Tube completed and work on coding Pac-Land started so they gave The Hunt to another team to let us get on with the other games and I moved over to helping Martin on The Tube. The C64 didn't have any decent development or storage systems so we did our assembler coding on a BBC Master, which was linked up to a C64 via the parallel ports. We just squirted the assembled code over to the C64 for testing whenever we needed to and stored all the source and object files on BBC floppy disks. It was a very efficient way to do it.

The Tube - Transfer ZoneThe C64 was an amazing bit of hardware for the time, coming as it did with dedicated graphics and sound processors. Having a 6502-based processor meant it could only address 64K of memory, yes only 64k so think about in terms of what we're used to now. I mean, I walk around with a 4Gb pen drive in my pocket. Anyway, we had to fit all of the game code into a measly 64k as well as the levels, sound, graphics and sprite data in a single tape load. There were a few games, like Gauntlet, that loaded their levels from tape each time but the wait involved in doing that just wasn't acceptable for most people so we didn't consider it. The C64 mapped its 32K ROM-based OS and BASIC into memory at startup so that took up half the space right away but Commodore in their wisdom used a 6510 processor in the C64, which allowed us to switch that out, leaving the whole 64K of memory to play with. The only problem with that was that, with the OS off, there was no handy library of routines available and we had to do absolutely everything ourselves. Without the VIC-II graphics and SID sound chips, we'd have been in serious trouble.

The Tube - Defence Mechanism TunnelAs for The Tube, as I said earlier it was something that Martin had designed himself. The idea was that there was this big tube out in space that sucked in ships and stripped them of cargo, etc. and your ship was next in line. It basically consisted of three levels - a first-person shooter, a sideways scroller and a top-down vertical scroller/puzzle. By this time Martin had also recruited Steve Kellett, another guy with a great track record on games development, and he did the sound effects and designed the logic puzzle in the game. Music for The Tube was done by a guy called David Whittaker and he did a wonderful job of it. If you want more info on the game or listen to the music, then you'll find a wealth of it here. I ended up coding the first-person shooter level, which involved simulating flying into the mouth of the tube while being bombarded by alien drones. The user got to man the sliding gun port and stop the aliens striking the ship so things could get a bit manic trying to move the gun target using the keyboard. I also helped out a bit with the sideways scroller level but I have to admit now that I wasn't a great fan of the game as the graphics were a bit on the basic side and the game-play tended to be on the easy side. The soundtrack was a cracker though!

The hours were long at Gannon Designs as deadlines have to be met and I imagine that's still the case in the games development world today but we all enjoyed what we did. However, when some twonk in marketing published the promo material well before the game was ready, we ended up doing lots of all-night coding and testing sessions to get the game completed. In fact I remember distinctly working all night on it to get my bit finished just before jetting off on holiday to Spain the next morning. I was still working at eight in the morning and the flight was at ten so I really wasn't popular at home that day.

Pac-Land loading screen
With The Tube out of the way and most of the graphics and level design having been done by the others, we all got into coding Pac-Land at last. Pac-land was a reasonably straight-forward but seriously addictive platform game that involved racing sideways through various landscapes (town, forest, mountains, desert, ponds, bridge and castle) avoiding Pac-Man's familiar adversaries, the ghosts, to return a lost fairy to her home in Fairyland.

I got the job of controlling and animating Pac-Man as he ran and jumped around the levels and his handling his interaction with the ghosts and scenery. I also controlled Sue, the lead ghost, and handled all the title, start, middle and end-level animations as well as animating the timers, score and credits, etc. We did the game in the standard, 40-column text mode in order to save memory, which meant that Mick had to design all of the level backgrounds using custom character sets and I think he did a excellent job of it. All the other graphic elements like Pac-Man, the ghosts and interactive scenery objects were done using the VIC-II chip's brilliant sprite capabilities. Memory was so tight though that I came up with the idea of compressing the sprite data and only expanding the ones required for each level. In the end, we simply didn't have room for all the levels so had to make do with a cut-down version.

Pac-land title screen
As with most C64 video games of the time, all of the code handling was triggered off of the screen refresh interrupt. To put it simply, most of the processing was done when the video scan beam had finished displaying the screen and was moving back to the top to start again and all of it synced off of a 25 frames-per-second trigger. In that gap, we had to act on any user input, update all sprite positions, scroll the screen if necessary, keep the music and sound effects going and update all the goings on around the screen border. It had to be done that way to avoid visible glitches on screen so all we did in the foreground program was a looped check for user input.

We had several months to get the job done and everyone was upbeat at the start but the long hours and the realization that we were never going to be able to fit all the levels and extras into the C64 eventually took its toll. In its time, the Pac-land conversion was definitely at the leading edge of C64 programming and no-one else had produced a full screen, smooth sideways scrolling game with as much animation going on before. In fact, it was so complex that we ran out of background processing time on each screen refresh and to avoid a screen glitch, I had to break the scrolling routines into two so that we scrolled the bottom half of the screen while the video scan beam was still drawing the top half. It was a huge game and took us much longer than anticipated, even with Steve Kellett co-opted onto the team to help as well. The delays also meant we had the publishers breathing down our necks about Christmas deadlines, which realistically meant that the game had to be ready for the October, pre-Christmas sales orders.

Pac-land town level
Towards the end, we were working seven extremely long days a week and we knew it was going badly. Martin was under severe pressure from Argus while also having to do coding work on the game and run the business and have a life with his wife and young son and things eventually broke under the strain of it all. Len, our MSX programmer went AWOL for a couple of weeks and then it was Christmas. Family life was suffering to and I only rarely got to spend time with my wife and daughter. I remember diving out of the office to the nearest jeweller on Christmas Eve to get a present for my wife; I just hadn't had the time to shop for anything.

Pac-Land mountains
The coding quality started to suffer too and with two of us working on different parts of the C64 version with no source code control system things eventually got out of sync with the master source, which threw a bug into the system that took me days to find. In January of 1988, Argus pulled Gannon Designs funding and that's when it all started to go really bad. Martin fired Mick for refusing to remove his customary MD logo from the loading screen as it was a condition of the license that no one got any credits on the game and Mick retaliated by dropping a huge magnet on what he thought were the graphics master disks (we had backups). By that time Tommy (the Spectrum and CPC programmer), Steve and myself started looking for new jobs before the inevitable happened, which it did in early February when Martin called in the receivers. I'm not sure what happened to Len, he just vanished and I've never heard from him since. We were all made redundant in late February, having had no wages since Christmas.

Also laterally, Martin had been prone to inexplicably falling over and after some tests we found out that he'd contracted Motor Neurone Disease, which is a terminal condition. After the break up of Gannon Designs, his condition deteriorated quite quickly and he sadly passed away about a year or so after. We did keep in touch from time to time and the last time I spoke to him, he was lying on the floor (he couldn't walk by then) programming the bejesus out of an Amiga 500.

Well, that was it - the year of my life spent in computer games development. It was a great experience and a terrible experience all at the same time but also a very memorable one.

Pac-Land break time

26 comments:

Laurie O'Donnell said...

Allan,
An amazing story. What an experience!

Laurie

Stephen Kellett said...

Amazing what you remember and what you don't and what you didn't know.
I didn't know Martin had ever used a Vic-20. He had a larger than life ego and personality to match. Very confident man.

Allan remembers a lot more than I do from back then. The only contribution I remember making to Pacland was identifying the cause of the crash in the sideways scroll code and what the fix was (add a "CLD" instruction at the start of the interrupt routine).

I remember watching Allan fall asleep in front of his BBC master and his head landing on the keyboard and lots of letters typing up on the screen. I didn't bother to wake him, he was knackered. Just like you see in a comedy sketch, except for real.

Stephen Kellett

Allan Ogg said...

You sell yourself short Steve. I remember you giving me some excellent help with the gravity simulation for Pac's jumps and I'm sure you did the algorithm for working out the saucer riding ghost movement. That and lots of encouragement even if you did freak me out by putting water on your cornflakes.

I do seem to remember finding that decimal mode fault myself though. I'm sure it was something Martin set in a routine and then didn't reset and when the code jumped into the interrupt it screwed some of the arithmetic used. Still, it was a long time ago so maybe you're right.

I have other horrible memories of listening to Frank Zappa all day, every day though if you really want to relive the nightmare.

Stephen Kinsey said...

It's a great story Allan, a thoroughly absorbing read. Being from this era I remember this time of video games too and remember dreaming of what is must be like to work on them. As with everything else I guess the reality was not the same as the fantasy.

Scott Gannon said...

The things you never knew way back then.

To think I found the link here through a C64 nostalgia forum.

Is true I was a heavy part of the ol testing process?

Allan Ogg said...

Scott,

Well I suppose it was inevitable that you'd grow up and read some of this stuff. As for the testing, possibly although I think you were more interested in Thomas the Tank Engine at the time.

Allan

Scott Gannon said...

Allan

Well I am 22 now but I still have vague memories of the industrial estate building. Quite an insight some of the article was too. Must be a shock to the system to find me coming across this, I know finding this was for me.

Oh, you know that A500? It's motherboard packed in, now it lives on in whatever computer I have active most, in this case a netbook while my other comp is being fixed, as WinUAE.


Oh and Thomas the Tank? I almost forgot that funnily enough.

Scott

Allan Ogg said...

Scott,

Last time I saw you were only about two-feet high and toddling about, bouncing off the furniture.

You were pretty much the team mascot back then as we were all up at the house quite a lot of the time.

Allan

Scott Gannon said...

Allan

One thing I should say is that article answers a mindboggling question ever since I reacquired the old Pac-Land C64 game and (Yes C64 is dead too) and actually understood the words on the screen that were publisher etc related. Namely where the credits were for who worked on the game, those licensing deals were real tight back then and nowadays I can't imagine ANYONE getting away with not crediting people who worked on the game at a time (I imagine Duke Nukem Forever's credits are going to be a small novel right now).

Scott

Anonymous said...

Scott,

the c64 is not quite dead

Scott Gannon said...

Anon,

When I said the C64 is dead, I meant my own physical one :P.

Thanks to the lovely thing called emulators, they will never really die.

Gerard Sweeney said...

Alan..

I help out with World of Spectrum - a site dedicated to the Sinclair ZX Spectrum.

I was greatly interested to read this post as while it was primarily about the C64, there were details which related to the Spectrum.

I was wondering if you would be able to help solve a few puzzles for us?

Do you know if the ZX Spectrum version of PacLand was ever released by Quicksilva, or was there a delay with the Speccy version which saw it released by Grandslam?

Did Gannon Designs do the Spectrum version of Pacland? I ask because it's not mentioned (then again, it appears to be largely uncredited).

Still on credits - could you tell me the full name of "Mick" (or MD), as we currently just have him as MD.

It may be easier to reply to this by email:

gerardDELETETHISBITsweeneyATntlworlddotcom

:)

Kind regards,
Gerard
(A fellow Glasgow-based ICT Tech)

Allan Ogg said...

Gerard,

Yes, Gannon did the Speccy version and yes, it did take a bit longer so could that could have been why it was released under the Grandslam label. Grandslam and Quiksilva were both labels of the same publisher.
I'm reasonably sure MD was Mick Donnelly (I think - it was a long time ago)
We were prohibited from using credits by Namco.

Allan

RobC said...

I've only just come across this but it makes for a fascinating read. Do you know whether there was ever any intention of making a BBC version as I remember one of the Acorn magazines mentioning it. Maybe they were just confused because you were using a BBC Master for the C64 development?

Allan Ogg said...

Rob,

I never heard any mention of a BBC Micro version nor even of one for the Acorn Electron.
I suspect that there just wasn't a large enough market to make it worth doing for those machines.
Maybe if we hadn't gone under and the game had done exceptionally well, it'd have been looked at but hey, it's history now.

Allan

Dave C. said...

Martin was a great coder, very passionate about his work. I was working with him on a project before he passed called "Bazooka Joe".

It was going to be a Commando style shooter and all proceeds from the sale of the game were to go to the MND Association.

I was working on the levels and general design and Martin was doing the coding on 16 bit platforms IIRC.

Sadly we didn't get to finish it but the legacy of the work that Gannon Designs created lives on!

Dean Swain said...

Hi there, can you confirm that the ZX Spectrum version that was eventually released was in fact the same version that you guys were working on? The version that was released looked very different to the version that was previewed and used a flick screen system rather than a scrolling screen.

Allan Ogg said...

I didn't get that much involved with the Spectrum version, other than to overhear the cussing about how difficult it was to code around the limitations of the ULA chip timings and the scrolling was pretty glitchy. Bear in mind that the Spectrum version was released post collapse of Gannon Designs so it would have been a rush to get it out job by whoever finished it off. To be honest, I can't remember but I've had a look at the videos of it online and those looks like ours did and it does flip screen and not scroll.
Smooth scrolling was pretty difficult in those days and we even had to do some coding trickery on the C64 to get it right so I'm not surprised that the Speccy couldn't manage it.

Roberto said...

What a story! Behind these conversions there are tears, sweat and blood ...
Pac-land on the C64 is a masterpiece ... Just a shame that lacks the ability to jump on the heads of enemies without dying!

Allan Ogg said...

Leaving that standing on ghosts, cars and buses feature out was a decision Martin made because of time but we were all pretty burnt out at the end and we really just wanted to get it out by then.
Thinking about it now, I reckon we could've done it quite easily as long as the extra positional check didn't fudge up the screen scroll timings.

Gareth Dutton Photography said...

I just wanted to chime in and mention how fascinating I found this. I'm a photographer and I'm putting together a photodocumentary from images I took following a small game dev studio around for a period of about 16 months.

I felt a connection to this for that reason but also because I remember the C64 version of Pac-Land very fondly. I can't have been older than six, but I would never have considered how much strain you lot were under making this. From the time I've spent with my dev lot, it seems that not much has changed. Thanks for posting this.

Allan Ogg said...

Yeah, you think it's that dream job, being a games programmer, and for a while it was but reality and the dreaded cash-flow gremlins (publishers) inevitably crept in and crapped all over it. Still I can look back on the time fondly nowadays and I'm still amazed at the number of people out there that remember Pac-Land.

Jane D. said...

The Graphic Artist's full name is Mick Donnelly. Mick was also a firefighter, artist, photographer and musician. And my brother. Sadly he passed away in 1990.

Allan Ogg said...

I'm sorry to hear that Jane. He was liked by the team and a magician with 8-bit computer graphics.

Stuart Gannon said...

Hi,

I'm Stuart Gannon, Martin's youngest son.

I know I stumbled onto this very late (9 years late) and I don't know if you still look at comments here/this blog but I just want to say thanks for posting all of this.

It's an interesting look at some stuff I haven't seen before (though I was shown a VHS of Pac-land which was fun to watch) about my Dad.

I don't have much else to say other than Thanks really. This was a good read.

- Stu

Allan Ogg said...

Hi Stuart,

Nice to see Martin's legacy (and genes) lives on. I never met you as you were only a glint in your parent's eyes the last time I spoke to Martin.

Good to think that, in you and Scott, he's still with us. Glad you enjoyed the story.

Allan