Developer Spotlight: Curt Hartung
For starters, can you provide a brief synopsis of who you are and what your role is with Killing Floor 2?
Depending on the project I might work as a generalist (audio, ai, gameplay, etc..) but usually as a back-end systems programmer, creating and maintaining the scaffolding of a game such as inventory management, and server infrastructure. That sort of thing.
How long have you been employed at Tripwire?
Three years this August.
Take us through a typical day of work at Tripwire for you, what is it like when you show up at the office?
First thing in the morning I usually get back to work on whatever feature or bug I left off with the night before. Most tasks only take a few days unless it’s a long-term project, but even then, we break it down into manageable chunks with well defined start/finish conditions.
I always have an eye to Jira and email for issues that come in from QA that need attention or answering questions/collaborating with co-workers on a system I have knowledge in or just general advice. Sometimes those meetings result in additional tasks but not usually.
How did you get started in the Games Industry?
Almost by accident. I always loved playing games and working with computers to write little games of my own (way before it was cool) but when it came to a profession I went with my gut and got a degree in Mechanical Engineering, relegating game programming to “hobby” status. It honestly never occurred to me that I could get paid to do it.
Some friends of mine and I decided we wanted a multi-player Tie Fighter game so we put our heads together and wrote it. That experience and the connections I made led me to my first real game programming job on SOE’s EverQuest, and I haven’t looked back since.
What accomplishment are you most proud of while working in the Games Industry?
Rewriting the EvE Online communications stack to be multi-threaded C++ instead of quasi-single-threaded Python. It was considered a pie-in-the-sky crazy idea, but my manager took a chance and let me do it. After it was tested and deployed, it reduced the load on servers by an order of magnitude and similarly increased the maximum number of ships that could participate in a battle from many hundreds to many thousands.
What hobbies do you enjoy outside the workplace?
Programming! I truly love creating programs, I think of them as virtual, moving sculptures. I work with a lot of embedded electronics for various projects, 3D printing, making the occasional steampunk showpiece.
What fascinates you the most about what you do at Tripwire?
The quality of my co-workers, frankly. Tripwire has a habit of hiring only the best, and it shows. Regardless of the department, whenever I have to bring questions or solicit requirements (both often) I can count on interfacing with competent professionals who are masters of their field. It’s a rare privilege.
What is your all-time favorite video game and why?
I explored that game before the internet was a thing and it consumed a year of my life in front of the Apple II. I had to figure it all out for myself. It was deep, meaningful, required note-taking and exploration and using your head, not just button mashing. The minimalist feel of the game (maximum for the time, it wasn’t a choice) allowed the player to bring his own imagination in a way that has been lost on modern title with photo-real graphics. I don’t need to imagine what the Witcher looks like, but Swiftwind the mage? All me.
What language do you program in? Any reason(s) you use this language over others?
Primarily C++ and c#. The primary reason is efficiency and engine requirements. Unreal is written in C++ and I work with it at that level. C++ is a well understood language that gives you all the tools you need to make fast, efficient programs that are easy to understand for those who come after, but be careful, like a crane that can build a house, it can also knock it down.
C# is a nice managed language that lets one write fast efficient programs that look and feel like C++ but have some important differences. It’s very handy for tasks where “fast enough” is acceptable, especially when balanced against the lower development time such a higher-level language offers.
What advice might you have for those interested in pursuing a programming career at a game studio?
You must love programming enough to enjoy chasing bugs down and spending hours reading/researching to come up with the right algorithm. Programming, and especially debugging, is a muscle and there is no shortcut to exercising it.
Get your feet wet anywhere and just keep at it. Have a short term, achievable goal in mind and pursue it until you get there. If the goal is “a good feeling jump mechanic for a simple platformer” great, don’t stop until you have it, you will learn many valuable lessons along the way.
Any last parting words of wisdom?
It’s easy to look at a triple-A game and be intimidated by what must have been required to create it. Always remember that it was built by game developers no smarter than you. The only difference between you and them is a bridge of practice and experience. Some will cross faster than others but its all the same bridge, and every hour of dedication brings you closer to the other side.