What is your role at IllFonic?
My official title was made as a joke (by me), but… it stuck. I’m the Lead Engineer of Feels. Don’t ask what the last bit means, I’m not 100% sure. Also you didn’t ask, but 7 years this March.
What does a Lead Engineer do?
Basically, I manage other engineers. I make sure standards are being followed, tasks are being completed in a timely manner and relatively bug free. But, when the management is done I revert to doing normal engineering duties.
I do get the question a lot of what I actually do as an engineer. Engineers are the folks who make sure all the brilliant art, design, animation, sound, and everything else actually comes together as a game. We write the systems to get your character moving around on screen and interacting with the world. We make sure that the models an artist creates show up on screen and enable animators to give them life. Basically anything you see in games and think “That’s really cool!”… that’s not us. We just make sure you can actually see those cool things.
The only time you’ll really notice an engineer’s work is if the game feels fluid, actions are responsive, and if you can get fully immersed in the game (or a flow state, if you will). We remove all the barriers to the interactivity of the art the rest of our team creates.
Did you always want to be an engineer? And did you want to work in games?
I became interested in games when I was about 2 when my grandfather gave my family an NES. It wasn’t until I was 10 or so that I realized that people actually make games and they don’t just fall out of the sky. At that point I knew I wanted to make games, but had no idea what was involved. I took a career placement test in High School that recommended I either take a job as an engineer or a taxi driver. I was a self-taught web designer (HTML 4, CSS, and PHP was all I knew), so engineering was a natural fit. I still wonder if I missed out on driving a taxi though…
How did you study to become an engineer? Did you go to school or are you self taught?
I went to school at Full Sail University down in Orlando, FL. Some of the logic from web design carried over, but I don’t think I would have made it into games without going to college. I’m pretty envious of folks who can pull off teaching themselves how to make games on their own.
What are some issues you face as an engineer?
It often feels like we’re the first in the door and the last ones out. We have to build up the framework for the game before other departments can get involved. And once they’ve got all their work in we’re the last ones polishing up the game and making sure it runs smooth. If there’s a bug we’ll definitely be responsible for fixing it, and we may have even caused it. If the game is running slow, that’s on us to solve. If a gameplay system feels bad or isn’t fun, we’ll work with design to make sure that gets fixed.
What are your most memorable moments as an engineer?
One major memory stands out when we were trying to put together the E3 trailer for Friday the 13th: The Game. We had been working very late nights pretty much every day trying to get a solid recording of gameplay. Every night would be later than the last and present new issues, either with the recording or the game. One night we were fighting with a bug where one of the characters would disappear from vision mode, seemingly at random. After multiple blurry eyed nights of trying to figure out what broke (and picking up every other shot we could) we eventually tracked it down to the character blinking. Anytime they blinked, it broke some data elsewhere, and would disappear out of Jason’s vision. Tracking that down was probably the most annoyed and happiest I’ve ever felt at the same time. But we did get the trailer out and it was 100% real gameplay driven by real people. Thankfully, we now have dedicated folks who make much better looking trailers than we could and I never have to worry about recording a trailer ever again. Probably.
What would you tell people who are looking for an engineering job in the game industry?
If you’re reading this and want to get into games — engineering or otherwise — go make a game. Do it right now. Go download Unreal or Unity and make a simple game. It doesn’t have to be good or original, you can make your favorite level in another game or just have a character run around. You just need to start somewhere. A degree is fantastic if you’re like me and want some strong structure, but nowadays you can just start making games on whatever hardware you have. It’s magic and you should take advantage of it.
Your most recent contribution to Predator: Hunting Grounds was the creation of the Custom Private Matches. What was it like bringing this feature to the game?
This is probably the biggest feature I’ve been involved in that I’ve written the least code for. I was largely overseeing the development of it by the other engineers on the team (shout outs to Sean and Shawn), which was incredibly rewarding in its own right. But this feature brings what I love the most about making games to the public. You get to play in our sandbox and see what magic you can come up with. Our QA team has been having a blast with it coming up with new modes and hopefully we’ll push some of those out to the general public. In addition to being really cool for players, this is now a development tool that we can use internally to fine tune numbers. It’s been a lot of fun seeing the community start to dig into it and I’m excited to see what all they come up with!
For other people who are just starting off becoming a software engineer, and would want to focus on game development, what advice would you give?
If you’re an engineer already, check out Unreal. If you’re just learning, check out Unity. Both are fantastic engines but Unreal has a bit steeper of a learning curve. We use Unreal ourselves. Other than that (and as above, just go make a game), math is actually super important. Linear algebra (or vector math if you will) is the basis of pretty much every game system that touches the world in some way. Getting a strong handle on how this math works will streamline everything you do. Other than that it’s standard programming advice: don’t optimize too early, take the time to write clean code, and don’t be afraid to get feedback!
What are some of your favorite stories about your time at IllFonic?
There was a time when we flew out to another studio to help them out with some work. We wound up working late and it was just IllFonic folks burning the midnight oil. Someone thought something suspicious was going on and called the police on us. They quickly realized that this group of nerds probably weren’t breaking into the office when I was able to pull up a contact list on their network so they could verify we should be there.
When you’re not programming, what do you like to do with your spare time?
I’m still very much a gamer. I play games differently now though, lots of poking at systems and trying to figure out why a specific design choice was made, or not made. Most nights you’ll find me and my lovely wife on the couch playing games. Sometimes even the same game!