Elizabeth is an important computer-controlled character that follows the player around through the story. It’s essential for this character to appear intelligent and helpful. She must not stupidly / accidentally block players from achieving their goals.

While she is idle, she focused her attention on scene elements that the players can also see. It creates a shared reality, the players are reassured that this character perceives the environment with the same senses as themselves. She casually reads posters or looks at shop windows. She reacts emotionally to passers-by and the player and events (smiling, gasping, pondering, frowning), timed at the same intervals as an exploring player would do it. If she didn’t react, the player would lose trust in her sanity. At the same time, she does not get stuck gaping at decorations when something more important happens, she doesn’t stare or follow you creepily, and she does not annoy the players by being too commanding of their attention — all very fine lines not to cross.

They achieved that by tagging the environment with meta info such as, “within this radius, this spot attracts attention” and how it can be interacted with (she will look at it, touch it, point at it, run towards or away from it), and how important these elements are relative to each other: An attacker is more important than a shop window; an attacker has a wide radius and a shop window a small radius. The ability to seemingly distinguish importance and focus attention is what makes the AI character appear smart to the player.

When she is active or in combat, she has useful skills to help the player – although she never fights herself, it’s impressive to see her quickly hand the player a spare weapon or ammo in a moment of need. Also, she doesn’t get lost nor stand in the way, like dumb NPCs have done in the past – the game teleports her to strategic spots.

Cool video to see how much work went into this character to make her appear intelligent and natural. Now, every time I complain about a stupid NPC, I also think about how/if they could have avoided that stupid behaviour.