The latest post-funding update for Shadowrun Returns is a developer diary with lead engineer Chris Kohnert, which focuses on the game's AI. Here's a snip:
One of the most important elements of any good single player game is a challenging and believable AI system. Since we've recently been tying up loose ends in the bulk of our core AI, I figured it would be a good time shine a bit of light into some of the elements of it, and how it integrates with some of the story-related gameplay elements of SR:R.
For this game, we have many different ways for you to approach any given scenario: do you try a frontal assault? Do you try to don a disguise and trick the guards into letting you into the server room? Do you need to protect that decker as he overtakes that computer node in order to take control of that mini-gun turret?
In order to facilitate this flexible approach to tackling a level, the AI must be able to interweave many different disciplines and game systems and respond to a lot of different situations. Let's talk a bit about how this works at a very high level.
The very first thing an AI needs to do is to be aware of its surroundings. For instance, when you move around a scene and perform actions, a guard will make an (awareness) check (i.e. (Do I see him?)). This is where stealth, line of sight, and audible cues are sensed and perceived (and also where that awesome ninja suit might come in handy). Assuming the guard sees you, he must then make what we're calling a (perception) check (i.e. (What do I notice about him?)).
This is where the non-combat elements of the game start to come into play. For example, if you've managed to procure a guard's uniform, he may take a look at you and decide you aren't a threat. Though, that uniform may not do you any good if you're carrying a couple of assault rifles when the standard issue weapon is a pistol. (Yes, we actually model that level of sophistication! Though whether it gets into the final game is based on how much fun it winds up being. . .)
Once an AI has perceived you and identified you as a threat, it drops down into a high level planning system where it determines what types of actions it should perform. Things like staying near a VIP to protect him or her or barreling down the hallway to take out the interlopers are resolved at this level. This level of logic, in our system, is implemented using behavior trees. They can be very useful for choosing among high level alternatives and goals.