vendredi 1 septembre 2017

Getting into Games: What Do AI Programmers Do?


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.

This piece profiles AI programmers, and the others in the series are: sound designers, QA testerstools programmers, and UX specialists.

What does an AI programmer do?

AI programmers are the codesmiths responsible for bringing NPCs to life. They are builders, constructing virtual volition for the friends, foes, and figurants that populate videogames. Without AI, there would be no tenacious ghosts in Pac-Man, no menacing ganados in Resident Evil 4, and no capable, endearing Elizabeth in BioShock Infinite. Without AI, videogames would be inert.

But like many important and underappreciated things, most of us don’t pay attention to AI until it performs badly. “[Gamers] wouldn't notice good AI unless it does something brilliant, but as soon as it messes up, it's a ‘feels bad’ moment,” says Ben Wooller, senior software engineer on Blizzard’s Heroes of the Storm.

Nothing kills immersion quicker than NPCs who treadmill mindlessly into walls or stand oblivious while their friends are gunned down around them. But as games become more complex, making NPCs that don’t slip-up in obvious, sometimes hilarious ways is getting harder and harder.

Elizabeth in BioShock Infinite.

Elizabeth shows just how far AI and characterisation has come.

“A lot of AAA titles have moved towards more open worlds which increases the requirements on the AI,” explains Stefan Dagnell, lead AI programmer at Avalanche Studios. “It needs to be able to handle situations that no one even thought of during development, like the Skyrim bucket trick. You need to have a more robust design of the mental state of the characters and how different actions affect that.”

What it’s like being an AI programmer?

AI programmers are deeply involved in the production process from the word go, crafting prototypes and consulting frequently with their colleagues throughout the course of development. “We work very closely with designers and animators to massage ideas into something that is doable before realising it in-game,” continues Dagnell. “Most ideas start with some experience you want the player to have in the game and it's the programmer's responsibility to break that down into pieces that are technically feasible and that work together with everything else.”

Once basic AI is built and implemented, testing commences to identify bugs and other areas that need improvement. “For example, every night we’d set the F1 2016 AIs racing against each other so that when we got back in the morning we could run a bug report and check on issues,” says Robert Grant, AI programmer at Codemasters. “We’d also test the AIs by getting them to run as many laps as possible on different tyre compounds so that we can monitor the degradation.”

F1 2016.

Believable AI is crucial to simulation racers.

Like most other roles in game development, the daily routine and work/life balance of an AI developer varies from company to company. “For the most part it can be a 9-5 job but you need to be a flexible to the needs and demands of the project – especially if something isn’t working in the way it should do,” Grant says. “There tends to be more overtime as you get towards the end of the development cycle as you are tracking down bugs, fixing, and adding that all important polish.”

Dagnell agrees, but differs from Grant in that he “definitely would not” call AI programming a 9-5 job. “When you put a bunch of super enthusiastic people on making a game they will pour their souls into it,” he tells us. “That said, most mature companies realise the value of their employees and do their best to make them want to stay,  which means minimizing crunch since it’s unhealthy and tends to make people want to quit.”

How can I become an AI programmer?

According to Wooller, a degree in computing is “almost essential” for becoming an AI programmer. In addition to possessing a deep working knowledge of topics related specifically to AI such as path-finding and state machines, AI programmers are also expected to have strong general programming knowledge and an aptitude for delving into a game’s innards to root out problems.

“The most important part of being an AI programmer is being a programmer, the AI part comes later,” says Grant. “Having these general programming skills is important as you will have a wider understanding that lets you jump into different areas of the game and look at possible fixes and solutions. After all, problems that affect the AI can come from anywhere in the code base or even from the data that the game loads.”

The most important part of being an AI programmer is being a programmer, the AI part comes later. - Robert Grant

For Dagnell, there are two essential skills to being a good AI programmer: solid technical knowledge and a keen eye for design. The latter is crucial, he says, because it allows AI designers to spot opportunities where they can “cheat” and fool the player into thinking the AI is behaving intelligently or with purpose. “If we want the player to know everything about a character just by looking at it for a second, then we need to use the knowledge and preconceptions the player already has. If you see a character unloading a cart next to a market you think that he's brought his wares from his farm to sell them. You don't have to see him growing the crops, harvesting them, loading them on a cart and so on.”

Even with a degree in computing and strong programming and design skills, it can still be extremely difficult to land a job as an AI programmer. To differentiate yourself, Wooller recommends filling out your portfolio with as many completed projects as possible. “They could be university projects, work projects, or personal projects, but you have to be able to demonstrate that you can make things, and you are passionate about them. You also learn a lot in the process, whether it's how to work as a team, how A-star pathfinding works, the importance of cache-coherency, or simply how to deal with failure and stay motivated.”

“You'll probably have to apply to many studios before getting your first game job,” he concludes. “I did!”

Thanks to Stefan Dagnell, Robert Grant, and Ben Wooller for their invaluable assistance. Catch up on all five parts of Unsung Heroes: sound designersQA testerstools programmers, AI programmers and UX specialists.

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.

Let's block ads! (Why?)

Aucun commentaire:

Enregistrer un commentaire