The Programmers – Part 4
Part 4 has Jonathan E. Wright from Third Law Interactive (KISS:Psycho Circus) answering our questions.
How did you start in the gaming business ?
Jonathan : I basically spent about 16 years programming games as a hobby before finally taking a chance and applying for a few jobs in the industry. I was hired by Ion Storm based on the work I had done on a couple of Quake mods (Zeus bot and Cujo bot) and a large body of work I had done over the years in my spare time (some of which can still be found rotting in
some old internet archives).
What’s first ? The idea for an engine, or the idea of a game ?
Jonathan : I don’t think either has to be first. Sometimes you can see an engine running and think “Wow, I could do [whatever] with that!” and that’s the start of your game design. A design that’s moulded to fit around an existing tech can be a very good thing. On the other hand, some ideas have enough different elements in them that you simply have to come up with new tech to implement them well. In the end, no matter which way you started, both engine and idea will necessarily see a lot of revisions before your game is done, so it all depends on the inspiration.
How do you start on programming for a game ?
Jonathan : Generally a good idea is to start with a set of major goals that you want to achieve and start prototyping. I like to try and look at the big picture, the end result I want, and then break that down into smaller and smaller tasks. The best thing you can do with new code is get one of everything working and then figure out what you left out. If you’re lucky, you planned it well from the start and won’t have to rewrite to many major systems to achieve your goals. However, rewriting code can be a good thing. There are times, such as 2 weeks before you ship, when rewriting major systems might cause other team members to try and kill you, but for most of a project’s life, it’s often a good idea to at least consider rewriting any sections of code that you know could be better, or that are causing problems. It’s a balancing act, though, because you never have enough time to make your game. It always turns out better the second time around.
What programming language do you use for making/modifying an engine ?
Jonathan : C++ is my language of choice. Well-written C++ code is a thing of beauty (especially if you put returns before your opening braces ;).
What the most difficult part about programming a game ?
Jonathan : For PC games, it’s supporting all of the hardware and peripherals out there. What a royal pain in the nethers. Even when you do support them, the user is likely to have an older driver that doesn’t work or has problems. Or, perhaps the vendor just came out with a new set of drivers that happen to break your game. This is THE reason that PC developers are going crazy over the X-Box. An immutable hardware platform with PC development tools and bears. Oh my!
What do you like most about programming games ?
Jonathan : The creative process. I like having my effort rewarded with something cool happening on the screen. Getting free hardware sent to me is pretty cool, too. 😉
What is the ultimate goal for a programmer ?
Jonathan : Space. I think all programmers eventually wish to live in space. That and a mega-hit game that ships with no bugs. Of course, if you’re programming mission-critical software you’re probably just happy if you don’t cause a plane crash or something…
Any last comments on your job for future game programmers ?
Jonathan : Like everything else in life, if you want to be good at it, you’ve got to put in the time. You should be doing it because you love it. Perhaps you’ll end up hating it anyway, but don’t say Nelno didn’t warn you