How do you guys deal with that responsibility [given that AI is so critical to immersion]? Am I right? And if it is, how do you deal with that pressure in your work?
TL;DRThey agree AI is a nexus of many systems and must look readable and sensible to players, so they add fallback cases and balance it against being too efficient, while feeling pressure to ship experiences, bugs included.
I think you definitely are right, and I think there's a lot of things there. One is that we are bringing together lots of different game systems, so we're working with all of those things. We're working with the graphics, we're working with animation, we're working with the effects, we're working with the sound design and all of those things. So it's a nexus point for a lot of other people's tech to all make it work. But also you're right that you notice things in gameplay a lot; you don't forgive somebody not doing the right thing a lot more than in a lot of systems. And I think a big part of that is telegraphing what the AI is doing in the right way, making understandable choices. And that's one of the things we've seen with the issues with AI not reacting, in the bugs that we've been fixing recently: not necessarily that they thought they were doing the right behavior, but because it wasn't understandable and readable to the player, it looks wrong, and immediately looks wrong, no matter how clever that behavior might be. And so that's definitely something that we've been working on a lot. And one of the areas we're focusing on is you code your AI for a very known situation, and then designers and level artists and all of these people come up with wonderful ways to test these things, and situations you hadn't imagined when you'd first started writing the code. And so one of the things we've been working on a lot is adding in lots of fallback cases. So, oh, what if I don't have a nav mesh in this particular situation? What should I do instead? What if I have no target, but there's this person who's shooting at me in front of me? And they can react to maybe not necessarily bugs, but other little mishaps in a much more sensible, readable way that's understandable to the player. You're not going to notice so much. And sometimes we go the opposite way, and then they seem to be too efficient, and they can be attacking the player too often, and oh no, they know too much, so you've got to dial it back again. So, yeah, it's a delicate balancing act.
What Andrew is saying there about them being too efficient, that's something that, when we were making the flight AI, I was playing with Yogi from the player experience team, and we were learning how we were playing against each other. And I came up with the prototype, right? And the first prototype that I made, I think my AI just destroyed them all. It was too good. And it's those things that are sometimes hidden, and we keep playing to make sure that it actually feels good, not as good as being a killing machine, but good enough that it's a good challenge.
But I think in addition to that, basically one important thing is that we do feel the pressure of trying to give this experience to the players, right? And I think what's hard in development, this is where reality sometimes comes into place, is that you need to choose sometimes between focusing on the long-term goal or the short-term goal, right? So you know that some bugs might also be things that you might fix later because you have it planned. And obviously, from the way we develop the game and the way we share the game, you often can see much more than what players would usually see in a normal development flow, right? That is, you do it behind closed doors for so long that you only see things when they are working well. So for us as devs, also sometimes there's the frustration of saying, I could have just cleaned this up a bit better, or been focusing more on this other bug or this other experience that Andrew was saying, or the balancing that Diego is also talking about, right? And obviously we do have the great advantage on the other side, that you guys can experience stuff that is not finished and we can get some of the feedback much earlier. And yes, some stuff might already be... but some other stuff it might actually be really good to get that feedback on, right? And the type of changes that we can push based on stuff that we might have not considered. So I think there are advantages and disadvantages as well. But it's definitely good to have this opportunity from our perspective as well.