Hailing from one of the earth’s most remote cities, Perth, Australia, Steven is one of our newest programmers and also remarkably tolerant of references to dingos eating babies, dropbears and Kangaroo Jack. Read about how his game career took him halfway around the world and why he leaves anti-aliasing on these days.
Abbie: How did you get interested in making games?
Steven: When I was around ten, I stumbled on a game called MegaZeux (MZX). It was based on a game called ZZT by Tim Sweeney (of Unreal Engine fame). It was text-based, with its own level editor and scripting language. I would spend heaps of time playing with it, on these crazy game ideas. They were mostly inspired by movies. For example, one had a main character based on Axel Foley from Beverley Hills Cop, set in a post-apocalyptic world, with a mysterious alien menace and a romance side-quest. Come to think of it, I made a lot of post-apocalyptic games. I’m not sure why. Anyway, it was my life from after school until I’d go to bed at 5 a.m. And then I’d wake up in two hours for school. I was showing it to one of my artist friends recently and he just laughed in my face. He just saw it as a bunch of flashing text characters jumping around the screen, with retro music playing in the background. He basically said, “You’re crazy to think this was the most creative platform for making games ever!”
Abbie: And how did you get started working in video games?
Steven: Back where I grew up in Australia, there were no local video game companies. My first job after graduating was working as a software engineer for Motorola. After a year, I felt I still really wanted to make games, so I started working on my own game at home. I sent it off as a demo, with my game job applications. Actually, I still find myself working on that same game today! It keeps evolving, as I learn and try out new game-programming things. It started out as a 2D game written in C. Now it’s a 3D game written in C++, with (among other things) a deferred shading pipeline, morphological anti-aliasing, and Direct 3D and OpenGL support.
Abbie: Do you plan on finishing it ever or has it become a never-ending evolution of your game experience?
Steven: I only really work on it when I’m either between projects or jobs. It’s kind of like a portfolio piece now. I’d like to finish it someday but when you have a full-time job, it takes a lot of your time. After a full day of programming, you don’t always want to go home and program some more.
Abbie: So where did you go after Motorola?
Steven: I sent my game off to a company called Auran (now NV3 Games), who were known for a real-time strategy game called Dark Reign. I got the job and began working on their Unreal Engine 3 game, Fury. I think the exposure to a commercial-grade game engine was a really good stepping stone. After that, I worked at Pandemic Studios on an unreleased title, and then at Digital Extremes (in Canada) on BioShock 2: Sea of Dreams and The Darkness II. It’s been a bumpy ride, but the game industry can be chaotic like that.
Abbie: Now that you work in games, how is it different than how you perceived working in games would be?
Steven: It’s a lot different. I think every game developer says that. I enjoy games less, because I notice flaws you typically would not as a gamer. It loses some of the magic. However, the most unexpected thing for me was learning to program in a team – I think this applies to any programming job outside the game industry too. In university, I worked on most programming assignments myself. Even more so before that, when I was learning programming myself. But in a company, I found myself working within an experienced team. That turned my programming world upside down.
Abbie: I hear that a lot.
Steven: I had a lot of learning to do there. For me, one of the biggest things was learning to read other people’s code. When you work with code you’ve written yourself, it is very easy to read. In a team project, most of the code will not be written by you. Before, I never had to think deeply about, “When I write this, will someone else be able to get into my head and know what I was thinking when I wrote it?” I think this is important in a team project. I see a game engine as more than just code; the people who are writing it are also a big part of it. Everyone should be able to work efficiently with the code. For example, I try to avoid abstractions, encapsulation and most design patterns. Much time has been wasted digging through that sort of code. Over the years, I have also seen how many seemingly complex problems can be distilled down to something straight forward. This is what I strive for.
Abbie: What else do you wish you knew in college?
Steven: I wish I worked more on on my own projects. I think it’s important to teach yourself things. If you just go by what your curriculum tells you to do, you’ll learn slower and not enough. Also learn low-level programming. My course did not really cover that, but you will need it. It is useful in many ways, such as fixing last-minute crashes on release builds. That kind of thing is not an exceptional case either; it happens in every single project. Programmers are the last line of defense when something doesn’t work. There is no one else to ask. You can’t just Google many of the problems we encounter. So knowing how things work, right down to the details, is important. I also wish I paid more attention during math (especially linear algebra). I’ve had to relearn a lot of it after graduating. A thorough understanding will save you a lot of time; you see problems clearer and know how to simplify things correctly.
Abbie: So what do you do in your free time?
Steven: Besides playing and making games, I like travelling a lot. But we just moved to LA, so I haven’t been to many other places recently. Actually, when my wife and I lived in Australia, we wanted to travel more (we lived in one of the most remote cities in the world after all). That is one of the reasons why we ended up on this side of the world. But since leaving, I’ve realized I took a lot of things for granted. Really good beaches, for example. Of all the places I have been, I have yet to see any beaches as nice as Australia’s.
Abbie: I don’t think we’re gonna rival you on that. Sorry. So what do you like to play?
Steven: I loved Uncharted 2. I’m more of a story-telling kind of guy, so games like that really appeal to me. It had really great voice acting too. It felt like a movie. I don’t think any other games do it better. I like it when games throw in a few things from movies. Just before joining Respawn, I was also playing a lot of Halo: Reach. In that game, I was constantly emptying my assault rifle clip into people and then smacking them in the face. Often, they would be doing the exact same thing to me. If we both executed this perfectly, we died together, as we simultaneously punched each other in the face. For some reason, I never tire of that. It’s like a deadly dance, where a single misstep spells your doom!
Abbie: I hear a lot of Final Fantasy in these interviews, especially from those who enjoy story-telling.
Steven: My first RPG was Final Fantasy II! I also kind of raised my little sister into video games with Final Fantasy VII. After that, she started playing Final Fantasy VIII. She was hogging the PlayStation after that.
Abbie: So your sister is really into games?
Steven: She’s really into Final Fantasy. I had to stop playing on the PlayStation, because she played so much that I had no chance of ever getting any playtime. In a way, she forced me to focus on my programming! I tried playing Final Fantasy VIII a few times, but she kept accidentally overwriting my save.
Abbie: And you taught her bad habits!
Steven: After restarting four times, I just stopped playing that game.
Abbie: What are you playing now?
Steven: I’ve been playing Skyrim recently. That’s another game I’ve played a lot of, but not as much as you. One of the things I notice about that game, which I’m not sure if many players do, is the wind sounds! I thought it was really cool to be up in the mountains and hear the wind blowing. I found it really immersive. I tend to notice strange, little details like that.
Abbie: You mentioned earlier that you notice more specific things in games now, what did you start to notice that stood out that you didn’t notice before?
Steven: The biggest one is probably animation. Lots of games have animation glitches that most players would never notice. But I have worked on a lot of animation bugs, so I always see them now. Like the “pop” in some games when your view switches from cut-scene to first-person. I don’t think many game reviews would mention that kind of stuff though.
Abbie: There are just some things that don’t affect the overall experience.
Steven: Sure. One of the things I notice my artist friends always look for is texture stretching, which they think is very ugly. But I never notice it (unless it’s really obvious). Anti-aliasing is another one. Before I became a game developer, one of the first things I would do to increase frame rate is turn anti-aliasing off. I just didn’t really notice or care about it. Yet programmers can spend so much time and effort on this kind of stuff. Of course, I notice aliasing all the time now (even when anti-aliasing is enabled). I guess that is what changes when you start working in the industry. At the same time, I can’t imagine myself doing anything else. As a programmer, I think it strikes the perfect balance between problem size and team size. We get to work on problems from a wide range of areas (like networking, graphics and AI). But the programming teams are relatively small, so our individual efforts can have a direct impact on the final game. It’s very rewarding. The fact I get to do it at Respawn is another bonus too. As one of the newest programmers here, I had no idea what to expect when I first joined. But from day one, the game-loving folks here have been very welcoming and eager to make me a part of their family. And for that, I’m very thankful.
We’re really excited to have Steven on board for this project. If being a programmer at Respawn sounds great to you, we’re still looking for qualified software engineers. More info at www.respawn.com/careers