[Storybricks] Storytelling with an emotive AI

storybricksThe chaps from Namaste are very keen on NPCs with emotions. I had a chance recently to speak with them about the Storybricks toolset, which allows player creators to program AI into NPCs.

One of the features which is clearer in use than on some of the slides is that many of the Storybricks verbs allow for an adverb to be added. So, for example, an NPC could be programmed to do something cheerfully or sneakily. But what does that mean in terms of creating stories? Phil Carlisle, AI CTO, discusses in a blog post how he might describe some truly memorable characters using storybricks in this way. I’m sure all Red Dwarf fans will remember Talkie the Toaster, one of his examples.

Namaste are working on an unannounced game platform to make use of the Storybricks and in the demo, the character emotions were shown by physical emotes and hand gestures. The implication is that the NPCs emotions matter, and that it matters for players to be able to identify them. This is also a theme in recent RPGs such as the emotion tech in LA Noir, where the player is asked to work out if someone is lying by watching their face.

Of course, emotions matter in standard MMOs too. It’s just that players usually buy their way to being beloved (ie. high rep) by killing monsters and collecting tokens. But a toolset built around NPCs having emotions implies a different type of storytelling altogether, you could use it to build a classic RPG where NPC’s regard depends on doing quests for them, or you could be exploring a classic Agatha Christie style murder mystery where knowing that one NPC hates another could be a key clue as to motives. Unsurprisingly, Namaste’s demos at Gencon went down very well with the roleplaying crowd whose first consideration tended to be, “Could I set up my favourite scenario using Storybricks?”

Storybricks is still in an early form and there are details to be ironed out – if you are interested in being involved in the testing you can sign up on their website. But the question of how toolsets encourage different styles of storytelling is an interesting one. A toolset about NPC AI is going to encourage character-driven stories about NPCs and their feelings about stuff/ each other. A toolset like the City of Heroes Mission Architect encourages a style of mission based storytelling with a quest giver and an instanced dungeon. A toolset like the Final Fantasy 12 gambit system allows you to set up all sorts of complex NPC combat interactions, but only covers combat and isn’t meant for stories at all (unless they are stories about how the NPC bravely healed the idiot player). And of course, a fiendishly complex toolset will drive away any casual player who just wants to play with creating characters and stories.

Also, an NPC system which assigns emotions would allow for player characters with supernatural methods to detect feelings: for example psychic abilities or spells. This is a far cry from the typical fireball type of magic user, and just emphasises the possibilities in a storytelling system which isn’t totally focussed on combat. Ultimately the devil will be in the implementation details, but a game built around an emotive AI has the potential for a very different style of story.

[Storybricks] How well do NPCs simulate real people?

Partly inspired by Namaste’s idea of using ‘storybricks’ to let players generate content involving smart NPCs, and partly inspired by Elder Game’s discussion of NPCs, I’ve been pondering these odd mobs myself.

We spend a fair amount of time in MMOs interacting with NPCs, whether it be fighting them, doing quests for them, or trading with them. We also spend a lot of time not interacting with them, and just running past and treating them like mobile decorations or scenery. But in either case, the actual quality of the interaction is usually fairly low . So: the classic MMO NPC is a lump in the shape of a person/ creature that performs an action when you click on it.

Devs have been working on this whole interacting with NPC dilemma for years. And there are three basic ways to simulate how an NPC interacts with PCs.

1. Simulate all the NPCs all of the time and let them have mini-lives of their own. Let them get up in the morning, go to work, go to the pub, go back home in the evenings, have families, goals, enemies, friends, etc. If PCs wander into a town, they’ll see the NPCs going about their business because they will have stumbled into the middle of the simulation. Just simulate the whole darn gameworld, already.

The Sims franchise is probably the best known implementation of this type of NPC simulation. You can watch the other NPCs wandering around and see their aims and goals unfold even if you don’t feel like playing yourself. Dwarf Fortress is another game that takes this route with NPCs.

This is also where Namaste are coming from. By assigning goals to NPCs, this implies that in-game behaviour could also be driven by those goals and so this is a little like allowing PCs to ‘program’ the NPCs before letting them loose in the gameworld. The storybricks idea is just a core, it lacks any notion yet of how the NPCs are going to express the goals.  Read: how will a player get to know what the NPCs hidden goals are, if at all.

For example, if the NPC queen wants a cake does she go and get one, order a servant to fetch one, generate a quest for passing players to bring her a cake, or simply announce loudly at regular intervals, “I WANT A CAKE!!”? That’s an implementation detail but quite an important one.

This is a simulationist approach. It tends to be very computationally expensive if the game is large or the characters are complex. Another issue is how to resolve disputes between NPCs: do they fight? Argue? If two NPCs are competing for the affection of a third, who wins? And what happens if you simulate some feud as complex as Romeo and Juliet and the player only walks in after everyone is dead.

2. Just simulate what the players need to see. Imagine NPCs as rag dolls who only come to life when a player enters the room. Cut scenes, or NPC behaviour that is triggered on a player achievement would come into this category. Most single player RPGs work on this sort of principle, where the player effectively drives the NPCs as s/he progresses through the story.

When done cleverly, players will never notice the difference because the illusion of a functioning gameworld simulation will be perfect. They’re also much more likely to feel that they have an effect on the game and on every character they meet, because they literally do change the behaviour of every character by their actions.

This is a narrative approach.

3. Robot NPCs. These NPCs perform specific tasks. Imagine them as person shaped lumps who are able to give/ receive quests or buy/ sell goods. They may have a fixed range of tasks and offer fixed responses (eg. a barman who fetches drinks when asked.) Some may be purely decoration or furniture. They wander around as window dressing.

This is where most MMO NPCs currently fit into the sphere.

So which is the most realistic way to simulate an NPC?

It’s all nice and well to have every single one of your NPCs with a full set of short-term, medium and long-term goals and relationships, but how often in real life do you stop to wonder about the goals of the person who serves you in a shop?

At this point it all just depends on the type of game you’re playing and the type of scenario. A murder mystery on a submarine is the kind of setting where it is important for everyone to have goals; there’s a fixed number of NPCs involved and it’s integral to the genre that PCs probably have to go talk to all of them. But in a huge city? Probably not.

A heroic, plot driven, on rails adventure only really needs NPCs to ‘wake up’ when the hero/ine gets to their part in the plot. There’s no point animating half of London when the hero is off fighting on an airship over the North Pole en route to Mexico, where the story ends.

Simulating actual relationships is even more difficult

Reputation grinds in MMOs do fairly simulate the process of getting someone (or some people) to trust you by helping them out with stuff. Of course most people in real life won’t send you off on daily quests to kill ten rats, but it is also true that we get to know and trust people by working alongside them for awhile.

But what about actually getting to like someone? That’s trickier because coded NPCs are necessarily very one-way with their affections. You can make the NPC like you by doing coded tasks or offering coded gifts, but never usually by just chatting to them in a friendly way or being a generally charismatic individual. Freeform conversation is hard in simulations, especially when the bot can’t respond when you talk about yourself. And the NPCs rarely ask to do tasks or give gifts to you, so it tends to feel as though you’re trying to pull the right levers on the robot rather than making friends with a simulated person.

I personally find it even harder when devs try to be clever and ask you to guess or find out what presents NPCs would like. What if I miss some text based cue or don’t hang around long enough to hear the emote about loving chocolate?

So I do prefer games which let me assign some kind of charisma or perception score to my character and then just figure out automatically what the NPC wants. Unless mind-reading the NPC is going to be an interesting mini-game or the conversation options are fun, I’d like to skip the bit where they hate me if I give them the wrong present rather than just saying awkwardly, “Oh! A stuffed frog, you really shouldn’t have! I’ll be honest and tell you that I prefer chocolate but I’m still touched by the thought.”

Conversation trees and romance style options also wind up with the sort of gameplay where you speak repeatedly to your chosen romance object in the hope that eventually the game will let you virtually snog them, as if it were the equivalent of a quest. Again this might simulate real life fairly well if the NPC didn’t eventually get caught in the same speech loop (eg. I’m busy calibrating, come back later.)

Eric@Elder Game has interesting ideas (which I referred to earlier) on how to make NPCs memorable and how to simulate friendships, trust and building relationships with PCs. But as I said, there is always a risk of falling into the trap of having every character in your game act like an amateur dramatic, emoting about their goals at the drop of a hat, when all the PC wanted to do was buy a pint of beer.