Do you want to help make games for a living? This feature series explores some of the roles you may not have considered.
It’s easy to forget how much work goes into making a videogame, particularly the AAA kind. We tend to associate games with one or two visionaries – the Miyamotos, the Levines, the Kojimas – while overlooking the dozens, sometimes hundreds, of men and women who strive daily to implement their vision.
In this multi-part feature, we shine a light on the forgotten, the overlooked – the unsung heroes. Drawing on the expertise of over a dozen experienced developers, we get an insider’s overview of five vital but seldom celebrated roles in game development. We find out what makes these roles so important, what it’s like to work in one, and what it takes, skills and knowledge-wise, to obtain one.
What does a tools programmer do?
“A tools programmer is someone whose sole purpose is help others make better games,” says Brian Gish, a former tools programmer at Sony Online Entertainment and 5th Cell. “As a tools programmer you almost never work directly on a game. Instead you work on internal tools that help artists and designers get their art and ideas into the game as quickly and effortlessly as possible.”
As a tools programmer you almost never work directly on a game. Instead you work on internal tools that help artists and designers get their art and ideas into the game as quickly and effortlessly as possible. – Brian Gish
Tools developers work exclusively behind the scenes, crafting the software that allows colleagues in other departments to implement their visions and manage their workflow. “Starting from the point the content is created, it goes through several tools on its way,” says Engin Cilasun, senior engine programmer at Avalanche Studios. “For Avalanche Studios this means an exporter plugin will export, for example, a 3D model in our in-house format to disk, then a model material editor will have to take this file and assign shaders and parameters to subsections of the model. In turn, content compile tools pick up the output of these tools and chew through them to generate the runtime data files in yet more in-house formats.”
At the beginning of a project, tools developers spend most of their time figuring out what the needs of the team are and what tools need to be created to fulfil those needs. “Hopefully you’re able to get [the tools] done as early as possible in the project life cycle, because the next phase is focused on polish and saving time,” explains Gish. During this later phase, when the game is in full production, a tools developer’s duties switch to updating existing tools and improving functionality by either cutting defects or introducing new features.
“The bulk of our work happens during the game’s pre-production, so periods of increased activity for the tools team are usually different than for other programming teams,” says Jowita Hącia, a tools programmer for CD Projekt Red. “The reason for this is we need to create solutions for other teams before production begins. Just how much work we end up with depends on what kind of tools the team will need, the producers’ plan and vision for the game.”
What it’s like being a tools programmer?
Because tools developers work on a different schedule to the rest of the development team, they are not typically subject to the intense crunch periods characteristic of other roles in the industry. “My work life has almost always been 10am to 6pm,” Gish says. “Since most of a tools programmers tasks don’t overlap with publisher deadlines/milestones, I would definitely say that tools programmers have an easier work schedule than the other disciplines. I’m normally only [in] crunch if I’m trying to show support for my fellow coworkers, or if I’m working on a tool that would greatly help their efforts.”
Where gameplay or rendering programmers can be compared to warriors or wizards fighting the good fight on the front lines, tools programmers focus on buffing the team’s strength and effectiveness. – Jowita Hącia
Tools programmers are helpers: there to fix problems and make the whole arduous process of making videogames just that little bit easier. Hącia offers an illuminating – and wonderfully nerdy – analogy: “Where gameplay or rendering programmers can be compared to warriors or wizards fighting the good fight on the front lines, tools programmers focus on buffing the team’s strength and effectiveness.”
That’s when things go right. What about when things go wrong? Miscommunications and shifting priorities over the course of development sometimes means that tools programmers will invest time and effort into creating tools that are useless or obsolete. On top of that, with a million-and-one feature requests and bugs to resolve, tools programmers sometimes make the mistake of overlooking the little things that distinguish intuitive, easy-to-use software from a frustrating chore.
“It’s easy to forget about, especially when you’re developing something for in-house,” confesses Hącia. “You want the users to be able to ease into working with the tools, similar to how your want gamers to be able to ease themselves into the experience when playing your title. And to achieve this, getting the input of the actual end-users, UI designers, and experienced technical designers is invaluable.”
How can I become a tools programmer?
Unsurprisingly, tools programmer’s require a solid background in programming and a proven ability to build software to specification and deadline. “I went to school for programming and that’s what I recommend for everyone that wants to get into the field,” says Gish. Those without tertiary qualifications can increase their chances of securing a role by developing a deep working knowledge of one or more common programming languages. “One of my most indispensable books is ‘Data Structures & Algorithm Analysis in C++’ by Mark A. Weiss,” Gish continues. “Knowing that book backwards and forwards will help in any job interview and make you a great programmer.”
Beyond programming know-how, the next most essential skill for a tools programmer is… empathy. Tools are made for users, so the ability to place yourself in their shoes – to understand their needs – is absolutely essential. Good tools programmers are necessarily good listeners, and good watchers. They study their users, looking with an eagle-eye for any sign that their works is not as intuitive as it should be.
“Watch people use popular third-party software, look at their hands, how they reach for things,” Cilasun advises. “The majority of the things you build will have some sort of user interface, and that will be all the user sees. Nobody will care about how the little intricate gears inside line up perfectly, but they will complain promptly as soon as one of the buttons does not provide feedback immediately. Take care to think about shorter, easier way to achieve their goals.”
“In short, and above all, think of tools as a game; provide a beginner’s mode and a ‘hurt me plenty’ setting, and everyone will love you for it.”
Thanks to Brian Gish, Jowita Hącia, and Engin Cilasun for their invaluable assistance. Keep an eye on IGN for part four of Unsung Heroes: AI programmers, and be sure to check out part one: sound designers and part two: QA testers.
Dan Staines is a freelance writer and academic with an unhealthy fascination with moral dilemmas and Deus Ex. You can read more of his stuff and listen to his terrible music at danstaines.com, and tweet at him @drstiz.