Advertisement

Politics in your gameplay

Started by September 23, 2004 10:54 PM
14 comments, last by frostburn 20 years, 4 months ago
Nice discussions :) Lots of good ideas floating around ;)

The way Thesolitas synthetized (sp?) the hipotetical system you all came up with is great. I'd like to suggest a couple of additions though.

Without a lot of extra effort, you can use the same system for the example of the slave that you helped out. An extension of the "codes" would be a general list of actions (including context of course) and what would characterize each group would be the change in opinion of the NPC towards who made those actions: so the actions "release me from slavery" and "give me money when I need it" would increase the NPC's general opinion of the player (and also in a more specific, "I owe you"-kind of sense :p ). This is top-level (generic) code of conduct; all human beings react like this to these actions. But someone who likes to do everything on his own (or a group where this is code) overrides this! Another example is the situation where pulling off great heists would make the local thieves guild admire you, and of course the other people dislike you. The depth of your "psichology" model for the NPCs in your game should tie really well to this.

Also, the way information spreads. Each code relates to an action and its context; you could use this as a way to give the information to different NPCs - information is "This person did action/context X" so you just pass it to the relevant groups and they will change their standing according to them. Even if your model for spreading information is really simple, this would definitely make things really interesting ;) Situations like only a small group knowing something about you, and as soon as the information leaks out somehow (or spreads to another city, etc), everyone slams the door on your face. Cool :P
Sorry I haven't been able to get back to this, had some long hours last week...

Quote:
Original post by Thesolitas
Deffinately, I think supergroups (a country) would be responsible for the overall code's, with subgroups further refining and differentiating (sp?) them. Another thing I would add is the ability for a subgroup to purely remove a code. For example, you may define a country code of "Slavery is bad", since generally that's what the country believes, and either replace that with "Slavery is good" where approriate in subgroups, leave it blank in a subgroup (which would then get inherited from the supergroup), or REMOVE the code, this would mean the subgroup doesn't have a position with that code.

This way, you don't have to define a code for every level/group, you can define generalities, and override or remove as neccessary.

The question is, do you use a straight "For/Against", or varying levels of?


If you have a varying level of for/against would do more justice to the amount of work you'd have to put in for a system like this. Depending on the size of the scale you could also tie this into mission or even persuasion gameplay, allowing you to nudge a group's philosophy from a hardline stance into concessions and then into a new view. Because the change would be gradual it would feel more organic. The downside might be that to change anybody's mind would take work! (Although, why else might you be playing? [grin])

Quote:
Original post by Wavinator
One way I think you can somewhat fudge the results is through basic random chance. I would use rules to some exact, then just randomize it, sometimes they think you stole the sword, sometimes they don't, it may or may not work, would really have to think about it some more.


I'd be very careful with the random approach except for all but a few mercurial NPCs (like a senile old king or village idiot). Ultimately, every game is a system that players figure out and enjoy exploring, changing and maximizing. The more random really meaningful things like this are, the more arbitrary and unfair the world might seem. (That may be what you want if you're making an artistic statement-- yes, people are hard to figure out and seem random and unfair-- but I don't think that's for a game.)


Quote:
Original post by Wavinator
Well, I think in cases like these, you could just take into account the end result, not intent or motive. This would work well for me, since in medieval times, people tended to not care so much about intent, only in the final outcome ;)


So as not to underestimate this, keep in mind that the farther the effects are downstream, the larger the data set to process and the harder it is to figure out who specifically caused an effect. If, for instance, you blow up the bridge that would have allowed the people to escape the dragon, but then they run down a hill, successfully hide from the dragon, then start swimming and subsequently drown, who's at fault? This becomes the stuff of an ethics class and you'll need a pretty clever expert system to even approach it-- which is why I'm biased toward relationships.

Quote:

Overall though, if you could get a basic intent and motives system working, it would deffinately add alot.


And overall, I agree. It'd be head and shoulders about what you normally get.

Quote:
Original post by Wavinator
Intent is deffinately the problem, and though I think it would be great to have it in there, I'm sure you could get by without it.


Actually, just thought of something funny: If you could plead/con/cajole your way out, it would help counterbalance this idea. So a guilty slimeball can escape by being charming, while an inept but innocent man might take the fall and might find himself exiled.


Quote:
Original post by Wavinator
Great ideas, and deffinately agree with them. Would also take into account the damage done to the affected NPC. If Robin Hood steals a sword from me, and I'm going broke and can't feed my children, I really don't care what his reason's are, I'm ticked.


Ah, forgot about this. Great point and it might create a natural limiter against those with good rep performing bad deeds.


Quote:
Original post by Wavinator
Hrmm you're example gave me an idea. If you poach deer on the king's land in front of starving villagers, the villagers may think it's okay, and king may not. The concept of subgroups relaying code breakage up the tree could come into affect. If the villagers don't know you and you just run off, they may tell the king, but if you give them some food from the deer (they are starving), they won't.

One way you could do this, is weight the relationship of you to the NPC(s) VS the NPC(s) to the parent group. Certain stats withen the relationship would make subgroups relay information up the tree regardless of whether they have the same code, things like fear, loyalty, etc.

In this case, you would have to overcome the NPC(s) fear of the parent group (the king) through feeding them, since they are starving, giving them food would heavily increase (temporarily), your relationship with them.


So you have to maintain your relationship with the villagers? Hmmm... It actually makes sense. It invokes the concept of "What's In It For Me" which maybe would make gamers care more about what NPC opinions.

Quote:

One thing I would do here is have temporary VS long term relatioship's, and have actions temporarily boost relationships quite high, with those relationships decaying over time. That way a single action of great signifigance can override a longterm relationship.


How about this: You have short term acts (giving a bribe/insulting someone) and long term acts (saving/taking a life). Short term acts people get over, either good or bad, but long term acts are almost permanent. Like you say, the two could be folded into one standing/rep, but you wouldn't have villagers forgiving you for slaughtering their leader just because you were gone a few months (or suddenly have no loyalty after you've saved the tribe just because you haven't visited in a year)



Quote:
Original post by Wavinator
You could communicate this in a number of different way's. For an easy approach you could just have a "Relationships" screen that the player could check, this screen would show all people/groups that the player has a relationship with. A more advanced approach would be to represent relationship's through NPC reactions (fleeing from fear, stuttering when talking to, etc.), you could also represent it by having the NPC's make random comments to the PC.


I don't mind the latter approach, but like many gamers, I sometimes play episodically... take a long break, play for a long time, take a long break, etc. So a quick relationship screen would be nice to keep me abreast (also, if there are alot of groups, a player isn't going to remember).

One other addtion: Adding the last significant actions that caused a change in reputation, so that players know what they did right or wrong.


Original post by Wavinator

Original post by Wavinator

Quote:

In your example, with a single variable it could mean "Steal +5 standing, then Murder -5 standing", ending up with no change. This wouldn't be good, since both actions SHOULD leave the NPC feeling different about the player in specific ways (Murder = Fear +5 for example).


Right, this is a good observation. This sort of thing folds into identity... you're a murderer, but not a thief; or you're a thief but not a murderer. This gives you more texture and allows you to have a more strategic world using a general system.

Quote:

- The relationship to a group by a PC/NPC is measured


By "measured" do you mean how closely or loosely affiliated the PC/NPC is?

Quote:

- Code's are defined which relate to an act

- Code's have specific actions or series of actions attached to them
- Code's have intents and motives which affect how the action is weighted

- Each code may be attached to one or more groups, with a value indicating how they feel about that code, this can be a positive or negative value or zero for uncertainty. An undefined code withen a group means the group uses's it's parent code when available.


This is probably as simple as a table of actions and reputation bonuses or loses, right? (Although a big table, admittedly)



Quote:

- Each code can have a By and Against group attached to it

- Multiple version's of the same code can be attached to a group as long as they have different By and Against variables


So this can be related to the player? I'm missing the why of doing this. Or is this meant to apply to different groups? For instance, murder against group 1 is okay but not against group 2?

Quote:

- The reaction of an NPC to an action is determined by a number of factors including: any groups/parents of the NPC which have that code defined weighted by the relationship of the NPC to that group, the relationship of the player to the NPC, intent, motive, and the effect the act has on the NPC


Aside from what we talked about in terms of intent and motive being nebulous, I see this as a good possible starting framework.
--------------------Just waiting for the mothership...
Advertisement
Quote:
Original post by Jotaf
Also, the way information spreads. Each code relates to an action and its context; you could use this as a way to give the information to different NPCs - information is "This person did action/context X" so you just pass it to the relevant groups and they will change their standing according to them. Even if your model for spreading information is really simple, this would definitely make things really interesting ;) Situations like only a small group knowing something about you, and as soon as the information leaks out somehow (or spreads to another city, etc), everyone slams the door on your face. Cool :P


If you're faced with this level of potential cause and effect you'll need some very adroit tools in dealing with it. So if information can spread like this, you'll want to know how, how likely, what the consequences will be and how you can stop it-- which just adds more strategic gameplay, which I don't think anyone would protest. [smile]
--------------------Just waiting for the mothership...
Quote:
Original post by Wavinator
If you have a varying level of for/against would do more justice to the amount of work you'd have to put in for a system like this. Depending on the size of the scale you could also tie this into mission or even persuasion gameplay, allowing you to nudge a group's philosophy from a hardline stance into concessions and then into a new view. Because the change would be gradual it would feel more organic. The downside might be that to change anybody's mind would take work! (Although, why else might you be playing? [grin])


Agreed. I'm deffinately for a varying level of for/against. I would also move away from a linear scale.

Most groups would have a position somewhere near the center, the farther out from center the more radical a position, and the harder it is to change that groups position.

Quote:
Original post by Wavinator
I'd be very careful with the random approach except for all but a few mercurial NPCs (like a senile old king or village idiot). Ultimately, every game is a system that players figure out and enjoy exploring, changing and maximizing. The more random really meaningful things like this are, the more arbitrary and unfair the world might seem. (That may be what you want if you're making an artistic statement-- yes, people are hard to figure out and seem random and unfair-- but I don't think that's for a game.)


Very true, I personally want to move away from randomness as much as possible, except for rare circumstances. As you suggestion, I may introduce randomness as a specific variable. I'm not sure what attribute of the player this would be attached to, but for people like the "Senile Old King", sometimes they just make odd decisions, and this could be represented by the randomness factor. It could actually ADD to the world if done right and only used in rare circumstances.

Quote:
Original post by Wavinator
So as not to underestimate this, keep in mind that the farther the effects are downstream, the larger the data set to process and the harder it is to figure out who specifically caused an effect. If, for instance, you blow up the bridge that would have allowed the people to escape the dragon, but then they run down a hill, successfully hide from the dragon, then start swimming and subsequently drown, who's at fault? This becomes the stuff of an ethics class and you'll need a pretty clever expert system to even approach it-- which is why I'm biased toward relationships.


Yeah, their are a ton of problems modelling intent and motive, especially since they're more in the players mind then the characters. In fact, motive for example in common physcology is considered unprovable except through confession.

I do think you can introduce a limited intent system though, and motive you could represent by the player's alignment/the players relationship with the NPC's, etc.

The more advanced of an intent system you get working, the more weight you give it, the less of a system you get working, the more you weight the relationship.

Overall, if you get just a bit of the intent system modelled in the game, I think it will have a dramatic improvement on the world.

I'm thinking of starting another thread purely for the discussion of intent, defining exactly what it is in a game world, how you represent it, etc.

Quote:
Original post by Wavinator
Actually, just thought of something funny: If you could plead/con/cajole your way out, it would help counterbalance this idea. So a guilty slimeball can escape by being charming, while an inept but innocent man might take the fall and might find himself exiled.


This could be either a full replacement of intent/motive on the action side, or as an addition.

You really have two different thing's here that are the pain to impliment, motive and intent.

Intent could be represented by the players charm, intelligence, past events, etc.

- Charming players persuade the NPC's they were trying to help
- Intelligent players keep their story straight
- Previous events could prove your intent was different

Motive could be represented by the players alignment, social standing, relationships etc.

- Evil players would tend to have a more sinister motive
- Being poor may mean you did what you did for greed
- Having a bad relationship with the NPC could mean motive

Quote:
Original post by Wavinator
Ah, forgot about this. Great point and it might create a natural limiter against those with good rep performing bad deeds.


Exactly, having a good rep could become a get out of jail free card. And though that should be the case sometimes, the player should still have to take into account consequences of their actions.

Quote:
Original post by Wavinator
So you have to maintain your relationship with the villagers? Hmmm... It actually makes sense. It invokes the concept of "What's In It For Me" which maybe would make gamers care more about what NPC opinions.


What I was describing here is the ability for a group to relay a breakage in code up to a supergroup.

For example, the villagers might not care if you poach deer, but their supergroup (the king) would.

If the villagers fear the king, they might report you to him if they see you poach on his land.

To give the player a chance to circumvent this, you test the relationships.

Player to Villagers = X
Villagers to King = Y

If the player has created a better relationship with the villagers (even temporary), the villagers wont relay a breakage of code up the tree.

This would immediately add bribing into the system.

Quote:
Original post by Wavinator
How about this: You have short term acts (giving a bribe/insulting someone) and long term acts (saving/taking a life). Short term acts people get over, either good or bad, but long term acts are almost permanent. Like you say, the two could be folded into one standing/rep, but you wouldn't have villagers forgiving you for slaughtering their leader just because you were gone a few months (or suddenly have no loyalty after you've saved the tribe just because you haven't visited in a year)


Their are two distinct things I see here, the strength of the action on a relationship, and the decay value.

I see a couple of different results from actions you need to model.

High Impact - Short Term
High Impact - Long Term
Low Impact - Short Term
Low Impact - Long Term

And varying levels inbetween

Examples of these would be:

Kill an NPC's family member - High Impact/Long Term
Steal bread from a Grocer - Medium Impact/Medium Term
Trespass on Grocers Land - Low Impact/Short Term
Slap an NPC - High Impact/Short Term
Bribe an NPC - High Impact/Short Term

Using this style, impact/decay, you can model in things like bribery having a high impact but short term effect. The problem with this is how do you model the decay of different actions over time?

Quote:
Original post by Wavinator
I don't mind the latter approach, but like many gamers, I sometimes play episodically... take a long break, play for a long time, take a long break, etc. So a quick relationship screen would be nice to keep me abreast (also, if there are alot of groups, a player isn't going to remember).

One other addtion: Adding the last significant actions that caused a change in reputation, so that players know what they did right or wrong.


The way I'm thinking of handling this is two-fold. One, through the NPC's reaction, and two, through a diary.

The NPC's reactions are straightforward.

The Diary would be done like this. For every action that causes a change of relationship over a set ammount (either impact or length (decay)), add an entry to a diary.

This diary would simply be:

"On [DATE/TIME] I [ACTION] [ACTOR]. They [CHANGE IN RELATIONSHIP], [LENGTH OF CHANGE]"

An example would be:

"On Thursday June 12th I bribed the guard. He will keep my secret, but not for long."

I'm also going to add a Notebook area, this will lists of people, places, groups, etc. with basic information I learn about them, including their relationships.

Of course this will only take into account what my character knows, and won't be 100% accurate, nor will it fully take into account decay, so you may think you have a good relationship with someone only to find it's completely decayed.

Quote:
Original post by Wavinator
Right, this is a good observation. This sort of thing folds into identity... you're a murderer, but not a thief; or you're a thief but not a murderer. This gives you more texture and allows you to have a more strategic world using a general system.


Should this be modelled in the relationship though? Is this the relationship (perception of the player)?

How do you handle having a good relationship with a thief, even though you don't agree with thievery? How do you handle fearing murderer's in general, but not your good friend who is one?

Quote:
Original post by Wavinator
By "measured" do you mean how closely or loosely affiliated the PC/NPC is?


Exactly. Any NPC may belong to multiple groups at any time. For example, one NPC may belong to:

- A Family Group
- A Blacksmiths Guild
- The Town
- A Social Group of Friends

Each of these groups may have varying views of specific code's. It's our relationship with these groups that determines which view we uphold more then others.

This reminds me, each group should having a measure of how strongly they are attached to a parent group. This would lead to town's that don't agree as strongly with the kingdoms values.

Quote:
Original post by Wavinator
This is probably as simple as a table of actions and reputation bonuses or loses, right? (Although a big table, admittedly)


I see two parts, I see the definition of the code's themselves (Murder, Thievery, Tresspassing, Slavery, Adultry, etc).

An example would be:

Code: Murder

Action: [ACTOR_A] kill [ACTOR_B]

Intents & Motives:

[ACTOR_A] attacked_by [ACTOR_B] -15
[ACTOR_A] stole_from_pre [ACTOR_B] +15
[ACTOR_A] stole_from_after [ACTOR_B] +20
[ACTOR_B] unconcious_before_death +25
[ACTOR_A] defending [ACTOR_C] attacked_by [ACTOR_B] - 15
[ACTOR_A] fear_of [ACTOR_B] -1 * fear_of
[ACTOR_A] hate_of [ACTOR_B] +2 * hate_of

You would have a ton of these intents/motives per code, variables that could be represented somehow in game. You would add all these variables together, and the final sum would determine whether you actually broke the code. For example:

If you (actor_a) are attacked by an NPC (actor_b) and kill him, your intent becomes -15, which means its not murder. But if you stole from him pre his attack, then you're not acting in self defence.

If you knock the NPC (actor_b) out during the course of the fight, and kill him while he's unconcious, thats -15 for the attacked_by, and +25 for unconcious_before_death for a total of +10, that means you commited murder with a +10 strength. The higher the strength the more heinous the crime.

In addition, some codes can have modifiers like:

[ACTOR_A] fear_of [ACTOR_B] -1 * fear_of

This would mean the more you fear the person you killed, the more of an excuse you had.

Now, you would have a big table of these code's, these are all the code's that a group can have beliefs on, some will be complex (like murder), some fairly simple (like tresspassing).

You then the second table, these are a specific group's (or player's) belief in a code. Taking the murder code as an example:

Group: Town A
Code: Murder
Belief: -50

They are strongly against murder as a whole.

Quote:
Original post by Wavinator
So this can be related to the player? I'm missing the why of doing this. Or is this meant to apply to different groups? For instance, murder against group 1 is okay but not against group 2?


Using the above example, Town A believes murder as a whole is wrong, but they're at war with Town B. So town A's table would have a second entry for murder, this time it would look like this:

Group: Town A
Code: Murder
Belief: 0
Actor_A: Any
Actor_B: Member_Of(Town_B)

This would mean, town A doesn't care if anyone kills someone of town b. A third entry could look like this:

Group: Town A
Code: Murder
Belief: +25
Actor_A: Member_Of(Town_A)
Actor_B: Member_Of(Town_B)

This would mean, a member of town A killing a member of town B is accepted.


One final thought, I'm not sure how to handle the consequences of code breakage. For example, changes in relationship, reputation, social standing, etc.

1) How do we define the consequences of the actions? On the code itself, or on each groups version of the code? Or both? How does the groups belief in the code change the consequence?

2) Exactly what types of consequences should actions have? How are relationships defined, what is affected? How is reputation defined? Perception towards the player?

3) In addition, how do we define the sequence of events that happen after a code is broken?

[Edited by - Thesolitas on October 5, 2004 7:21:36 PM]
I think politics is a great aspect to gameplay, because it is a huge aspect in life, and can be designed in games just as intricately and diversly as irl.

It's a guaranteed tension heightener giving it strong dramatic and action dimension, and as irl, is highly interactive on many scales and levels. It's almost hard to keep it out of things.

As far as a similar story, I use politics the best way adaptively to my particulare gameworld, who's political clime was designed as an evolution of the characters and story world.

Adventuredesign

Always without desire we must be found, If its deep mystery we would sound; But if desire always within us be, Its outer fringe is all that we shall see. - The Tao

I think politics would help create a more believable world. Go for it.

Some thoughts:

I think each NPC should have a loyalty/fear value to the groups he's a member of. Most of the people living under a tyrannical king would have a strong fear relation to the kingdom-group. The royal knights would probably have a strong loyalty relation even if the king is tyrannical (they gain from it after all).

Each group should have a loyalty/fear value to the parent groups. An example: The tyrannical king is the leader of the kingdom group. His knights is a subgroup of the kingdom, and they have a high loyalty-relation to the kingdom-group. Because of this they are almost as feared as the king himself (if loyalty=100% they're as feared). A less closely connected group, but still loyal (for example the church) would instill less fear. Also, the town is a subgroup of the kingdom-group, but since it has a fear-relation to the kingdom-group their citizens are loyal to it. If the town was loyal to the king the citizens would fear the town (it's leaders anyway).

Members of a group they're loyal to would try to protect that group from outsiders. For example, your brother may be a twit, but if he's being harassed by neighborhood kids, you'll probably try to help him. Also, a mother would step in if someone else is yelling at her child, only to yell at him herself afterwards.
If someone from another country is complaining about how bad your country is, you'll probably disagree with him (if your loyalty rating is high), even though you're saying the same things to your neighbor (ok, loyalty not so high).

If a NPC or a group is loyal to a parent-group, the ideals of the parent-group will filter down. If the kingdom is for slavery and the citizens are loyal, they're more likely to be for slavery then if they feared the king. It's possible that they're for slavery even if they fear the king, but I'm not quite sure what the mecanics for that would be. One possibility could be this: Wealthy barons and merchants (slave owners) would probably be loyal to the king. Since they're powerful the king isn't being so tyrannycal towards them.
Murder is another thing though. The tyrannical kingdom thinks murder is wrong, but the fearing citizens also thinks that. An explaination could be that anyone is against a crime towards themselves or a group they're loyal to (or it's members). So, everybody is for killing the king, his knights, barons and merchants (they're loyal to the king), but they fear those factions so much that they don't dare. They won't report a murder of a member of these groups unless they're ordered to (or in another way fear for themselves).
If someone murders a citizen of their town, or a family member, or any other member of a group they're loyal to, they will be angry.

People may also be somewhat aginst murder in general, for example by being member of the church ("thu shalt not kill"), or a global "morality" group.

This fits in perfectly with "steal from the rich and give to the poor". The rich are loyal to the sherrif and the poor fears the sherrif. Robin hood steals from the rich, incurring their and the sherrif and guards wrath. The poor doesn't report it even if they know who did it because they fear/hate them. They also get the loot so they're loyal to RH.

It may be neccessary to have more than a scale from 100% fear to 100% loyal though. I'm not sure if it's possible to both be loyal and fear something.


Moral:
Quote:
Thesolitas
Motive could be represented by the players alignment, social standing, relationships etc.

- Evil players would tend to have a more sinister motive
- Being poor may mean you did what you did for greed
- Having a bad relationship with the NPC could mean motive


I'm not quite sure what you mean by this. If you're suggesting that if a character has an evil alignment the game will assume that everything he does has a sinister motive, I disagree. A player may have made a mistake that put him on an evil path, but he may try to go over to the good side again. A player with a good alignment may decide to play his darker side for a while. If the game assumes that he's continuing on his alignment-path, someone with alignment good will become more good no matter what (well, except for killing babies or something).

Also he may be trying to improve his relations with a NPC that he has a bad relationship with. If the game interprets everything he does to be malignant then he can't ever improve the relation.

Being poor doesn't mean that what one does (like stealing) is for greed, but for necessity. If a rich person steals however it's probably out of greed. :)

If you mean that the NPC's will interpret the actions based on previous acts, then I agree. If someone steals something from a farmer and then decides to be nice and help him with picking the apple orchard, I'd guess it's a given that the farmer would think he's stealing his apples. He probably won't give the poor fella a chance to explain before chasing him out with a pitchfork.

In my opinion, since it's impossible for the game to interpret the players intentions (without using a very elaborate dialog system/action menu), the final outcome should determine reward/punishment. Ideally the game should know that the player is trying to steal something if he picks it up, but since he also may be examining it or moving it the response should wait until he puts it in his pocket.
The apple orchard is a great example. If the player fills a basket of apples then he's just doing that. If the then takes it to the farmer then it's a good thing to do, but if the takes the basket to the town and sells them it's a bad thing to do. Of course he may be bringing the money back to the farmer, in which case it's a good thing to do.. Ouch. I guess giving the apples to the farmer is Good+5, selling them is Bad-5 (eating them as well, or perhaps Bad-2) and bringing the money to the farmer is Good+10 (or more or less).
If it was possible to state when you start picking that you're stealing them (ctrl-click or something) then the game could calculate morale at once, but it's extremely simple to cheat. If this was possible then the game would give the player a bad morale even if he changes his mind and decides to be good.

One way to let the game know the intent (somewhat) is to use dialogue with NPC's. If he asks the farmer for permission (or tells him) to help pick the apples then the game knows he's trying to be helpful. Of course he may be lying to the farmer, and even if there's an option to lie the player may cheat. Perhaps stating in the dialogue that he's lying would incur less penalty than if he states he's being truthful and still steals the apples.

Well.. This is getting long enough :) Good night.

This topic is closed to new replies.

Advertisement