Just below the surface of any game you play lies a web of logic, data structures, and complex algorithms. Without code and the programmers who create it games would be like an empty car body. It may be pretty but without the engine and other internal workings it's just going to sit in your driveway.
Programmers create the solid foundation upon which all games are made. Without their work your character couldn't move, fire a weapon, or converse with an NPC. In addition to making the systems that make a game playable, they also create all the tools used by every other profession in the game development process.
Nick Whiting is a Gameplay Programmer at Epic Games. Though that is his official title, he thinks of himself more as a "Daywalker Engineer", able to walk in both the gameplay and engine worlds. He enjoys the immediate gratification and creativity gameplay programming provides. Things will go "boom!" when he does his job right. He also finds the difficult, low level problems that need to be solved at the engine level equally compelling. Thanks to Epic's work environment, Nick is able to move between the two departments which constantly challenge him and improves his skills.
Why is the gameplay programmer important for the success of the game?
The artists define the visual look of the world but the gameplay programmer defines how the world works and behaves. It's not just a static visual place but an interactive element which is the advantage that games have over cinema and books. It allows the player to immerse themselves and be a part of the story. It gives them a compelling reason to keep playing through that story via good gameplay and entertaining mechanics.
![]() |
| Artist rendition of a programmer at work |
The role of the engine programmers is to help artists, designers, level designers, and animators by giving them the tools to bring their vision to life on the hardware. We strive to make it as easy as possible for them to create these beautiful and compelling worlds that exist in their minds. In simple terms, we give the artists the paintbrushes and canvasses to do their work.
Overall the programmer is the yin to the artists yang. They create the visual side, and we create the rules that govern the world.
That's a good way of putting it. It's easy for an artist to point at something on screen to show their work. There's a substantial object or character that's easy to see. It's harder to quantify the final product, visually on screen in the game, for a discipline like programming.
Exactly. I always try to think about it as, "How do you describe the work you do to your mother"? Because my mom doesn't play video games, she'll look at a game I worked on and ask "So what part did you do"? She understands answers like, "I made the canvas for the artists to work on", or "I made the laws of nature that exist in the world". Those sort of answers clicked with her, so that's what I use!
So even though you're officially a gameplay programmer, Epic gives you the freedom to express interest in any area requiring programming talent?
Ya, it's pretty open. Epic is very flexible and lets you bounce around to wherever your interests lie. Of course with any project there are certain things that just need to get done. You can only have so many people working on AI, gameplay, controls, etc. They're very good about moving us around and letting us explore our interests.
Right now I'm working on more engine-centric tasks than gameplay because I expressed a desire. After we finished Gears 3 I moved over to try something else. It helps the company as a whole if your programmers are more versatile and learn more systems. There's more people to help put out any given fire or just help when it's needed. It keeps us interested and passionate. Being encouraged to do that at work is great and one of the compelling things about working at Epic.
What work are you most proud of and why?
In terms of a product as a whole, I'm exceptionally proud of Gears 3. The team was great, the game turned out amazingly. It's kind of surreal playing it now that it's out. As you're developing it you're so heads down and only seeing the things impeding progress like the bugs. You don't get that holistic picture of what the entire product is for some time. Now actually playing it there's a moment of "Wow, this turned out really good"! Product-wise, Gears 3 by far is the best achievement I've had to date.
On a personal level I sometimes think back towards the end of America's Army 3 development. We had so much going against us. Almost everybody by the end had never shipped a game, some had only shipped previous iterations of America's Army. It was a new engine, it was a small team. We only had 3 on-site programmers doing a lot of the engine and gameplay code.
That was a trial by fire. It was a brand new product on a brand new engine with a relatively green team, but we learned and accomplished so much. Just looking at some of the systems we implemented like the sound features and the animation state graph, we accomplished some amazing things for being complete newbs. There was a great sense of accomplishment and camaraderie, just overcoming the odds. I'm still very proud of the work that we did.
I think if I hadn't been in that situation of being the senior guy on site and having to manage people a little bit, pick up loose ends, and put out a lot of fires every day, I wouldn't have been prepared to work where I am now. I learned so much by being thrown in the deep end.
How do you get things done when a feature doesn't get completed or somebody drops the ball? How do you compensate for that? When do you make the decision to compensate for it? I think those are all very valuable lessons that I wouldn't have got if we weren't in that situation.
Considering all the hurdles we had to overcome on AA3 we still managed to get a game out that did pretty darn well for what we had to work with. I'm most proud of that from a personal standpoint.
So from those previous experiences, what would you say is the greatest challenge you have had to overcome either personally or professionally?
![]() |
| Cliff and Tim |
It was very intimidating at first. The gameplay programmers at Epic have very active design roles. It's a very flat structure so when we're iterating on features we have a level designer, a gameplay programmer, and designer all looking at the implemented proof of concept. As it develops we have constant feedback and critique. We rip the feature apart to see what's good and what doesn't work. When you're doing that with somebody that you've idolized while growing up it's very intimidating and hard to think that your words hold any kind of weight.
When I first got here I never really spoke my opinion because what's my opinion versus these veterans? It was something I struggled with for a good year or so until my lead finally said "Hey, you obviously have a good design sense, you do good work. You should contribute more because we'd love to hear your opinion. This is one of the reasons we hired you, to break these things down and provide feedback".
I started doing that more but it's still hard to this day because I have so much respect for the people I work with. But actually voicing my opinion makes a difference. That's another nice thing about the process that we have at Epic. Anybody that has good feedback or contributions has a high likelihood those ideas will make it into the game.
Now that I'm feeling more confident to speak up, I have to answer questions like: Which ideas do I submit and which do I hold back? When is appropriate to make suggestions? That's one of the trickier things I've been learning to do lately.
Even at America's Army straight out of college the programming test freaked me out. I spent so much time getting over the initial barrier that the people who make games are super-human. But they're people just like us, and that's something you have to remember especially if you've built up games to be this impossible goal.
Just realize that when you get hired your employer usually wants to hear what you have to say. Actually voice it in a creative and constructive way. Your input matters!
Other than the paycheck, what makes you want to come into work every day?
I still think it's darn awesome I get to make games that run on the "magic box" that's sitting by my television. It's something I always wanted to do and now I'm actually doing it. It still thrills me. They say, "Your career should be whatever you would do even if you weren't getting paid to do it". I come home and I make games after work, it's really my life and my obsession. It's awesome being able to do that, especially with the talented team at Epic.
Day to day, as an engineer, I'm hard wired to like meaty problems. I like breaking them down and working through them every day. In game development we are constantly trying to push the boundaries. There's always something new that hasn't been done before. For the nerd and engineer in me there's nothing more compelling than that. If things blow up and look cool as a result of my work, even better! I get to acquiesce my creative side by making cool gameplay and my engineering side by implementing systems or helping others to do their jobs better.
Over the years, have there been any techniques, methodologies, or best practices you have learned or developed that have served you well you would be willing to share?
From a programmer standpoint, just laying down code is important. A lot of the times when you think of certain features it can be overwhelming. Here is this gigantic system I have to create and this is all the stuff it has to link to, where do I even begin? You get "analysis paralysis" where you over think the problem so much that you don't actually start anywhere.
Just start throwing down code, even if you think it's awful. You have a starting point at least. You can make it better as you go. It gives you momentum and a vitally important foothold.
![]() |
| Kismet example |
I think my biggest words of wisdom are to just to get something going even if that start is the biggest, ugliest kitbashed hack in the world. At least you have a starting point and you can make that into something.
Another important thing I've learned, especially for gameplay programmers, is it's very important to have experience working hand in hand with the different disciplines. You don't have to be an expert at what they do and how they do it, but if you have an understanding and an appreciation it makes it a lot easier to: A) Work with them because you have a common language you can now speak, and B) When you're coming up with gameplay features it's very important to understand what other departments limitations and concerns are.
For the programmer the customer isn't just the person buying the game, it's the people that have to use the systems that we've made to also make that game. We need to make the designers, artists, and everyone who has to use the engine happy. You don't want to limit them in any way. You want to give them the tools that empower them as opposed to constrain their vision.
Is there anything about Gears 3 you are particularly excited about in which you were directly involved?
![]() |
| Menus made possible by Nick and the UI team |
We've got this crazy amount of depth with the stats system, awards pages, and end of rounds screens with the in-game scoreboards. Other game studios often have a large team dedicated to stats programming and UI. We pulled it off with just a few guys. We were basically building the plane as we were flying it. Just the fact that we got it all done in the time frame we did, at the quality level we did it, I'm really proud of that.















