Steve is a principal software engineer at Nintendo Technology Development, where he researches new techniques for Nintendo’s current and future platforms, architects development tools such as the Nintendo CPU Profiler, analyzes/visualizes user and game data, organizes internal technical talks, and manages UX among Nintendo’s development tools. Before Nintendo, Steve worked primarily as an AI engineer at several Seattle start-ups including Gas Powered Games, WizBang Software Productions, and Surreal Software. He earned a B.S. in computer engineering and a M.S. in computer science, both from the University of Washington.View the profile
About the talk
Over the last 40 years, game AI professionals have crafted many architectures to allow humans to program agent behavior in video games. These game AI architectures can be thought of as domain specific languages with the goal of being powerful, scalable, modular, expressive, concise, easy to debug, and easy to reason about. Take a tour through a handful of architectures in this unique field and see how each manages to excel. While not directly applicable outside of the game industry, hopefully, clever aspects resonate with your own problem space and offer inspiration for your current or future challenges.
Steve has been a principal figure in the game AI community for almost two decades. After working as an AI engineer at several Seattle startups, he managed and edited nine game AI and game development books. Steve has taught game AI since 2006 at the DigiPen Institute of Technology and has 14 issued US patents.
So first of all, why are we here? Why do why do we come to conferences and all that? And really I think the big thing is to be exposed to new ideas, right and having having joined you over the last 3 days. It's been really wonderful and I've and I have been exposed to new ideas cuz I would have normally come to this conference cuz I really wasn't even aware of it and I was invited to let me just to help motivate this about. Being exposed to new ideas. Yeah, this is a good luck. And this is
Caleb who wrote the book but he he specialized specialized thinking about Black Swan events things that would like tank the stock market in such. What's a Black Swan event? It's is something that's an outlier that has an extreme impact on the world between retrospective leeuwen after it happens. Everybody goes. Oh, yeah, we should have that was going to happen. But of course you cannot predict these things. These are unknown unknowns a Black Swan and some examples of black swans are the
depression things that really had a big impact on the world and you also can have good black swans like Patio and finding penicillin an existence of human beings before they were human beings that some creature would become super intelligent and then take over a colonizer whole earth and then kill off most the other creatures like we didn't we didn't expect that right? So think about white cloud and like Mainframe some things straight cuz I can take out your your data center REITs you want to locate them other places fascinates me was always thinking about the good black swans. How do
you promote good black porn predict where they going to come from and basically did Bisons meet lots of people like we're doing here at this conference expose yourself to diverse ideas like a conference and take advantage of opportunity. So I was asked to speak here. I took advantage of this opportunity because you just don't know. What do you meet what neat idea what you'll see. Dentist in Folsom strategy Adventure capitalist, right. They don't know which company is going to take off and be worth a billion dollars. They invested lots of them
The Limited downside hoping one of them has unlimited outside, right? And so you in your life you want to take advantage of very small little risk things thinking that one of them, you know can really pay off. Starting to talk about gay may I might have seen this? This is very recent deepmind created the sinkhole alphastar and it plays this this game called Starcraft 2, but they use the a deep neural network training with supervised learning and reinforcement learning to play this game. And this game is considered harder than go right
and recently. It did beat some maybe not the best champions in the world, but the very highly rated ones and this is rough and human games each agent experience of the 200 years of playing this game. That's a lot of data. Why does what is why are they putting machine learning on this video game the video game industry better, right? It's to use video games of the tool to prove out the cool concepts of machine learning. So hopefully they can be applied to the things that make money.
Play another human's that you don't need an AI like this for this game is stuck in a relief benefit too much but surprisingly doesn't play that big. It's just L and hopefully that's that's what I'll be explaining but I will think about all the architectures I do. So of course game industry is business right to make money. It's an entertainment business may be different than many of you are familiar with its this a lot of money in 35 billion in the last year and This is a performance conference somewhat performance of the constant concern the video game industry
right from day one. You don't run at 30 frames per second. You can't ship your game. And so everybody's thinking about performance. The artists are thinking about performance the game designers that everybody's thinking about the form and at the company where I work full time. I actually work on performance tool to help our developers. Okay. So let's talk about game AI so give me a tool box full of tools that you might need to apply to different different games does neural Nets. This is one thing is it's a lot of different things
and architecture movement pathfinding analysis fencing these things learning is someone using games not usually what we called machine learning more statistical simple learning content generation is a fascinating one that's idea of having computers make the content make some music make the story the writing make a the levels make a i for games. So it give me a high is not trying to just destroy the player that gave me I have to support the story The Challenge of the game.
Whatever the game designers want the game to be and overall the experience of playing the game. How many people play game games once a month at least once a week? I want the day. I want wants a couple. Okay. Okay. So what's about in most games is behavior reasonable Behavior interesting Behavior entertaining Behavior. A lot of behavior isn't very intelligent on purpose because the game has to be beatable player has to beat the game. You're not trying to make this easy to beat the player. So that's not really the biggest problem. What you're
trying to do is make it look believable right make it look reason. Summer camp machine learning this behavior and it can but you could ask the other question is will can machine learning right direct an act in a play cuz that's games. Are you making agents that have to act and sand and deliver their lines and do all these things and it should be in service of the game which is an entertainment product. And so asking machine learning to do that was pretty rough. That's there's a lot of
decisions and there's a lot of creativity and stuff. So really it's a bigger the bigger problem is having humans having the developers or the people be able to direct the game. May I direct the agent and like how is that? How is it done? So I in any way I could argue that biggest problem in 4 games is or is really getting humans to be able to handle Kevin James been in the game industry a long time. She worked on the original Red Dead Redemption Red Dead Redemption 2 came out very recently and I think maybe one of most expensive video games ever made. I'm trying to remember the numbers
something like nine hundred million dollars expensive game behavior is the absolute right answer in this domain in some ways. I think we're not even really in the business of building an AI. We're in the business of building domain-specific highly customizable carefully constraint programming languages. What we do is we find better ways to enable humans to Define how the computer should behave which is fundamentally what programming is and we as a community game and I specifically have led the charge
in this domain for two to three decades now and we've made an enormous strides along the way health and Military simulation industry is only now figuring out things. We did 10 years ago, like Behavior Trees Friends and he would know cuz he works at Lockheed Martin for the last 5 years or so working on simulations to help train soldiers. Just curious. He says military and she just discovered Behavior trees who is your nose with a behavior trees? Right, you guys haven't discovered Behavior. Not that you did them, but I I will actually cover that cuz that is one of the most popular
architecture. Okay, what do we want from? Our game AR AI architectures like a lot of software is always want the code to be reusable so we can reuse the stuff. We wrote in lots of different places. That's always nice and we got to get quick iteration. We need to constantly try things custom. Try things test and Pregnant things to do in the game the fast you can get that are rationed the faster you can make your games and games take years to make time is very important. So how do you achieve these things will for scalable a lot of lot of times you're looking at hierarchical
techniques and we'll see a couple of those reusable means modularity of some kind and quick adoration means while the game is running. I need to be able to change the code instantly have it reflected in the game and test without rebooting the game without Compadre compiling the game. And so how do you do that? Right? That's that's d'architecture is also important for that to architecture kind of is is just a woman call scripting languages. I'm also known as DSL Zora domain specific language and what's going on here is that we want to the game is written probably C or C+ plus but we need
to have a scripting language to that. That's a that's an abstraction. So maybe people who aren't programmers can change the game. Maybe I can write lightweight logic or something so or or even programmers by making a higher level language, right? That means faster programming. Work faster to is hot loading. And that is that the game is running you change code you change real logic and you needed to load into the game that moment do whatever compiling or whatever on the fly to get it inside of the running game is a scripting
language or something and then there is no memory management nowadays don't have garbage collection to go every game company would make their own scripting language as brutal as brutal cuz people are terrible writing new languages and they were only use inside a particular company. And so there. But achieved the first two they made an abstraction and you could load them while the game was running. Inside one company even made it so that you could program in N C plus plus and it would compile seats with us while the game is running and get it
inserted recently games are using now C sharp and Lua as their scripting languages which have garbage collection. But the base coat is almost always something faster like people. Okay store first architecture and I'm sure you know I've heard of this machine has won most common software design patterns there is right and so for video game this is you have a states there and blue under attack and there's reasons why you changed between the state and so kind of the core problem of game AI is what you might call Action selection. What
action is this agent going to be doing at any particular time? And so if we start and say the Wonder state they're wondering and I can always just check with state they're in and see what they're doing. And if they see an enemy attack and then if there's no enemy and then if there's no enemy, they'll go back to things going on here many many years ago like an 80s and 90s on but the game started getting a little bit more complicated and State. If you add too many sticks and you can kind of do this through a thought experiment
pretty easy just say like, okay, what would a state machine look like in heads 30 States? Stop pausing. It's not 10030. The problem would say machines as if you had say 30 States and I want to add a state. I have to reconsider all the other states that exists to this should I transition into this new state from all those other 30 and then should I transition out of this new state into any of those Thirty? It's just right humans make mistakes as a mess going to need State machines to stay under 10 states to be reasonable and you just can't get very complicated behaviorist. If you
keep the number of states down finite State machines or HF SMS and I did but then you put a state machine in a state. And so now you can actually buys you two things that makes it makes now the whole state machine could be modular and put in another state and you can have even another state machines. I'm going down and it's a little bit left out of state to this outside one. I don't have to reconsider all the states that are in there still a list for the
simplest creatures are still considered something. You probably wouldn't use any more another kind of little design pattern that that's interesting for gaming and spin around very long time is dealing with dealing with interruptions. So you might just have a character in the standing around and all the sudden they decide to build something so they build a like in real time strategy for building a factory building a factory and then someone attacks them. Okay. Well now they got a text back. So now Pusheen attack
Behavior kind of someone and then when I'm done attacking them and I go back to what I was doing before it was kind of this memory of like so that you can be interrupted and then go back to what you're doing before interesting that you can actually the state machines. You just have to have a operation site State machines called pop so that the same thing can remember which state it came from and then in the attack is a pop and it will go back to the whatever state of Mo
State machines. You wouldn't have an operation like that normally, but you can incorporate that. What happened? Is that say machines? They're not holding up there. There's a brittle these problems and so around 2004-2005 complex enough that these two games book figured out an invented new architectures or co-opted them for Macadamia in order to make the complexity that they need it. And so the first one's Behavior trees which I alluded to before this happened in 2004 with a game called Halo 2. And then in 2005. They took academic
planning strips. Actually, it is called and made it work in these games multimillion-dollar games and the fact that they were able to ship it and make it work. Was it a testament to that? This would actually work when it happened is is because each of these architectures were in these hit games that were the biggest games of those years and then the people who did it spoke at a conference like this. And when they did that everyone now knew about it and started using it an end and start experimenting with these things. Usually
program it by dragging and dropping boxes and drawing arrows and all kinds of things also stepped through this in a second cuz this is pretty fascinating. How do you program visually like this? I can't I don't know for sure. Maybe there's something else that I I just might be the most widely used visual programming language there is cuz this isn't a game engine called unreal the Unreal Engine and there's a lot a lot a thousand thousands of games use and they both support Behavior trees and dragging and dropping into in this kind of thinking maybe
non-programmers. Right right without making the game Crash and hopefully and all that stuff. So this is inside unreal that I'm I'm showing you right here and you might know the company because they are very popular game out right now call fortnite fortnite fortnite. This is this is that same company as work cuz it's really fascinating and it's really hard to kind of program get your head around it at first notes right in these nodes are are are trying to decide what of their children should they run to look
at? The last one is called the selector note selector works is that it first starts. It is a priority list as children are a priority list of actions to try. Okay, so it looks like you will first go down to action and say will you work and there's three possible responses one is is fail. No, I won't work or one is six. Why did I did it? I work where the third one is is working like leave me alone. I'm still working on the problem. What happens if it goes down and it says fail if then goes back
up to the action? And then if that fails it goes to action 3 and if that fails then the selector itself passes failure back up in the tree. Now it's one of those succeed say if I could actually one that failed but I go to action tuna succeed. Then we're done. We just go up to the selector and return success upward in the tree. So it's a priority list of things to try is what it is and those and those leaves can be whole trees rights and then passes this stuff up there. I want to do action one. Then I want to direction to
directions 36 plan the programmer decides when they program the game as well go down to action action 106's and if it happens it goes action to go Section 306 plant sale. Direction to NASA fails. We just say it. We don't try action three weeks a little stale upward and this just means I want to run all my children at the same time. And you know, maybe I'm waiting for success of any of them fail. I'm going to fail is this kind of how that works? Okay. So back to this Behavior tree that's inside this Unreal Engine. So just see some things. So
what it means is that Branch if that fails then try that one priority. Okay, and then we also saw the calendar introduce a new New Concept. I haven't talked about yet. What a decorator is all these blue ones that are kind of at the top of these boxes. And those are just like little checks and that's it is as is Target set. And if that's not true, then it fails immediately. And so they can write his little decorator checks and they just get stored at the top of those notes. And then I
did talk about the sequence node already, but there's an example of it. And remember the way it works. Is that the plan do number one first. Is that one succeeds then do number two number three? Okay, so it's it's weird. This is this is programming as a tree which but you know, you saw from the state machine that programming these agents really needs to be a Cycles really need cyclic Behavior. So where's the cycles? Well, look what happens is that once you would succeed with number 3 there you would put success success in your be
back again and try again and then start at the selector again. And so it is sick like like that the leaves on these leaves at the bottom of those are all the actions. That's that's what the agent is actually going to do. And so all the internal nodes are just decision no to try to figure out eventually which thing you're really going to do what with agents going to do in the world. One last thing is there's a service node. And this is like a polling kind of thing where you can set up a pool. So if you're anywhere in the underneath of this you can set this pool to be like every point five
seconds or one second or whatever you want and so is there an enemy nearby? Is there any nearby control? And started again from that route. So it's a that's another werewolf place with their cycles and it's not obvious from the picture and it's a problem with the Happy Trees, right? You can't really see the cyclic nature in them, which makes it a little hard to understand when you make a program. Would you want it easy to understand? Okay, Blackboard is another weird concept. So this is a society of a Blackboard where it's a shared communication space for all the notes. So I give a
note can write down little notes on their Blackboard on the back part of the tree and then later in a different note it can read that value. And so it's a way to communicate information from different parts of the tree. And so like some nice instead of Target will the writing it to the Blackboard things are checking for the Target their reading from the Blackboard in a bike race. Julie just implemented is like a dictionary the Cycles. The other thing I want to say is interruptions number. I just showed you that that stack that actions that was able to deal with
interruptions. This thing can't deal with interrupt. It gets pulled out of something. It just has to re-evaluate from the root and hopefully get to the same place if you wanted to resume what it was doing that the flaw in this program. This is the most widely used architecture for gaming I right now do we believe it's the final one? No, Brightness got some problems and it's got some scale problems. So this all looks great and pretty but I did hear from someone who works on like the Batman games. I believe it is that they're using Behavior trees and there they have a behavior
trees that are have 40,000 notes. What how do you deal with something like that? Right? So this even though this has great qualities of modularity hierarchical mess and stuff like that. You get too big and it's still a mess and the person who hired the first job is to look at several hundred nodes of this thing that they had and it took him several weeks. So you can imagine the problems of behavior trees is a static plan when it's a plan the programmer decided that this is what they gave your vision should they should
you know these things I already checked into these sequences of things and that's the plan if it's just the other ideas with this should be easier than something amazing, little factoid is The you can you can convert this logic into a finite State machine. You cannot convert every finite State machine into this. So finite State machine is actually slightly more powerful but in practice because of all the interconnects you can raise to is too hard that uses too
hard to program. The previous branches rides understand this tree is to understand that the priority of things and so it isn't quite as modular. Is it my my first fire article modular designer friendly, right? This is meant for game designers with no programming training to be able to to you. The other thing that happened around 2005 was that other game decided to solve the same problem. Seeing machines are crap. Are we going to solve Academia and look at strips, which is Stanford Stanford Institute research Stanford Research
Institute Problem Solver and how the planning works is it is kind of really neat. Just give me Agent goals, like don't defend the spot Patrol this area and then what happens is there's all these actions that they could do and it's up to a search algorithm to find the most efficient sequence of actions to accomplish the goal. So this is some kind of cold a declarative architecture because the other one was like with State machines Bahama trees. If you didn't think of everything it didn't work
situation. This one's a little more robust mix and match all of the actions at runtime evaluating it to try not to die. So it's kind of meat with some problems of debugging in such a way to go. So how you figure out what the desired state of the world want the world to be in the future may be the enemy is dead. And then how do you how is the current state of the world today while the enemy is alive and then do a search to figure out kind of from my desired state to my current states, which actions will get me there. So shoot so every action has two things a precondition an effect. So
shoot has the effect of making enemies. But I have a precondition that the weapon is loaded. And so maybe we'd have to find an action to draw weapon does a precondition I have a weapon but in the current state of the world, so then there's my plan go to sleep in the middle of that sounds very good plan. Right? So we kind of want the most efficient plan problems with this is one problem is the search takes time, right? So it's not very efficient algorithm. Especially if you're you have a lot of actions and a lot of State you have to hold the state of the world in some data structure.
And then that's what you're searching against. Memory was this game that did this in 2005 and it spurred lots of people to try planning and this company is called Model if there is locally here in Seattle their own by Warner Brothers and using this planning system in their games and lots of games decided 10 years of this. We need to go to behavior trees and I ripped it all out and their latest game shadow of War uses babies exclusively. It is using games like Assassin's Creed and in some butt in limited uses like The Sims also,
but as a core architecture, probably not the right thing and one of the reasons why it just wasn't the right thing is these plans 10 and not to be very long and it was just much simpler to author the behavior using Okay, another really neat thing is to architecture someone talk about our utility and smart objects and they both came about from the game The Sims it would never play any of the others the same virtual doll house. This is Biscayne just like five years to develop on this picture will write who is the lead game
designer and you you know, you can't control this family of Sims and you make a house for them to buy furniture for it and they react and utility. Let's first talk about utility utility. This kind of an idea from economics is like what I want to do action selection if I want to choose which action I should do one thing I can do is I could score them I could say what is the utility of doing each action normalize 10% I'm a little, choosing the highest one. That was your day. I might become predictable. So one thing you can do is use a withhold of weighted average
horse weigh a weighted random. Sorry in a weighted random is just I'm going to roll a die using those is my percentages. It's a 60% a time will choose attack 30% off time. I'll choose reload 10% continue to talk about it you can also do is you can take the values that go into making the scores equation. You want to make the scores of the last step. What you would is very powerful thing to do is to be able to take whatever numbers you get and put them against what you might call response curve. So that has a concrete example, so ammo I have a gun you can hold a hundred bullets
bullets in my gun to reload. No, I want a zero reload, right? So if I have a hundred I wanted the score 0 never have 80 bullets. That's a lot of bullets once I get down 100% I want to reload. What's really mean about this response curve if anybody can draw it? Game designer can draw out or anyone to tune the system. Another thing is that notice that this curve can be a personality. Like if I am very timid scared right? I might have my prayer of my bi I shoot
20 bullets and damn it. I'm going to be right and so I have a different personality completely just by drawing a wine different or if I'm very gutsy right? I'll shoot all my bullets. And then only when I have like zero left why we load so it's it's kind of a neat neat thing you can do and then also another thing is called expected utility is you can multiply these numbers by a probability. Like what's the probability of it happening and I can go into the score. So this is this is probably arguably more powerful than Behavior trees for Action selection and finite State machine because
you really have a lot of is not the first priority of things to try it can vary so maybe these are our things we might consider doing runaway reload punch shoot Patrol. And what do you have? A mask that goes into coming up with numbers at the bottom of each of these graphs and then it is looks up and says what should I want to do and the one that's the highest is reload because the ammo is kind you have to redraw all these response Crews to kind of tunic agency like with the house one on the left in your house gets very low you are going to run away instead of
doing any of these other things that's going to become the highest insistence things to use a weighted random. You might not choose to do that right you because there is some value in not being completely predictable. The Sims used utility but then they use in combination with his other architectural smart objects and explain this we start with the game, but if you if you would remember back to the year 2018 had a weird thing we're like these expansion packs came out for like that added Furniture and Things for The Sims to do so,
but now the architectural problem is how do you make an AI that knows how to use thousands of objects and knows how to use objects with never-seen-before when they're just invented and play into the game. How do you do that? In order to pull it off. Let me first explain this concept called a sport it. So you might have read this book. This is a good book by Don Norman the Design of Everyday Things and she didn't invent the word popularized in this book. And I think this book was from the late 70s early 80s conference here in Seattle two weeks ago where he gave a talk you gave
me three years old University of San Diego. But anyways, this this concept of the for dense is the object itself tells you how to use it and the best examples of door handle. I'd like that door handle on the right tells you how to use it. It's tough, but it's been the knowledge of how to use it is in the object. Not necessarily the brain of the person for you to grasp you grasp that you pull right. Where is on the other side? Right? There's nothing you have no choice, but to push the door price of the objects telling you how to
use it. The intelligence is in the object better to hate it when you go to a mall or something and there's some handle and try pulling it doesn't pull right. You got to push the door cuz the damn object lying to you, right and that happens way too much for my taste. Okay, so weird. This is the weird. Don't put the knowledge of how to use objects in the agent put them in the object. So we have it with smart objects is we have a refrigerator in the refrigerator know whose it has food and a broadcast to the world. I have food. I have food I have food
and if there's somebody a Sim around and they're hungry ride the animals that start walking towards the refrigerator and I'll get the food out and the food yells. I got to be cooked. I got to be cooked now going back to the refrigerator Liz one more except the refrigerator when they drop it into the game also has the animations that the person has to played it to open the frigerator. Bundled into the object like why would I use the object? What does a broadcast if I use the object would benefit does it in still and what are the animations to interact with it and because of this you can
completely new pinball machine and just drop it in the game and the character walk up to it start playing it when they're done. They're rewarded with fun is actually what they get rewarded. Okay. So the food goes I need to be cooked in the microwave is the only night cook things. I cook things and some go to the vet you okay in the Sim is this doesn't know any of this stuff right? Just go to it gives us animations to open up the mega fit in with the food in tells it to wait to take it out. And then then you have the cooked food in you can eat it. So this is actually it's all in the
game. What would happen is you have sinned and they'd have those utility scores of all the problems in their life, right? They're hungry Comfort hygiene bladder. The room one is a really funny one room is how nice is the room I'm in. And if the room is really like there's garbage and there's flies which would happen in the game. If you left garbage out and it was crappy Furniture write your room score below in your sim would be a little depressed about it. And so you need to buy better furniture and clean up the place but here are our biggest problem is that are bladder. Oh my God or
bladder is going I need to solve this problem urinating me. Urine hitting me until the same as like I guess right in it. Does goes over the toilet probably has to go twice according to these numbers. If the toilet gets clogged you'll have to unclog it or else it really hurts the room score, right? You don't have to be in a room with a clogged toilet. That's no good. So this is how you combine this utility with smart objects. Can you tell me the real colorful concept you
can go back to the behavior tree and you can make some of those notes that choose which children to do and scored the children. Why not just kind of autumn is a meta architecture we can put any little thing into it. Like if I want to make a leaf of a behavior Tri-State machine I can do that. Why not? This is programming like a leaf or or anything of a middle control note of a behavior Tree in a real run time Dynamics planning. I can do that kind of powerful as a metal architectural open meet things and you can even like have a state machine where each state inside of it
has behaved reasons. Why not? Okay. So here's a little diagram that they had at the time of conceptualizing. This thing in the middle is super hungry a little bit lonely little bit bored. So you can get a picture of the refrigerator is pulling the send when I told your hunger problems, right and then the same as just pulled towards it. So this is just conceptually right you didn't see the mountains in the game. But so you go over there and you eat in your hungry anymore right now, you're just lonely so lonely and got to talk to
somebody break now. I'm not lonely anymore. And we got a pinball machine and and a chessboard and you can see us as playful and serious will see the Sims have different personalities. So this is like a slider bar between like playful too serious and all kinds of different ones. And so if this Sim was more playful to the pinball machine that actually give them more fun points then the chessboard also you had like your need for sociability. Maybe you're a loner in which case you wouldn't need to talk to people
very much or you your very social and so you do need to talk to people and so this utility There's no planning happening here doing sequences of actions from one thing to another. Shipping languages Huracan five nights at machines baby trees planting utility smart and probably but you can see the problem, right? You need to author the behavior like humans need to just like humans author books, right? You want to get a make an entertainment product and it isn't a fancy stop and one problem with signal. That's great. But then they're only for like one decision and in
games agents have thousands of decisions to make and you're going to need training data and you can't do deep learning with very little training data the pieces of data, right and you just won't have access to that end of the game is made is constantly changing. Right thing today, the game is changing. You can't just get training data in two days and you'll have to ship the product. So it real, real real problems with machine learning trying to get a jerk to be used for like detecting
cheaters on the Internet or something like that and actually want some it looks very promising is using machine learning to make the animations. Animated animations are very rough brutal problem and games. Do I have no idea but when I worked on a baseball game in 1998, we had 500 animation. Are 3D baseball game nowadays like likes a fifo with your soccer game will have 8000 animations for just soccer player. Right? And at any moment is blending like 20 different animations at once try is it to the horrendous scale and an end problem
offering problem? And it's one that machine learning is already looking like it can help with so promoting good salon. Right meet lots of people expose yourself to diverse ideas. Hopefully I did that today. I told you about things you have no idea. What's happening because why why would you break? Why would you you didn't don't go to game developer conferences. You don't just stop but I think it's really important to expose yourself to to to new ideas and stuff cuz you just don't know where that
that next idea will come. I didn't want to I think I have enough time to to close with one word thought Software is a mess humans make fragile things like software right software is brutally fragile. It's always breaking and fragile things the public fragile things like volatility the moment we start like throwing them things that they've never seen before they break just like a glass start to throw it around. It just breaks. So fragile things predictability, but the real world is not like that.
Because humans are unpredictable specially is video games another counting on video games, but just in the real world. Okay, so the world is unpredictable as well. So this this fragile stuff is is is real problem. What is the opposite of fragile? I feel like if you think of a glass in a box, right? That's fragile opposite of that might say robust. Hey boy, won't break. The interesting way to think about it is the true opposite of fragile would be that the glass every time the package was thrown the glass got stronger. Blow your
mind like it's not true of most materials that we but the Black Swan the same author wrote a book called anti fragile invented the word to being the opposite of fragile is like this is what we want. We want things that are anti fragile things that get stronger when they are exposed to volatility when exposed to things I've never seen before so during development with software. We are going to break someone's product. Shipt Ray Rice been as fragile as all heck and you've got an update cuz and what else are going to do,
but that's so why is being anti fragile so difficult to program. Well, it's cuz the door in Black Swan You can't predict all the necessary things that are going to happen to your software. And so you how do you how do you protect against that like, can you protect against that's what I was kind of a dress that there are things you can do to protect against Black Swan sewing business actually one way to protect against black swans is this because of Datacenter bright never done it, but the problem with redundancy
is it's the opposite of what every business wants which is efficiency. Write every business want the fish waste money on extra places that have inventory or factories or whatever. They want to factories that make the same thing right or something, right? You would need to Source parts from tune from more than one player. Okay. So how do you survive Randomness? How do you survive volatility? What's with the answer to this? How do you how do you survive black swans? Well, so the anti fragile, okay, but what what is what is it to
be at some muscles are anti fragile. There are things in real life that are anti fragile you use weights and tear your muscles and they get stuck. They're exposed to volatility exposure Randomness and they get stronger humans are anti fragile life is hard to do it. So in the Video Game World fragile would mean what we call these procedure architectures like Behavior trees or state machines, very fragile fragile robust, meaning of declarative architecture sort of maybe like planning that I told you about. Maybe if you didn't think of the certain situation is still deal with it. What do what
you want? If you want to be my way you going to get there is to learn you need adaptive architecture and I didn't talk about it. But player modeling is something in done in the games. It's mostly statistics watch statistically how the game the player plays the game statistically and then you change how the game and I work space on the statistics. And so it's it's it's not direct learning. Direct adaptation like normal to ship wrek is it could do is learn the wrong thing
that's really issues right anti fragile as kind of where it's at. And so NASA figured this out. They used to have this used to be their thing that they would Design Systems according to specified performance requirements. I've heard that many times at this conference. We need to specify are performance requirements. Like no one's doing this. We should make them do that Vanessa decided. We need systems that evolve we need systems that adapt. We need systems are optimized in real time to adapt the things and functional performance to
meet the unknown for whatever crap thing happens to it break is when they send the probe to Pluto or whatever. I can't fix it fix itself have billions of dollars at stake. So right they have the mode they're sufficiently motivated to do this. Right. So that's interesting as I've done things like this morphine system Health Management self-healing materials. Great, so I think it is Annie quote from the book if you were anti fragile, it means you're alive. Because that that's what it's going to take right now to get this
quality willing to spend the money to get this quality is important enough to you. But right this is this is kind of being is to be anti fragile. And so what would my advice be? Okay, let's try to avoid being fragile. We recognize as architectures the quite fragile. We probably end up delivering robustness, which is reasonable thing to do and the best I can tell you is you want at this day and age to Aspire to the end of an aspiration. We don't know completely had to do it. We're still figuring it out and but it is our hope because if you
have that your elbows robusto any black swans at my kitchen That's all I have to thank you. How much time we have cuz I forgot to set up my timer. Five minutes. Wow. Okay. I did it anyway any questions I can tell you anything about the game industry. Has anyone done any benchmarking to compare the particular behavioral tree versus the planning versus the other to see which one performs the best and also are there any constraints on the depth of the behavior tree? Because I would have thought that would affect the performance of the game quite a lot quite apart from the space consideration.
Planning is a great competition intensive Google search OK and then a rule-based systems tend to be bad. I didn't talk about real BAE systems, but you might need a lot of rules to pull off Behavior, like like 20 years ago. They academics took a military rule-based engine cold sore and tried to make it play a video game Quake 2 at the time to them 800 rules to do it. And so it was it turned out very slow to evaluate all those rules but you have to understand that these games are just not that many characters. So running is Bahama trees or state machines or
things like that it or utility. It's it just doesn't show up really there two things for game AI that are the most expensive to do I didn't talk about the number one is pathfinding what that is is trying to find a path to some location in the world. It's a search it's very very costly. It's it's it's one of the most expensive things you can do in gave me eye. The second thing is Ray casting to know whether you can see someone else because to do that you have to shoot a real through the world and see if it hits the person first or a wall and there's a lot of walls and games. There's a lot of
polygons their bags illegal bags of polygons. There's really it's it's it's horribly inefficient to to see if you the real hit a person or a wall and you can do special partitioning and things like that of course speed it up, but it's just it's just extremely costly operation. So if those Two things performance-wise that kill games like 5000 character anything you do is too much to make the AI simple as possible and to tell you more about this game consoles have between 4 and 8
cores a eyes allowed to run on maybe one core AI doesn't get the run on all the course you get one chords because there's there's things that cost more than gaming on physics maybe animation Graphics obviously is the thing that they cost a lot. So AI for performance is not as big a problem. Is this problem of authoring? And iteration speed that's the problem. That's the real Cross of it for performing after all a I also is is budget statements when it comes down to it.
And so you need a general-purpose CPU. You don't want a graph the GPU so don't get any ideas about that almost all games or what you called GPU limited, which means they run as fast as they can and they cannot run no faster because of the graphics is the limiting factor. And that's just true on most of the consoles and even PC. So this is important you can you can use up too much CPU overall, but usually it's the graphics that kills you. Any other questions?
Swaggin milsim Tech was lagging game tag at some point like and they continue to do so in places. So since you said that I'd like to know if you are aware of a company called Bohemia interactive in the arm a series of mine arms teams, and I have friends that were in units set specialized didn't like the dolphin the scenarios and rolling it out and trained troops on it and it was pretty cool because it was 50 years ago and they went out and bought this game basically and then turn it into a steam engine for arms
people trained War. Which is a nice game is not fun to play. It's not incorporating these things stick defective standard at this point cuz the tooling is so good. And so how about this for performance? This game engines are willing to give up twenty 30% of their performance if you consider 8 faster and makes a game faster and get it out of the market. So that is a conscious decision they're making and they know they could be faster but it isn't worth making the development time longer.
Have you ever considered the the the question or the problem or the notion that we are willing and able and in fact required to spend that much more resource on rendering pathfinding recasting then we do on logic even when we're trying to train people. Getting the behavior, right is the hard part. It's not the song my performance against well, I'm talking about the amount of resource that required to make these things happen Human Resources while boats human and computer. Right,
what area is this kind of music thing? Right? It's easy to stand up something kind of that works. And there's just all these Corner cases that break and so it's just it's kind of like performance requirements or it's hard to make AI requirements and it's really hard to scope out how long something to take if not near impossible because it's not until you actually do it that you realize maybe all the holds that are in it. So but if the game is it rendering at 30 frames per second, you just not shipping right and it's going to cost you a lot of money if you miss
Christmas right this very bad. So you can you can live with subpar AI you can't really live with subpar like graphics performance and many games do is it's a matter of time like you might put more time into it. It's better and it just keeps getting better the more time you give you and so just where are you willing to cut it off and not spend any more money. And every game is going to be different right they're going to have to come up with their own judgment is the game about the fires again about something else, right? And so it's about the AI will but the
investment. Taylor questions awesome talk we expected the best and we got better and soon. I mean if somebody would try to dabble with a i n Things I asked I get to asten asked myself. Is there a like a new AI solution to this a problem? So I'm curious of the body of games of tell darra like does 3% of any ideas 93% heavy. I and also what are like that? okay, so what percentage of of games even have a I right so I mean is it's a soda versus AI right does does
the word game have an what's got to know the solutions maybe to the puzzle? So it has like really lame searching in it. Right? Where is you know, the bigger the bigger the game, right? It's it's got more AI so but then some games are just all about playing other humans right now. There's no way I can think about like does the ambient Wildlife or or maybe the level generation? Right? It did make some random levels that are trying to make them interesting to play and so that a eyes in that right? So it's it's it's it can be all over the place
and then you then you asked like is there a way I can get AI to solve the What will its is hummus vegan cuz it's probably because it's just about humans playing other humans. And I mean, you know with a light so funny. It's like you can if you if you want to imagine what the best AI for like a good human-level AI is just imagine paying an actor to Deuce work that you just hire people to do things. Like what what kind of game can we make if we just hired everybody to be the
extras inside the game account Westworld almost is that what that sell more games or not? And there is something people love about beating other humans and once they find out it's an AI they don't like it. Right. So there's something it doesn't matter if the AI is identical in Behavior to a human if you know, it's not a human is route right now pay money for my transaction to beat other humans right up there little things that they can feel smug and that they were better than somebody else but you just don't get that satisfaction from beating a I see if you made it. So
realistic that they I would communicate with you in natural language and it was like UE you might be able to fool a person and in ml laps and then get some enjoyment out of BD maybe that would be the case other questions Okay, I guess we're probably at the end then. Thank you.
Buy this talk
Access to all the recordings of the event
Buy this video
With ConferenceCast.tv, you get access to our library of the world's best conference talks.