Years Programming: Ever since I was 12, and I'm 31 now, so that's - hang on a second here, I need to take my shoes and socks off to count - 19 years.
Job Responsibilities: I'm the programming lead on the next project that Raven Software is working on.
Projects Worked On: At Midway I was involved in Mortal Kombat III, Revolution X, WWF Wrestlemania, NBA JAM (NANI Edition) and The Touch Master Table top game. At Raven Software I was assistant programming lead on Heretic II, and was pretty much responsible for the EP myself. When I was coding many years ago, I worked on some conversions on the home computers of the day, C64, Amstrad CPC464, Amiga's, ST's and the good old Sinclair Spectrum...
Interests/Hobbies: Wow, where do I start? Sleeping, eating, drinking, beer, technology, women (well, woman - I'm not allowed any more), martial arts, movies, reading, writing, game playing, drinking, the Internet, sky diving, programming and other silly wastes of time. You'll notice programming came last =)
Favorite Computer Games: The best game out there is without doubt Robotron from Williams. I used to work with Eugene Jarvis, one part of the duo that wrote that game - he wrote Defender, Star Gate and Cruising USA. I was also very into Star Wars as a kid. Nowadays I'm very into Peter Molyneux's games, Populous, and that real productivity killing game Dungeon Keeper. I'm too worried to start Age of Empires after watching all the other people here at work get sucked in playing it. My marriage is too important.=)
I know you've recently finished up Heretic II, what projects are you currently working on?
Well, right now I'm involved in support for Heretic II, the Linux conversion. With my other hand I'm doing some LOD research which may or may not work itself into the Star Trek Voyager game we are doing utilizing the Quake III engine. I'm also dealing with the sound system implementation in Soldier of Fortune, liaising with Aureal and Creative with regards to A3D and EAX support. We are starting to ramp up on the next project, which I can't talk about just now, except to say that it will be something that no one would have expected from Raven Software.
What advice can you offer to people who want to get started with games programming, perhaps to turn it into a career?
Well, there is a place in Montreal that runs game developers courses now, they are called the NAD group. If you call them, tell them Jake sent you =) Otherwise, its pretty inevitable that you are going to start out small. You aren't about to get hired by Id right now, no matter how good you may thing you are. Its all about experience. So be prepared to start out being paid little, do some hard work, don't compare yourself against anyone but the best, and you'll get where you want to go eventually. Never be put off that the best may be beyond you right now, everyone starts out at the same level, and even Carmack puts his pants on the same way you do, one leg at a time. Also, don't get caught up in money. Great games development is not about money, its about a passion to do something cool and new, the money comes later, and is strictly gravy.
As for practical application, well, learn C, better yet C++. Being on speaking terms with Direct X, Direct Sound, windows / Linux programming and OpenGL is a damn good thing to have on your resume. Go do a small mod for Quake II, or write a small OpenGL screen saver, so you have something to show if/when that interview comes around.
Study and know what ever discipline you decide is for you until you have it down cold. If you go into an interview saying you know all about networking, but can't tell anyone what UDP stands for, you may as well get your coat right there and then.
What do you think of the games industry generally?
I find it incredibly incestuous. I've run into people here in the states who know people I used to work with back home in England. Everyone in that little Hollywood of games (Dallas I mean) appears to know each other, and every time the music stops, everyone changes companies. Its just a bit weird. Perhaps because we are so specialized we don't tend to spread out across the whole programming spectrum more.
For some reason this next question seems to be a favorite among programmers. What do you really hate about your job? =)
What do I hate? Probably not being a multi-millionaire by the time I was 10 I think. I don't think there's anything I hate per-se about my job. When crunch time comes around, I'm not thrilled about living at work, I did get married for a reason IE I like my wife, but the non-crunch time more than makes up for it. Actually, now that I think about it, I think I hate not being the best. I'm pretty good, but I'm not the very best. I've come across the very best, people like John Carmack, Tim Sweeny, Eugene Jarvis, Ed Boon, and they make me feel extremely stupid when they talk.
What kind of relationship did you have with the artists during your work on Heretic II?
Very good. Raven is an artist driven company, so artists get a lot more input on game development and style than at most companies. We all seem to pretty much get along here. They do what they are supposed to, and I do what I'm supposed to really. There's lots of cross-pollination, which is good, and our glorious Leader, Brian Raffel has a good hand on how to motivate people to work together. The big whip is just for show of course.
What kind of adjustments did you have to make when becoming a professional game programmer?
Well, it's a lot less disciplined that being a professional programmer at a big company. My degree is in systems analyses, and that's what I did for a couple of years. Enforced coding standards, rigorous code reviews, god-awful testing schedules and nasty maintenance required. Add to that an 8-hour day, no flextime, no cool toys around the office, no music and the ultimate insult, having to wear a tie. On the other hand, being a professional games programmer means having to be on top of your discipline absolutely. Technology changes and evolves daily, and you have to keep up with it, since gamers will demand nothing less. Crunch time, when you work 25 hours a day, and get up half an hour before you go to bed is a bit of a shock to the system too. One other thing about working in games, especially at the smaller studios, is how much of a difference you individually make. When you are a small cog in a big machine, you have no idea of the scale of the contribution you make. On a team of 10 people, you know EXACTLY how much you've done, and how much cooler the end game is due to your programming prowess and design input.
Read any good books lately?
Anything by Orson Scott Card. That guy's imagination and intelligence just ROCKS. I'm also partial to a bit of Harry Harrison - why no one has made a Stainless Steel Rat movie yet I'll never know - and I really enjoy Terry Pratchets Disc World novels. He is consistently funny, which I imagine must be extremely hard. Non Fiction wise, I would have to recommend Accidental Empires by Robert Cringley for anyone that's ever used a PC. Fascinating reading.
Lastly, a small question with a multitude of potential answers: How good is good enough? Clock speeds will continue to increase, 3d hardware will get better and better... what do we want games to eventually become?
Games will never be good enough until they aren't a game anymore. Everyone has this idea of 'virtual reality' where you're wearing the gloves and the glasses. I don't see that being the business, cos there's no tactile feedback. Ultimately, I think the kind of technology we see in the movie Strange Days is where we will end up, probably within the next 20 years or so. It's a bit of a tacky simile, but once we have the technology to do really convincing virtual sex, then we'll have the technology to do really convincing games.