Pledges and Macro AI Behaviors

Hey Folks! Not a lot of visible progress the last several days, so I've been using the normal blogging time for both work and meetings with devs until there is.

Today isn't much of an exception, but it might be a good time to talk about where things are with AI.

The last major push was to get AI generally throwing reasonable responses at you based on both what you said, and what type of personality they have. This still isn't perfect, but a large portion of the behaviors are at least entertaining, if not plausible. Still enough nonsequiturs to say it's far from done, but done enough for now.

What we're still lacking at this point is some context and stakes for why everyone's doing these actions. Mostly, they're just satisfying personal needs. And as a player, you might be trying to shape their mood for something later.

One thing we're experimenting with now is a "pledge" system. So in addition to the current personality noise, we can add some more macro type behaviors. When you smack someone, they should hold a grudge, and get revenge. When you hire someone, they should defend you and the ship from hostiles.

As an example today, we're setting up a pilot you can hire with a jealous ex-lover. Once you hire them, the ex-lover notices, and storms over to warn you to stay away. Today's screenshot shows the barest bones version of this happening. Our captain, Adah, has offered a job to Jonathan. And Alexandria is pissed. (I forgot to check, but it's possible she's feeling triumphant precisely because she bossed us around.)

Now at this point, there isn't much we can do. I need to try adding more valid replies to that. She also shouted this through two sets of walls from across the ship, which is wrong.

But on the plus side, she interrupted my chat with Jonathan, and the social UI seems to have just shifted focus to Alexandria. Which means we may not have too much work to do to let the player go from target-to-target, for more interesting options than a 2-way conversation.

Still a lot more to do to formalize this and call it a feature. Again, barest bones :) But that's what I'm up to!

Michael is currently working on more character generation choose-your-own-adventure panels. Chris is teaming-up with Bjørn on making the audio systems more awesome, and Bjørn is also ramping-up on a lot of new audio content.

I'll feel a bit less anxious once we have a cohesive demo starting to form, but we're still moving forward!

Tags: Ostranauts


Rovlad's picture

Yeah, the pledge thing is basically what I was talking about in my comment to your previous post. Make people "remember" things you did to them and vice versa, I think this will go a long way to make them feel more like human beings and less like an array of enums.

Also did you say "demo"? :) You're planning on making it public or what? It doesn't matter all that much to me since I'm definitely buying the game anyway, but more details on that would still be welcome.

dcfedor's picture

Yeah, context and some sort of permanence would go a long way with these AIs.

For demo, this is less about a downloadable demo than it is about press, convention visitors, and beta testers being able to make heads or tails of it :)

Dan Fedor - Founder, Blue Bottle Games

Josh_A_Culler's picture

Yeh - perhaps you can have a kind of "disposition" meter for each person that helps calibrate their AI responses and actions. You can have different degrees along a spectrum from "100 (friendly) to 0 (hostile)" and that way you can setup different ranges of standard responses or potential actions for every NPC in addition to their particular quirks/character traits. It also gives you a directly related AI variable to work with in terms of how various events or actions or dialogs affect the NPC along the timeline of the characters deveopment.

It might be interesting to even go a bit further with that idea in terms of controlling other sets of AI response/behavior by allowing personality influences or status fx such as "depressed" or "happy" or "fearful" or "intoxicated" etc to open or close various sets of AI activity.

It definitely seems like creative automation and robust generalities are highly influential in this type of system which relies on emergent properties in such a heavy way. I suppose the other option would be to create a scenario of tightly scripted events and specific encounters - and then maybe use that as some kind of template to iterate more modules?

dcfedor's picture

A lot of what you're describing in the first two paragraphs is how the system is intended to work: psych needs on different stats, social moves adjust those stats, personality traits gate which moves you can use, and tolerances to stat deficits.

Whether it achieves those goals is still a uncertain. It still feels a bit too wishy-washy, like the AI has too much noise. And it also lacks context, since they are entirely focused on their own needs all the time. They don't care much who they are speaking to, or why.

One thing missing, which you propose, is a spectrum of relationship between two AIs. There is the concept of "friend/lover/father/sibling/enemy/etc.," but it's not tied to stat changes. You cannot "work towards a friendship" yet. And I think that needs to be in there.

The last paragraph you wrote describes something like what we're now trying. Let's hard-code a few examples to look for a pattern we can extend.

Dan Fedor - Founder, Blue Bottle Games