Advertisement

AI social interaction in gameplay

Started by September 12, 2002 04:22 PM
8 comments, last by makeshiftwings 22 years, 3 months ago
or "down with dialogue trees". This thread is about social interaction with computer characters, not other players. IMHO, games these days tend to have pretty decent and interesting combat simulations, but the social interaction and dialogue is a bit stale. In your typical RPG, combat is a flowing changing state that allows the player to use his intelligence, tricks, and good old-fahsioned twitch skills to allow emergent gameplay and strategies. (OK, a lot of rpgs fail to deliver in this dept. but anyway...) The social interaction in most games is based on dialogue trees, which are static, allow minimal player interaction, and very little strategy or actual gameplay. Here are what I see as the "pros" to dialogue tree style gameplay: 1) It allows pre-scripted content, which is almost always more artistic and engrossing than real-time generated content. 2) It allows pre-scripted content, which is better able to impart information to the player. The cons: 1) Restricts player freedom to a relatively small list of developer-designed decisions. 2) Has very little actual gameplay, it is mostly observing/reading. So, my question is: How can social interaction be made into more of a game and less of an observation from the player''s point of view? I think one game that did a good job of including social interaction in gameplay was The Sims. It was a step in the right direction. It allowed you to select from a variety of different social interactions that your character would perform on another, and the result was dependent on a number of different emotion and skill values. The Sims, however, spoke in sim-speak and never actually said much or imparted information to the player, as is expected in most RPG/FPS/adventure games. I want to be able to use strategy in social interaction. I want games that promise "political intrigue" to let me take part in that political intrigue, and not be limited to "I am a noble who is involved in political intrigue. Please fight through these 20 guards and assassinate this person and get treasure to buy new weapons.". Abstractly, I think social interaction could be made into something like a puzzle/combat simulation. The player could walk into a town that contains various political factions and people with various emotions, dispositions and social skills, and would have to figure out people''s weaknesses and strengths vs. various methods of social interaction (bribery, seduction, blackmail). Based on the player character''s ingame skills, as well as the player''s skill with the game itself, the player can come up with a strategy to help his faction or agenda "win". Social interactions should have rewards analagous to cool weapons and better combat skills (such as political power and increased social skills and "powers" like charm, leadership, etc.), and should also have risks analagous to losing health or dying (losing political standing, being despised by certain factions and groups). And all of this should be happening real-time with interaction from the player and not be a pre-designed list of options that were created by the developer. Is it possible? I have some ideas, but since the post is already getting long, i''ll save them for a little later. If anyone has some ideas on the subject, or examples of games that kindof do what I''m asking for, I would love to hear them. -makeshiftwings
Imagine the typical RPG with cities containing lots of people: noblemen, farmers, soldiers, mercenaries, burglars...
To spice up the game a bit, and move away from the "observer-mode" dialogs, you could create lists of dialogs for individual cities, for the entire world and even just for a single inn or a castle. Then you create different kinds of lists. For example, a fact-list, a gossip-list and a "leave me alone-list". Then you assign every entry in the dialog-lists some values, like, how likely it will be that a nobleman tells you about this, how friendly you have to be (or how agressive) for someone to tell you about that or what you have to ask after, for this list item to be selected as a potential reply, etc. You could also assign some list entries to specific people so that only they can tell you about some things.
This can be widened out alot. Creativity and memory is the limit.
The only problem I see would be repetitive conversations if the lists are too small. But lists could be also exchanged after certain events. Imagine the evil wizard has taken over the capital. No problem. Simply swap the list files for that city and let everyone tell the player how afraid they are now...
Lot''s of possibilities

Advertisement
quote: Original post by makeshiftwings
In your typical RPG, combat is a flowing changing state that allows the player to use his intelligence, tricks, and good old-fahsioned twitch skills to allow emergent gameplay and strategies.

The social interaction in most games is based on dialogue trees, which are static, allow minimal player interaction, and very little strategy or actual gameplay.

The basic reason for this is that we have got nice systems to simulate combat. By this, I mean the stats, levels, experience, hit points, hit rolls, and all that stuff which we take for granted. In fact, there are numerous different implementations of such a system so a game designer is spoiled for choice.

But we don't have a decent system to model social interaction. This is because social interaction is a bit harder to understand than combat. Everyone knows that if you hit someone with a sword hard enough, they will die. Simple. But if you insult one person over and over, they might hit you. Insult a second person over and over, they might walk away. A third person might cry. A fourth might not react, but send an army after you. And so on. In this example, merely changing the combat from physical combat to verbal combat has complicated matters immensely.

quote: I think one game that did a good job of including social interaction in gameplay was The Sims. It was a step in the right direction. It allowed you to select from a variety of different social interactions that your character would perform on another, and the result was dependent on a number of different emotion and skill values.

Got a link or a short summary for those of us who are too macho for such games?

quote: The player could walk into a town that contains various political factions and people with various emotions, dispositions and social skills, and would have to figure out people's weaknesses and strengths vs. various methods of social interaction (bribery, seduction, blackmail).

Ok, so you have a basic system here... different approaches each have different rewards, depending on who you use them on. How do you find out what is what? Saying 'trial and error' isn't enough... what is the consequence of failing, and how do you prevent the player from feeling like they need to reload every time they inadvertently try to seduce a eunuch. I know you said that you'd lose standing and so on, but what does that actually mean? If you're just trying to gain standing, it means nothing as you'll just try the other approaches until your social standing rises again. And what exactly happens when you succeed? The person/faction should do something to favour you, but how does it know what that is? I'd hate to see this as just a case of a 'faction score' for each group, where you just have to get your female enchantress to seduce their leader 15 times to hit 100pts and win the game.

I'd be interested to hear any more concrete thoughts on how the system would be measured and determined.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files | My stuff ]

[edited by - Kylotan on September 12, 2002 8:38:53 PM]
quote: Original post by Kylotan
The basic reason for this is that we have got nice systems to simulate combat. By this, I mean the stats, levels, experience, hit points, hit rolls, and all that stuff which we take for granted. In fact, there are numerous different implementations of such a system so a game designer is spoiled for choice.


I totally agree.

quote:
But we don''t have a decent system to model social interaction. This is because social interaction is a bit harder to understand than combat. Everyone knows that if you hit someone with a sword hard enough, they will die. Simple. But if you insult one person over and over, they might hit you. Insult a second person over and over, they might walk away. A third person might cry. A fourth might not react, but send an army after you. And so on. In this example, merely changing the combat from physical combat to verbal combat has complicated matters immensely.

But i disagree here. I don''t think combat is in any way "simpler" than social interaction. *Real* combat is nothing at all like rolling a d20 to see if you hit, and then saying "yes, i stabbed you in the head with the sword. now if i stab you 12 more times you will die". And also, if you hit one person with a sword, they might attack, another might run away, another might cast a spell at you, etc. But we have several systems that model combat, if not realistaclly, then at least in a way that''s fun to play. And that''s what i''m really looking for... not a ''realistic'' model of social interaction, but one that''s understandable, allows strategy, and most importantly, is fun.

quote: I think one game that did a good job of including social interaction in gameplay was The Sims. It was a step in the right direction. It allowed you to select from a variety of different social interactions that your character would perform on another, and the result was dependent on a number of different emotion and skill values.

Got a link or a short summary for those of us who are too macho for such games?


To sum it up briefly, each Sim (character, player controlled or ai controlled) had a number of meters like Happiness, Hunger, Energy, and Comfort. They also had skills like Athletic, Outgoing, and Friendly. You could click on another Sim with one of your Sims, and depending on your Sim''s mood and skills, along with the "friendship" meter between the two sims, you got different options. When your Sim first meets someone they get options like Greet, Joke, Tell a Story. After their friendship meter goes up they get options like Compliment, Hug, or Flirt. The options you choose would make your personal meters go up or down and either increase or decrease the friendship meter (giving someone a backrub could increase the love meter pretty quickly if you''re succesful, but is risky because it will go way down if they don''t like you). Also, as they talked, they wouldn''t say real words, they would kind of babble, and little bubble icons would appear over their heads like a boat for "I like boats" or a badge with an X over it for "Don''t you hate cops?" If people had the same interests, you''d increase the friendship meter, if they disagreed, it would get lower. You could also call people on the phone to say hello, invite them over for dinner (costs money and energy), watch tv with them (they''re running up your bills and taking away valuable work time), and other things that in a way required some strategy to be successful at keeping your friends and still getting to work on time. It led to some interesting emergent gameplay, like getting a husband to cheat on his wife with you and then having the wife walk in and get angry, or having a party where the neighbors start fighting and drag other people into it.

quote:

I''d be interested to hear any more concrete thoughts on how the system would be measured and determined.


Well, since you asked…
Here''s a pretty simple example. Let''s say you''ve got your sneaky rogue and your elf enchantress. Your goal is to get your rogue past the gate guard and into the castle. You try sneaking up with your rogue but the guard sees you because he''s got a high Spot skill, higher than your Sneak skill. He says "You there!" and the rogue runs back into the shadows. So you send your elf enchantress up, and, without using a dialogue tree, she has some "social combat" options. Like:
Bribe - uses character''s Mercantile skill vs. target''s Greed and Honor scores. The user must choose an amount of gold to bribe with, which increases the level of success. Sucess will lower the target''s resistance against Suggestion for 5 rounds. Failure will decrease the target''s Respect for the character.

Flirt - uses character''s Seduction skill vs. target''s er… horniness? score. Success raises the target''s Lust for the character. Failure lowers the target''s Lust and Respect for the character.

Suggestion - uses character''s Leadership skill vs. target''s Stubborness score. Influenced by target''s Lust, Respect, Fear, and Friendship scores towards player. Using this skill lets the player "posess" the target and choose a single action (Move here, attack this, give me your keys). Success depends on how different the action is from the target''s current goals. Failure means the target does not do the action, and lowers the target''s Respect and Friendship score towards the player.

Distract - uses the player''s Seduction or Bluff skill. Success lowers the target''s Spot skill, initiative, and dodge skill by 5 points for 5 rounds. Failure decreases the target''s Respect and Friendship score towards the player, and may increase the target''s Anger.

So……. you could have the enchantress go up, flirt with the guard for a little while. See that you repeatedly fail… and because the enchantress has a high Sense Disposition score, she can see that he doesn''t seem remotely interested in her. hmm… maybe he likes elf boys. So instead she offers him a bribe of 20 gp. Failure, but her Sense Disposition score shows that there was a glint in his eye when you brought out the gold. So she offers him 200 gp. He accepts. She tries Suggest, clicks on him and then clicks to move him away from the gate and over into some bushes. Failure. Apparently he''s pretty afraid of being seen actually leaving the gate. There''s not much time so the enchantress clicks Distract (and yells "OH NO! A DRAGON!") Success! While the guard is distracted, the rogue succesfully sneaks by…
quote: Original post by makeshiftwings
But i disagree here. I don''t think combat is in any way "simpler" than social interaction. *Real* combat is nothing at all like rolling a d20 to see if you hit, and then saying "yes, i stabbed you in the head with the sword. now if i stab you 12 more times you will die". And also, if you hit one person with a sword, they might attack, another might run away, another might cast a spell at you, etc.

Yep. I made a mistake with my original comparison. So I''ll make a better one.

Combat is simpler than social interaction because combat tends to rely on laws of physics, which we largely understand. Faster moving objects deal more damage. Heavier objects deal more damage. Add a few abstractions (eg. the difference between piercing and crushing damage), and a few statistics to make it unpredictable, and you have a fairly decent approximation.

Social interaction - and this includes whether to stay and flee from combat - is governed by psychology, which is not very well understood. Psychology is far from being a solved science, and even the behaviour that is predictable often has 2 or more theories in existence that seek to explain it in different ways.

quote: To sum it up briefly, each Sim (character, player controlled or ai controlled) had a number of meters like Happiness, Hunger, Energy, and Comfort.

Ok, these are basically needs. Check out Maslow''s Hierarchy of Needs for how one sociologist/psychologist attempted to describe this. Modelling it may be one way to create a believeable and perhaps fun system.

quote: Bribe - uses character''s Mercantile skill vs. target''s Greed and Honor scores. The user must choose an amount of gold to bribe with, which increases the level of success. Sucess will lower the target''s resistance against Suggestion for 5 rounds. Failure will decrease the target''s Respect for the character.

I''d argue that Mercantile skill would play a negligible part in this. Any fool knows how to offer a bribe. The key is the value. Perhaps everyone in the game has a price, so to speak.

quote: Flirt - uses character''s Seduction skill vs. target''s er... horniness? score. Success raises the target''s Lust for the character. Failure lowers the target''s Lust and Respect for the character.

So, you increase some guy''s Lust... what then? What effect does that have on the game as a whole? And why should failure reduce the target''s Lust score? If anything, the original test should probably be user''s Seduction + target''s Lust score, and a successful result should increase the target''s Compliance (or as you call it, Friendship) score, as applied to the Seduction user.

quote: Suggestion - uses character''s Leadership skill vs. target''s Stubborness score. Influenced by target''s Lust, Respect, Fear, and Friendship scores towards player.

These 4 stats are quite good in my opinion. (I might rename Lust to Attraction though.) Order them this way: Lust, Friendship, Respect, Fear, and you see the pattern - the first ones indicate compliance to gain pleasure/reward and the last ones indicate compliance to avoid pain/penalty. So they''re almost just different aspects of the same thing. For most purposes I think you''d work with whichever is the highest of the 4 scores, rather than the sum. A little each of attraction, friendship, respect and fear wouldn''t be as important as a healthy dose of any of those.

I don''t like the idea of being able to possess the target character though. That seems to be a bit of an anti-climax when you''re trying to get some sort of politics working. What I''d like is for there to be some sort of goal in mind, specified by the player, and successful social interactions will make a target NPC adopt your goal.

Another issue none of this really addresses, and is important where politics are concerned, is organisation and the social structure. How does a Lord''s attitude values affect his Knights? Or vice versa? What about the effects between 2 Lords of equal standing? You''d want to be able to apply pressure on someone via people around them, but how could you model that? I suppose that attitudes should propagate throughout the social network to some extent.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files | My stuff ]
I''ll have to throw my 2 cents in on this one. I think this is a great idea, even if it seems hard to implement. Was this idea to be inside an RPG, as in when you go to town etc? You could still include the basic menu system but when you first start you choose a "disposition" towards the person/people. How well your dispostion worked would be based on the basic "personality?" stats you have. Or maybe have the stats affected by the interactions themselves, or a mix? Like friendship would definately be variable based on the person you are interacting with, but the others remain the same.
Also, since opposites do attract a lot of the time, how about some of the stats being the inverse when interacting with someone of equally high stats. If the stats were medium or low, yet the same, make them not negatively affect each other. Let''s say you have two people with very high leadership (not sure that''s one you want to model, just an example). Usually two leaders will conflict with each other, assuming all else is equal. But maybe if the friendship rating or something was greater it would equal out. Hmm, I think I''m making this too complex, better stop.

DMZline
Advertisement
This model is pretty good for an RPG, but other games that use similar systems have made a few big mistakes that make the system viable, but uninteresting. Morrowind gives you the same options basically (Persuasion, through either bribes, intimidation\taunting or flattery), but using them is a lot more boring (you just get a message that says "failed" or "succeeded" and the character you're talking to gives some kind of response), and a lot less challenging (you can just keep trying over and over) than combat. Ideally social interaction should be able to stand on it's own, the player could play the game without getting in a single fight, just using social skills and still feel as challenged and be as interested as someone that goes around killing everything.

I think one of the ways you can fix this problem is to have a finer level of actions than "flirt," "taunt" and "bribe" although it doesn't need to be that much more complex. The same way combat in most games isn't just "fight" and "heal" you should give character's different social manuevers, both offensive and defensive, also, new options should open up as a character's relationship with that person changes (ala the sims.) Character's should also have certain weaknesses and strengths, a lustful fighter would be weak against all flirting manuevers, a corrupt wizard would take all bribes. This can be based on the personality stats mentioned earlier "Lust, Fear, Greed, etc" and can also take into account physical\mental things and skills like strength, size, intelligence ,attractiveness, magical knowledge, fighting skills etc. Skills should come into play when a character is talking to someone with similar interests. A young wizard could impress the archmage with his knowledge and through that get certain favors and benefits.

If you expand on the elf enchantress example, instead of just choosing "flirt" with the guard, you would chose "flirt mode" and then choose various dialog\actions that have to do with flirting. The same thing works for taunting and intidimation, so if your fighter was trying to bully a gnome into giving him money you would choose intimidation mode and then pick actions like "Stare down" and "push around." For example (ignore bad dialog):

player starts conversation
Fighter: "How are you mister gnome"
Gnome: "What do you want"

player starts intidimation mode

Options:
Information
Items
Money
etc.

player chooses money (something like information or items would lead to a list of the gnome's inventory, or information the player needs)

Fighter: "I want your gold"

Gnome defends against the players intimidation
Gnome: "And who do you think you are"

Options:
Insult
Threaten
Stare Down
Push around

player chooses Threaten
Fighter: "Someone that can hurt you very badly"

Gnome is weak against threaten, cannot defend
Gnome: "Okay, here's 200 gp, just please don't hurt me"

Characters should also be able to counter, if an elf girl is flirting with a guard to get into a restricted area of a wizard's tower, the guard should still have the option to intimidate her. For example (bad dialog disclaimer):

player initiates flirt mode

Options:
Compliment
Touch\Hug
Smile\Wink

player chooses compliment
Enchantress: "What's a cute guard like you doing alone on a friday night?"

Guard defends
guard initiates intimidation mode
guard insults player
Guard: "Avoiding wenches like you."

player cannot defend

Options:
Fight guard
Leave

At this point the player's character would be either too angry or depressed or whatever to use social skills. If she defended she could try flirting some more, or attempt to intimidate\briber\distract\make friends with the guard.



[edited by - impossible on September 14, 2002 4:34:15 PM]
A game called "In the First Degree" from Broderbund, came out around the same time as Myst, attempted to implement this gameplay somewhat.

You''re a lawyer prosecuting a murder. You select from dialogue trees which affect people''s emotions while you interrogate them before going to court. What you do before court affects how they will act in court. Then, at the court trial, what you do at court affects the verdict.

The essential gameplay arises from analyzing the clues, the psychology of the people, and deciding what to say and when to say it. Your conversations are comprised of full-motion video sequences. When you say something, the person will show their reaction in the video being played. You''re supposed to watch these reaction videos for psychological nuances and predict what consequence each dialogue option will cause. The only way you can tell how well you are doing or what someone thinks of you is by watching these reactions.

As for the so-called "rules of the universe", they are governed by simple psychology and common sense. For example, there is a witness who is reluctant to testify. From watching his demeanor, you can tell that he is not scared, but just doesn''t want to risk himself to testify. From seeing this, you''re supposed to be aggressive enough to coax him to testify, without angering him to breaking point. Another example...another witness is very logical, calm, and has a very strong personality. You are supposed to be very polite, passive, and work with her very slowly.

For a game with a very linear story and a very limited universe, this method does work. I found the game fun but I''m guessing it wasn''t popular. Its success as a game relies on good acting and writing. But to create a modern RPG with this sort of gameplay added would require lots of money for good acting and writing. It also relies on subtlety and very good balancing. I don''t know if it''ll happen anytime soon.
quote: Original post by FiveFootFreak
Imagine the typical RPG with cities containing lots of people: noblemen, farmers, soldiers, mercenaries, burglars...
To spice up the game a bit, and move away from the "observer-mode" dialogs, you could create lists of dialogs for individual cities, for the entire world and even just for a single inn or a castle. Then you create different kinds of lists. For example, a fact-list, a gossip-list and a "leave me alone-list". Then you assign every entry in the dialog-lists some values, like, how likely it will be that a nobleman tells you about this, how friendly you have to be (or how agressive) for someone to tell you about that or what you have to ask after, for this list item to be selected as a potential reply, etc. You could also assign some list entries to specific people so that only they can tell you about some things.


This should be implemented in a class system of course (I mean C++ or Pascal classes). A human has a certain dialog tree, then a farmer, guard, peasant, beggar are inherited from human, with the human dialoge with their own added. For unique NPC''s you inherit off a certain profession, and add more dialogue beside the inherited one.

The ''chat'' menu should be varied enough, like the sims. You right click on someone and get a choice of things to say or ask about, greeting, insult, question, trade, etc. It''s really just an interface design question how to make it interesting.
I would love to see something like this is action....however there are a few problems:

First RPGs have long held to combat modeling as conflict resolution and character growth...this is to say that FAR more time has been spent on this aspect of RPGs then on anything else.

Because of this...to implament a better social reaction system...you will be treading on new ground in terms of RPG development.

Perhapse a "epic global spanning story" is going to be to wide in scope when developing yur social system...while nice to dream about...not even the Sims had cities filled with hundreds of unique characters, all with "friendship/compatability" meters in relation to the player character, as well as individual knowledge of inner-personnel histories between individuals.

So purhapse, at least to start...the scope of the game should be much smaller? A single village, or town would be better to build a social model from then a number of heavily populated cities.

Afterall this system would depend on unique characters...as unique and individual as the different pools of monster classes that are designed into a RPG....put it this way you would not randomly generate a monster from "lists of parts/componets" and not expect some gameplay balanceing issues...so why would NPCs be generated in such ways with the intent on useing your social system with them?

This topic is closed to new replies.

Advertisement