[Blizzard Engineer Max Dyckhoff shares "The Three Laws of AI" and his thoughts on other essential lessons we should be imparting on the future generations of budding AI engineers, in this #altdevblogaday-reprinted opinion piece.]
Game AI engineering is a hard to define subject. A group I am a part of had a recent discussion about what we should be teaching the future generations of budding AI engineers, and there were various propositions flying around for potential 'curriculums'. Ultimately there can be no 'right' solution, but here I will share with you my views on the subject.
90 Percent Of Game AI Is A*
Game AI researcher Luke Dicken recently wrote about the differences between game AI and traditional AI, and brought up this obvious point. There are many very neat algorithms that we use in AI, but A* is the big one. I should give a quick shout out to finite state machines and behavior trees, which have treated me well over the years – I'll even concede that planners (like GOAP) have a place in game AI – but A* is used by every pathfinding system I have ever seen, and has other applications besides that.
To say A* is 90 percent of Game AI though is like saying a house is 90 percent bricks. What's missing is the finesse. Creating interesting game AI is about identifying interesting problems to solve and coming up with novel ways to solve them. When I interview someone for an AI engineering position I don't ask about their understanding of existing techniques – that's what Google is for – I identify whether or not they have the desire to assess a situation and break down what needs to happen either to make the AI more fun or more intelligent.
Make It Fun
A lot of discussion about AI ignores this fact: The difference between academic AI and game AI is that we're trying to make a game fun. The intelligence exhibited by NPCs in most games is inferred by their actions to make the game fun for the player, not actually codified by some extremely intelligent system.
A colleague and I came up with a list of 'Three Laws of AI' a few years ago:
- Make it fun.
- Make it not stupid, so long as it doesn't break #1.
- Make mistakes, so long as it doesn't break #1 or #2.