Geoff Phillips / Self-employed,
Added on March 1st, 2013 (3138 views)
Hello and welcome! Please introduce yourself to anyone who may not know you.
I'm Geoff Phillips. I'm a programmer from Bletchley and erstwhile games programmer from the very early days who did a lot of work for Tansoft.
How did you first get started with computers and the C64 in particular?
I was a COBOL programmer when the first home computers appeared, supporting John Laing's complicated accounts systems. My first home machine was an MK14 in about 1978. I then became heavily involved in the Oric, going self-employed so I could write games full time. The Oric was a 6502, so this naturally led to later work on the Commodore 64. I worked for Tansoft and then a company in Ely called Orpheus which may still be best known for doing the disastrous Young Ones game.
Tell us how your career in games started. Did you submit work samples to various games companies looking for jobs, or did jobs come to you?
My whole career has been a sequence of events that started with a letter in the second-ever issue of Personal Computer World. The letter was promoting an MK14 User Group. Paul Kaufman, who later set up Tansoft, contacted me and we became friends, not least because he only lived two miles away from me. I did some work for Paul and then went self-employed and spent a very busy few years working for Tansoft, as well as writing two books for McGraw-Hill. Just before Tansoft came to an end, Paul, myself and some others set up Orpheus which wrote and converted games on all home computers, including the C64 but also the Spectrum and Amstrad. Orpheus had troubled times in store for it, but I formed a relationship with the people we worked for, especially a fellow called Tim Holland who ran Databyte, a distributer for First Star Software, the people behind Spy vs Spy and Boulder Dash. Ever since then, my life has been a series of links from person to person, so there's never been a point, at least in terms of games writing, where I had to actually look for work – it always came looking for me! In fact, I think I've only gone to two job interviews in my life, once just before I left school and once when I was made redundant from MSU in 2001.
What attracted you to the C64 as a development platform? Was it as special as we like to think it was?
I was late in coming to the C64. It was often the "key" machine in software development, i.e. the game was first developed for the C64 and then converted to other machines. It was the most clearly defined of the machines I worked with, the sprites and colour system were very well thought out, as was the memory structure, once you understood that it was like an intricately made toy that folded out in different ways, allowing you to access all 64 kB. But I don't think it was completely without fault. For one thing, the CPU was much slower than in comparable machines, and the in-built BASIC was poorer than most, though that became irrelevant once you started using machine code on it. The hardware assists did help, but if you ever wanted to do something like move the whole screen across, you were out of luck! What the MSX had was a versatile character-based display, which was more suited to tiling backgrounds and moving those tiles by just moving the "characters". Also, I can't recall many people using the C64 itself to develop software on, it had a horrible floppy disk drive for a start, and an incredibly slow default cassette system. So people used BBCs and squirted down the code. I wrote on an Amstrad CPC and then used the parallel port to get code into the Commodore 64, at least I think I did.
What C64 games did you work on? Write a list with the titles and as much information you remember about each of them.
Orpheus worked on the Young Ones, for which I did the tape loader. There's a long anecdote about the game further below. The only game on the C64 about which I can recall anything is Mighty Bomb Jack. I did this through Roger Taylor's company and used his graphics artist. The game was converted from an arcade machine which I regrettably did not get to play. I had a video tape that played through the levels, right through to the endings, showing all the secrets. I also had ROM data which I spent hours, even days, going through. From the ROM data, I worked out the level layouts and how the various tiles were encoded. I don't think there was much in the way of compression (or I would probably have failed in this task). My recollection is that I then took the ROM data and interpreted it on the C64 as far as I understood it. I remember having enormous difficulty making the multi-sprite graphics move around using interrupts to change the sprite hardware, because of course you could only have so many sprites in a row. I think we used a coarse graphics background on each sprite and a sharp graphics overlay (I've forgotten exactly how the C64 hardware works), and what I think was a standard trick of putting the scores as sprites above the screen area. The hardest task was probably testing it: I think I just kept changing the start point. I tried to make the control as good as possible, the real difficulties were with collision detection and making sure the scrolling didn't do horrible things when it reached the limits of the data. I don't remember having too many problems with crashing, but by then, I had learned to write fairly robust code.
What companies did you work for, in-house and/or freelance, and what were your tasks?
During the 1980s, I remained almost entirely self-employed once I'd started programming games. It was a mistake, actually, because there were times when employees were being paid as a priority, and I, as a contractor, was the last to be paid. I was a stand-alone programmer for much of this time, though at Orpheus we had a team of programmers and my role then became that of a manager, although I still programmed in a secondary role. I worked for Tansoft, then Orpheus (where I was a director), then for Databyte in London and Roger Taylor's company (which had a name I don't recall) in Leicester. These companies in turn interfaced with the bigger names of the time.
What did a typical day in front of the computer look like?
My situation changed hugely several times in the 1980s. Initially, I was living at home with my parents and would work probably from 9:00 until late at night. I worked out of our front room. Then, for about a year, I drove about 50 minutes every day to a place near Biggleswade where we had an office in the middle of nowhere. After that, and thankfully only for a month or two, I drove first to Chelmsford to pick up a programmer and then to the office in Bedfordshire, and would go back the same way quite late in the evening in order to drop him off first, a knackering one and a half hours each way! In 1986, I moved to Ely and my situation shifted to the opposite extreme: literally, a two-minute walk from my flat to our office! I was constantly working on different things throughout my time programming games, and very few days were the same. At Orpheus, we had no money towards the end, and things were very bad. At the same time, there was a sort of amusing sense of dread – we got to know the local sheriff quite well, who was always coming round for some unpaid bill or other. The problem with Orpheus was that when the Young Ones did badly, the guys in charge foolishly decided to make converting software their main business, not writing games from scratch. Now, a well-made game that sold could bring in a huge continuous income for the lucky company; instead, we were doing game conversions for a fixed fee and became reliant on programmers to do the job. We had debts that could not be cleared, hence the business was flawed.
The worst day for me in that entire decade was when I had to go to a client for whom we were developing a strategy game and tell him that we couldn't finish the game. We had made the mistake of farming the job out to another small group of games developers who had then lost their key programmer. We had been paid an advance and had in turn paid them an advance. That was my worst day; the best day was probably getting a decent review for Mighty Bomb Jack!
When you were assigned to a game, how much time did you usually have to finish your work?
Deadlines were always impossible. We never seemed to learn either, but the people I've met since don't seem to be any better at it. We would agree to something like a three-month deadline on a game, and I think that in most cases, I managed to keep to those deadlines. Sometimes you would think you'd finished, but then the company you'd done it for would want changes... I can't remember any specifics, though.
What tools/development kits/etc. did you use, and did you create any yourself to satisfy your needs?
I was always creating help tools, even whole cross-assemblers and graphics tools, as needed. I still do. There's something satisfying about using something you wrote yourself. I used the Amstrad CPC, which had an assembler ROM thingy that plugged in the back and worked when you turned it on. I used that for the Amstrad and Spectrum. Others around me were using BBC Micros, but I didn't have one of those. I can't for the life of me remember what I used for Mighty Bomb Jack. I can recall cross-assembling on an Amstrad... might have been PDS on the PC... I also had an Atari ST at this time, I might even have used that. I really can't remember how I did it! I recall that I lost a couple of Commodore 64s because electrically, the parallel port could not stand much in the way of abuse (shorted pins, or output meeting output for instance). Also, the power supplies on the C64 were awful, always blowing up.
Were there any games you worked on which never saw the light of day?
I started a lot of projects on the C64 that went nowhere! One was September, a board game. Even now, I'm not exactly sure what happened to it. I'm sure the company involved said they did not want to publish it because the game was too slow in calculating the moves. It may have been rewritten by another company, I really don't know! I'm sure we weren't paid for it, but someone recently told me that it was published.
One thing that annoyed me about September was that a couple of years later, I read this huge tome by David Levy about Computer Chess, and in it was a vital clue about doing look-ahead on strategy games. I could have eliminated much of the searching by what I think is called "pruning the tree", which means that when you're considering the opponent's move, you can stop as soon as you find a move that's worse than one you already have. That way, the CPU doesn't waste time continuing to weigh up all the moves.
Another project, which would have been for Tim Holland, was about Vietnam. There was a flood of interest about that conflict in the 1980s. I'm sure there were others too, Tim was always coming up with ideas. He was a good bloke and very tolerant of both Orpheus and myself personally.
I also remember working on a game about windsurfing. I recall writing some pieces of code to draw sails, and researching the terminology, but nothing ever came of it.
Which game are you most proud of, which was most fun to do, which became a real challenge, and which gave you headaches?
If you're talking about just the C64, I can only answer Mighty Bomb Jack because that's my only completed and released C64 game, so I'm going to assume I can talk about any game! I had a lot of fun on all the games really, and a lot of them came with challenges. One bit of irony was to do with converting the game Zombi from the Atari ST to the Spectrum. I was told I had to do this for a Spectrum 48K. It was a devil of a job to fit all the levels into a Spectrum; I had to devise a way of using line-drawing co-ordinates. The irony was that the eventual product had a label on the box which read "Spectrum 128K only"! I could have done the job far more easily with 128 kB of RAM. I think my best game conversion was Elidon for the MSX. The graphics (created by John Marshall on the C64) were excellent, and I came up with a neat strategy for making large mazes without using any memory.
If you had the chance to go back to any of your past games, what would you add and/or remove?
In the following decade, the 1990s, I learned a great deal about how audio and video works and about such things as compression. The thing is, though, that I don't think I would now have the patience to develop games with tools that limited, or even to use assembler language rather than C.
Were there any particular games that you would have liked to work on or converted from arcade?
I'll answer a slightly different question to this, because what seemed to happen a lot to me was that I would think up an idea, but before I'd even started on the idea, the game would appear fully finished in a magazine list somewhere. I think there's a kind of group telepathy going on here, in that it's perhaps just human nature to look at what's gone before and picture what could be. Some ideas seem so obvious in retrospect, like Lemmings, or even trivial things like Tetris. Yes, it would have been nice to have worked on those.
Did you get much chance to play games as well as create them? Any favourites?
I was always playing games. One of the problems with writing games was that when you reached the point where they were fun, you would end up playing them till you got sick of them, and then it would be difficult to finish them! I played Populous a lot, especially as a two player against another machine. Impossible Mission also kept me hooked for weeks.
Were there any games which you felt were so appalling and bad that you wished you had worked on to do a better job?
For the C64, I’ve obviously got nothing here, since I only did the one key game. Other than that, I was not very proud of some of the Oric games, but you were always up against time and working with limited tools, and you were always learning on the fly. Today, there's the Internet, and you can ask questions on forums. All we had, working on the Commodore 64 back in the 1980s, was that massive thick ring-bound book that gave the key locations away, and perhaps a few other books too.
Was there a particular programmer, artist and/or musician who influenced you and possibly gave inspiration to your own work, or did inspiration come from somewhere else?
I probably started programming too early to be able to say I was influenced by anyone else. As more games came out, I spent probably way too much time and money on playing them and absorbing what they did. One of my games was influenced by the TV programme Catweazle! Later, I grew to admire Alan Turing's work on chess. I certainly took in all the other games being written, but I don't think I was inspired by any one of them specifically, just amazed at people's cleverness and creativity.
Share some memories from the old days! It could for instance be something you remember a colleague did or said, about your time in the demo scene, about crackers stealing development disks, or about going to computer shows.
Years after working on Elidon, I got a call out of the blue from a games player who wanted some advice about the game (the MSX version). Did I have a map, he asked. Sadly, I didn't, because there was no one map – the program generated the map using a random technique, and on the fly, room by room. The perceived map was effectively the same for everyone, but it still used random numbers and not storage, because I didn't have enough memory to store the C64's map in the MSX memory. I thought that was an interesting example of someone seeing a design where there was no such design!
I went to a few computer shows, especially ones where Oric had a stand. My only memory I have is of talking to Guy Kewney about something inconsequential. The early ones were interesting, the later ones dull. It was about the only time I met fellow programmers; I think we were a very shy bunch back then!
The early days, and I mean really early, as in 1979, saw computer clubs up and down the country. I remember going to one regularly at North London Polytechnic up the Piccadilly Line. Huge crowds would sit in a hall, while the latest developments in home computers were shown and discussed on the stage by Robin... somebody? There was a fantastic camaraderie to those meetings, and I remember chatting for a long time to people I met there on the tube ride home. Those were the real heady days, before the big boys brought out the best-selling home computers like the Commodore 64 and Spectrum.
I also remember getting on a train down to Plymouth to talk to somebody about the MK14; probably the first time I'd travelled on my own such a long distance.
Another MK14 anecdote comes from the time I was still working for John Laing plc. I got a call out of the blue from Chris Curry, who knew that I ran the MK14 club and wanted me to go and speak to someone who was complaining bitterly about the unreliability of the MK14. I took a day off and travelled (no car then) across to the other side of London. The owner showed me the offending MK14... which then adamantly refused to go wrong in any way! Chris still owes me £5 in expenses for that day!
And then, of course, there was the Young Ones game. Paul Kaufman and John Marshall went to meet Rik Mayall, Lise Mayer and possibly Ben Elton. I sadly did not go to that meeting. Paul later reported back that Rik leant back too far in his chair and fell backwards. We had permission, subject obviously to rights payments going to Rik and Ben, to develop the game – would that have been 1984? At any rate, it was early in whatever year it was when we started.
At that point, I was still working from London and coming up as needed to Hatley St George, an obscure place near Biggleswade – so obscure, in fact, that even the nearest bakery was about a ten-mile drive down winding roads. Somehow, John had gotten it into his head that the AI needed to be farmed out to another programmer, and he somehow knew a student at university called Stephen Streeter. Stephen would bring his viola to the office, and we had the bizarre experience of listening to him practise viola in between programming. Time passed by, and the summer holidays presumably meant that Stephen would be able to do his bit. As the summer drew to a close, there still didn't seem to have been any progress, so Paul, myself and John drove to Stephen's digs, a smelly student's room somewhere in Cambridge, and tried to assess what code he had written.
What Stephen seemed to have in mind was that the characters in the game must *want* to meet their objectives. He was writing code to create true AI, but was struggling to make the code work (perhaps not surprisingly, given that we were all using pure assembler back then). We then looked more closely at the code, which he had developed on a BBC Model B. I was horrified by his coding methods. He was not using a proper symbolic assembler with labels and meaningful names. His code consisted of lines of assembler strung out on a line with manually calculated branches! We looked at a few lines, and just by counting instructions immediately found two lines with incorrectly calculated branch values.
I don't want to be too hard on Stephen, he was a very nice fellow and I even went to his parents’ house once for a meal. John soon realised he'd have to do the coding himself – he had already done the graphics side with the animations and main game drawing. Time was getting tight for a release, though, it might even have been too late then. I think he knocked up the game logic in a couple of weeks. He used what any sane programmer would have under the circumstances – tables of objects. What I had to do was the package that would be duplicated. I had created a turbo loader, because the C64's own loader was always too slow. We tested it and it worked reliably, so John finished the game.
We all piled into Paul's car and drove from Bedfordshire to Batley in Yorkshire, where the tape duplicators were. We thought they would take our master tape, whizz it through, and it would all be done and we'd come home. If only... They put the tape through their test rig to make a sample copy, but then the copy wouldn't load. The hours passed, evening fell, then night, and I worked through the night, trying to make the damn thing work when it was copied. The problem was the timings, too tight for the copy to work. In the end, the really nice guy there in charge of duplication found a way round it – they had their own duplication code that they knew and trusted. Totally exhausted, I put in his code.
It was now the middle of the following day, and I was too tired to continue. We found a B&B nearby and put our heads down for a few hours, getting some very strange looks in the process. What I remember from that experience is that when I put my trousers on the chair in the room, all my loose change fell out and I didn't ever remember to collect it. Returning to the factory, the replacement code worked but led in turn to some new problems which weren't of my making. I don't remember exactly what it was, I think the game crashed, but John had to work on the main game itself, and this killed even more time. Finally, though, the game was in the bag, albeit with a few bugs in the game itself caused by the rush to complete all the logic in such a short time.
The game was too late for the main distributor's Christmas deadline. I don't remember exactly what happened there, I just recall piles of Young Ones boxes everywhere. I fell asleep in the car on the way back (glad I wasn't driving) and slept at Paul's house. It took me days to recover! I remember being annoyed at the others back at the office, who didn't seem the slightest bit grateful at the effort we'd made.
I think the disaster that was the Young Ones killed the company, as I said previously. If it had been successful, we would have had the money to develop other games. Instead, it was a slow downhill slope to doom afterwards.
We can't ignore the fact that there were other machines apart from the C64. Share with us the software and/or hardware you created on other systems.
I think I've mostly covered this already. In rough chronological order, I worked on the MK14, Tangerine, Dragon 32, Oric, UK101, MSX, MSXII, ZX Spectrum, Amstrad CPC, Amiga, Atari ST, IBM PC, Konix Multisystem... I've probably forgot some! I did many pieces of software on the Oric for Tansoft, I did several versions of Boulder Dash (construction kit, etc.) for the Spectrum, Amstrad and MSX, as well as Spy vs Spy conversions for some machines. I also did Dr Franken for a games machine, possibly the Nintendo, I've completely lost my memory about that. I did a multi-games game, I think for First Star; I did the bowling part. I was very poor in the 1980s, but also very busy! I wrote magazine articles and two books, one about the Dragon and one about the Oric, both of which did rather badly.
What are you up to these days?
In the 1990s, I worked for MSU who initially did the Konix Multisystem. The hardware in it was re-used to make various other products, such as a Video CD player, an early Internet set-top box and other things. It was an interesting decade, and work took me abroad to China, Hong Kong and America. I now work for a small TV studio, with people I met at MSU. I write software that delivers broadcast TV across the world using the Internet, and I've written dozens of bits of software that keep various systems in the studio working, including interfaces into text messaging, various automation for live TV broadcast, clocks and teleprompters. These days, I mostly program C++ on Windows, though I also worked on Linux last year.
Thank you for helping us preserve an important part of computer and gaming history! Do you have any last comments to leave a final impression on the audience? Feel free to send any greetings to anyone you know.
This is going to make me sound like an old man complaining about everything... Programming games in the 1980s was a unique experience: we had very few of the modern conveniences, like being able to download tools or examples or communicate instantly via email, MSN or on forums. Considering what I do now, I don't think I could go back and work like I did then, but I still operate on the principle "if you want a job done properly, do it yourself", i.e. write software on your own terms rather than lifting other people's code wholesale without understanding it. I learnt a lot by knowing the machines at the hardware level, and it does help when you're programming at a higher level because you're aware of what's going on and thus what would run better.
A big hello to everyone I've lost touch with (and those I haven't!). Mark Avory, a wonderful programmer with great potential, we were awestruck at your demonstrations when we first met you – hope you're well. Roger Taylor and Tim Holland – hope you're still around, get in touch! Andrew Green from Chelmsford – hope life has turned out okay for you.
back to the list of available interviews