Meet Dan Posluns, Video Game Programmer
Dan Posluns began his adventure in the cold northern lands of Canada, but journeyed to the USA to pursue a career programming video games. He’s worked on top franchises such as Spore, The Simpsons, The Sims, and LEGO Star Wars, and has written code on multiple platforms including handheld and mobile. He speaks with us today about what it takes to become a game developer, and how you can start your own quest programming games.
What exactly do you do at your job each day?
My days are spent implementing gameplay features, fixing bugs in existing features and systems, and working with artists and designers. I have to make sure they’ll be able to use the features I’m developing, and that my solution correctly achieves what it is they want to do.
That last part is important. A game programmer needs to understand the more ephemeral concepts that artists and designers come up with, and translate them into concrete systems in code. I’m usually the only one who really understands how those systems work. I need to completely simulate the ideas of those artists and designers, and at the same time consider the runtime performance costs.
How did you become a Video Game Programmer?
I’ve always had an interest in game development. I worked on my own indie games very early on, whether plunking away on my Apple IIc or on a TI-85 calculator. I think that’s how a lot of game programmers get started: by working on their own little pet projects.
I have zero artistic skills, so I had to steal art from other games just so I could achieve progress on my own work. One of the great joys about being a game developer is the cross-disciplinary experience of it: now I get to work with some of the most talented artists in the world!
After getting my degree I actually spent some time working on websites before being pursued and ultimately recruited by a game company. They had noticed my homebrew Gameboy Advance work online, and got in touch to offer me a job interview.
Find game schools near you
What do you like, or not like, about the job?
My favorite part of the job is developing systems that neatly wrap a problem, especially when they improve our overall pipeline. Sometimes when I’m implementing a feature, I’ll have to write three other utilities or abstractions that will then help save time and effort for other people in the studio. You can really feel the positive impact you’re having when you can do that. Game development is a team effort, so anything that furthers the team is a big win.
My least favorite part is probably working with systems that are “black boxes.” For example, third-party libraries that I don’t have the source code to. The majority of them aren’t a problem, but sometimes I need to bend a lot of my project around a system that’s poorly designed or has limited APIs or is intended for someone doing something kind of like what I’m doing but not quite. It can be frustrating to have to invent around those limitations. The worst part is having to track down a bug that’s inside a library when I don’t have access to its internals.
What aspect of the Game Programmer job would be people find surprising?
I think one thing that’s surprising is how complicated and time consuming an individual feature can be. For all of the advancements since the 1980’s, and all the powerful new hardware and software available to us today, the technology is still immature in many ways.
Game developers are infamous for having to “crunch” (work late) to meet deadlines. While the amount of crunch varies widely from company to company, it’s pretty rare to find a studio that doesn’t occasionally go through a crunch of some kind. It can be hard to strike a proper work-life balance in games, so it’s important to take responsibility for your own health and well-being – you can rest assured your company won’t do that for you.
What kinds of talents and personality does it take to succeed as a Game Programmer?
Good software engineering skills are important. You can get away with a lot when you’re writing code for just yourself, but when you’re working on a team it’s essential to be able to minimize complexity in the systems you develop.
It’s hard, too, because games are inherently complicated! Some of my favorite pieces of code are tiny and do next to nothing, but they greatly enrich the functionality of the other code that uses them.
Beyond that, it may be trite but games require developers with excellent communication skills. You are dealing with some people who are very artistic and others who are obsessive, and you can measure your success by how well you’re able to help them be successful at their own jobs. So you’d better be able to communicate effectively.
What advice would you give to somebody who’s thinking about game programming as a career?
Anyone considering game development shouldn’t get into it for the glamor or the money or the job security – because you won’t find any of that. You should be truly passionate about games. Not just playing them, but interested in how they work. Wanting to dissect them and make them better. It helps if you’re artistic – if you like to create things.
You’ve probably heard it before, but my advice is this: Go and make games. It doesn’t matter if you finish the project. (Guess what? You probably won’t.) The practical skills you develop writing your own systems and code can’t be found in any educational program.
Then, find yourself a good educational program. There is a lot of disagreement over whether to go for the two-year technical college program or the full degree. But I have always found that, when hiring, candidates with a four-year Bachelor of Science (or better) have been far more prepared with the mathematical and scientific fundamentals than people coming out of a two-year program. I find that the two-year programs focus more on project work and other work designed to pad out your resume. They are intended to get you hired, not to equip you with the scientific foundation you need.
That said, a B.Sc. program is often underwhelming in the amount of practical coding you do. But if you’re following my earlier advice and making your own stuff on your own time, then you’ll still be ahead of the game there.
What books or other learning would you recommend to someone just starting out?
There are great online resources that didn’t exist when I was just starting out. Find some tutorials and start working through them. My advice is to never copy-paste code from a tutorial – as you’re following the tutorial along, take the time to re-type the code, using whatever notation and stylistic conventions you prefer. Rename variables and functions in the style you’ve adopted and using names that make sense to you. That will force you to keep doing it as you continue to add new tutorial code that uses those variables and functions.
The best thing about being a homebrew developer nowadays is that you can develop for almost any platform you choose, and relatively inexpensively. So pick the platform you love the most and make a game on that platform. Find the forums for developing on that platform and contribute to the conversations. You will have lots of questions to ask, but eventually you will be able to answer other people’s questions as well. Don’t be surprised if you attract the attention of a game company if you’re active in the forums for a platform they’re developing on – after all, that’s how I got my first break into the game industry.
You can reach Dan via his website. If you liked this article, give back by sharing on Facebook, LinkedIn or Twitter.