Search Unity

NPC Personality Traits

Discussion in 'Game Design' started by TonyLi, Jan 5, 2015.

  1. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I'm working on a personality-driven relationship system for NPCs. An NPC is defined by a set of values. A number in the range -1 to +1 specifies how the NPC feels about the value, where -1=disagrees, +1=agrees.

    Are the 5 values below comprehensive enough to represent a broad range of NPCs in a way that's useful in a game? Are any redundant or unnecessary?
    1. Charity: -1=greedy, +1=altruistic
    2. Integrity: -1=treacherous, +1=loyal
    3. Orthodoxy: -1=anarchist, +1=conformist
    4. Violence: -1=pacifist, +1=warlike
    5. Wit: -1=unintelligent, +1=insightful/shrewd
    Examples:
    • Dim-witted but honorable warrior: Integrity +1, Violence +1, Wit -1
    • Greedy, sneaky, cowardly wizard: Charity: -1, Integrity: -1, Violence -1, Wit +1

    To provide some fuel for discussion, the original prototype used these values:
    • Initiative: -1=cautious/timid, +1=courageous/foolhardy
    • Belligerence: -1=peaceful/weak, +1=violent/strong
    • Intelligence: -1=foolish/uncomplicated, +1=clever/pedantic
    • Altruism: -1=cruel/self-reliant, +1=compassionate/gullible
    • Integrity: -1=backstabbing/unfettered, +1=loyal/dogmatic
    A related procedural quest generation project defines NPCs using motivations instead of values. Those motivations are:
    1. Pleasure ("kill the orcs and bring me the fine elven wine from their treasure room")
    2. Reputation ("kill the orcs to make me look good as mayor")
    3. Justice ("kill the orcs because they killed our mayor")
    4. Security ("kill the orcs to keep me safe")
    5. Conquest ("kill the orcs to clear the land for my realm's expansion")
    6. Wealth ("kill the orcs to free up my trade route")
    7. Guidance ("kill the orcs to learn how to become a better warrior")
     
  2. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Looks good to me. Really good... again, I think you're pushing in the right direction. Everybody's going to be doing this sort of thing in ten years, but props to you for being on the forefront.
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Thanks! I'm really grateful for your and @Teila 's feedback on this. I think I can rework the procedural quest generator to use those 5 values also. It just involves tagging actions with those values instead of the motivations so the planner can choose actions that fit the NPC.
     
  4. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Sorry to be a bit abstract, but it seems like you could possibly have a longer list of traits and then define characters with an arbitrary number of traits from the list.

    In other words, you could have a longer list (more than 5 traits) if you wished, but not require that all of the characteristics be established or defined. The ones that ARE established could provide motivation, and the ones that aren't could be where the person behaves in an inconsistent or arbitrary fashion.
     
  5. GoGoGadget

    GoGoGadget

    Joined:
    Sep 23, 2013
    Posts:
    864
    I can't remember seeing a system like this in any game I've played, and I think this is the sort of procedural/randomly generated content that actually works well - you can still hand-craft the important stuff in the quests, but make the whole process leading up to the quest more organic by tying in the NPCs personalities into it.
     
  6. ensiferum888

    ensiferum888

    Joined:
    May 11, 2013
    Posts:
    317
    I love it! Can people have a value of 0 as well or it's always defined as either black or white?

    I think it's great, will those values be exposed to the player or will only show through dialogues and actions?
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Yes! Thank you! That's the whole idea. In the related thread, I mentioned one of the motivating events: in Mass Effect 1, if you accidentally drive over too many monkeys on a planet, a companion gets upset. But, since it's scripted, you can flatten as many monkeys as you want on any other planet, and she won't care. This is an attempt to fix that.

    I can't claim credit for originality, though. This has been an academic research topic for a few years, with playable prototypes written for environments like Neverwinter Nights. I'm just trying to bring it to Unity in a useful way.

    People can have a value of 0. Someone who doesn't have an opinion about violence would have a 0, while a pacifist would be -1 and a brawler would be +1. A value of +0.1 means you're slightly in favor of violence.

    I'm thinking of changing the scale from [-1,+1] to [-100,+100]. This might be more intuitive. Thoughts?

    What you choose to expose to the player will be up to you as the game designer.

    This is the dilemma, and one of the reasons why I'm seeking your opinions. It's critical that NPCs' traits have some overlap with actions' traits. If not, the actions won't have any relevance to the NPCs, and the NPCs won't form any opinions about them.

    As the list of traits gets longer, actions are less likely to overlap with NPCs' traits in an interesting way.

    Should the system leave this up to the game designer to worry about instead? I'm trying to keep it as simple as possible. I feel like the 5 traits above are fairly comprehensive, but I don't want to hamstring designers by forcing an unchangeable list on them. If your game has no concept of violence, the violence trait is kind of irrelevant. Thoughts? Ideas?
     
  8. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Could we maybe click traits on and off? So have a longer list but we can turn them off if we don't want to use them. I guess the question then would be....how many should be in the list and how cumbersome would that be? I get the dilemma. :)

    Ideally, the way to do it would be to allow the designer to put in their own traits and number values for those traits through an easy to use editor. That may be beyond the scope of the project though. :)
     
  9. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Easy enough to do. I initially steered away from this only to keep the system as simple as possible. But it sounds like it's worth a little extra setup effort for designers.

    I could provide a few trait templates, with accompanying personality archetype templates, such as:
    • RPG traits: Combat, Exploration, Service, etc. Plus archetypes for bold fighter, cautious scholar, sneaky thief, etc.
    • Romance-oriented visual novel traits: Mystery, Generosity, Boldness, etc. Plus archetypes for narcissist, awkward introvert, etc.
    Designers could start with a template or specify their traits from a blank slate.

    By number values do you mean the scale? ([-1,+1] versus [-100,+100])
     
    hopeful likes this.
  10. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I personally like -100, +100. In my mind, it gives me more variety. I realize a .01 is as different in that scale as 10 is in the 100 scale but it just makes more sense to me. :)
     
  11. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I like the sliding percentages scale as it makes it more natural to adjust as a consequence of actions during play (if that is desired).
     
  12. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Would it be that difficult for us to adjust the numbers in code? I mean, couldn't one make whatever they want appear in the panel as long as the math is created in the code to convert the numbers. :)

    Also, can we decided what is shown in the panel? I personally want my players to see the actions of the NPCs and how they respond to them rather than numbers so would prefer to hide those. I suspect that we can just do that in our own UI but just want to make sure.
     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I think it'll be easier all around to stick with a consistent scale. The scale [-100,+100] seems to be popular, so that's what I'll go with. I agree with you and @hopeful that it's more natural than [-1,+1].

    Showing the numbers will be up to you and your UI. There are plenty of hooks to the data, such as OnGossip, OnWitnessDeed, OnAffinityChange, etc., as well as direct access to all the numbers through a single component named Faction. The panel in the testbed scene isn't part of the system itself; it just pulls data from the Faction component to give a better idea of what's going on in the scene.

    There's also a collection of add-on components to do things like play animations OnGossip, so in the most common instances you won't have to do any scripting.
     
    Last edited: Jan 5, 2015
  14. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    One trait I could see adding, possibly, if I was to use a system like this in my game, is "willingness to negotiate." Some NPCs would have a willingness to negotiate while others wouldn't.

    In stories, you often have two factions pitted against each other. Yet some individuals in both factions, despite their animosity, will be willing to deal with each other. You find the right two to negotiate with, and you might be able to bring about a truce or some other bargain.

    It's not like these individuals are less loyal (although they may, in fact, be less loyal) or different in any other trait, but rather they are just mentally open to the idea of striking a deal.

    If you have a game story scenario that deals with a lot of villains, probably most of them will be willing to negotiate. However, some villains will be of a more fanatical type (or whatever) and they won't be interested in any deals or in certain types of deals. I don't know how detailed you could get on modeling behavior, but "willingness to negotiate" is something that could potentially carry a lot of weight in a game.
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    This is another great argument for letting designers specify their own list of traits specific to the game they're designing. I'm leaning toward that now instead of hard-coding the list. It puts a little more responsibility on the designer, but I think it's worth it.
     
  16. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Another consideration is overall discipline. Some people are inherently more consistent in their behavior because they have either had a lot of training or they lead an introspective or inspected life.

    Others, however, just bounce around. They may have reasons at the time for why they do this or that, but there's not a lot of consistency over days and years. You can't easily predict what they will do next, except possibly for a few areas of clear behavior pattern.

    So some individuals will adhere closely to their behavior model and others will be more loosey-goosey. One way to reflect this would be to have something like an AD&D-like order / chaos type modifier that affects the entire motivation calculation. Another way, maybe, would be to leave all inconsistent motivations undeclared, so that when calculation time comes in these areas the motivation is by whim.

    In this way, the player encounters some NPCs who are reliably consistent and some who are unreliable and inconsistent.
     
  17. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Diplomacy maybe? One of my favorites. :)
     
  18. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    There was a great talk about this at GDC's Game AI Summit a few years back by Stephane Bura. He suggested a 45 element model based on the Big 5 Factors of Psychology (Ocean Model), which sounds pretty complex, but also make a lot of sense.

    You can find his slides here, you need to have Vault access to get the talk. http://www.gdcvault.com/play/1015385/Beyond-Eliza-Constructing-Socially-Engaging

    The good stuff starts on slide 45.

    One thing that Stephane said in the talk, that I think is very relevant, and actually totally blew my brain out of my skull and up to the ceiling of that room is,

    If you rate the character motivations, and their potential actions using the same personality system, you can get a utility value of any behavior by taking the scalar product of the motivations
     
  19. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Interesting, Dan. I don't have Vault but the slides looked good.

    Our original goal was to have actions in the game affect the personality traits of the NPCs but we are wondering if that might be too much for a game that might have a lot of NPCs. I am still on the fence about it and Tony's asset is really tempting. It would be so much easier than our original plan. :)
     
  20. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    Indeed, the reason I posted it was to hopefully inform what @TonyLi is working on. One of the salient point's of Stephane's talk was that storing the personality factors in a vector provides a number of useful advantages. Individual personality traits can be described as combinations of motivations, (like the love and shy in the slides 48 & 53) and then character personalities can be made by quickly composing multiple personality traits (love + shy).

    Actions can also be described in the same format (like seduce on slide 49) and the single numerical utility for of those actions can be computer quickly and easily by taking the scalar product (like dot product of two vector3's) which is mathematically very efficient and scalable. The idea was that it would be efficient enough to work for something on the scale of an MMO.

    I don't know how his experiments with it came out, he wasn't at GDC the following year, and I only got a short amount of time to talk to him last year, as he's quite busy (his company got acquired by Sony and is working on AI for Everquest Next)
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Great info, @DanSuperGP. Thanks for posting it.
    That's exactly what this system does under the hood, because I stole it from the same academic papers he did. I never claimed originality. :) Like I said before, I'm just trying to bring it to Unity.

    I prototyped earlier with the OCEAN, OCC, and EEP personality models. OCEAN and OCC are even more abstract than the 5 traits at the top of this thread, so they're ill-suited for games unless you break down OCEAN into those 45 individual elements. But there's got to be a better way. It's impractical to make the game designer work with 45 different variables.

    The EEP model works well in game environments, but it focuses entirely on emotional reaction without appraising actions based on how well they align with other factors such as motivation and moral systems.

    I started this thread essentially to ask if a specific list of 5 traits can produce the same effect to the player as the 45 elements in the OCEAN breakdown. (I think they can.) But many of you are making a good argument for leaving the list of traits up to the designer. This way, the designer can go as simple as one trait (good/evil) or as many as 45 traits (love, shy, etc.). Any thoughts on this?

    (And thanks, everyone, for all the insights you're sharing!)
     
  22. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    You know my thoughts. :) The more the better and the more customization the better. Thanks for doing this, Tony.
     
  23. DryTear

    DryTear

    Joined:
    Nov 30, 2012
    Posts:
    312
    Any trait related to logic, rationality or intelligence? Can also have stubbornness lol
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I'll send you a beta version when it's ready. :)

    I thought the Wit and Orthodoxy traits could cover those. But at this point it looks like you'll be able to add whatever traits you want. I'm still thinking this over though to make sure there aren't any gotchas.
     
    Teila likes this.
  25. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    Tony, I think you're absolutely on the right track with keeping the trait vectors small. 45 traits is just way too many free knobs. More != better.

    And I would have leaned towards defining a decent set that I hope could work for everyone, but from this thread it does sound like maybe customization is going to be needed. In that case, your idea of having a couple of sample sets with archetypes out of the box will be very helpful. The big risk in a system like this is that most potential users' eyes are going to glaze over around page 4 of the setup instructions, and they'll just give up on it.

    Finally, Teila, it sounds like you're worried about the performance impact of running a system like this with many NPCs. I would advise you not to worry about that too much. The computation involved in a system like this is really quite small compared to the collision detection, physics, and rendering that's going on already. And as @DanSuperGP points out, vector math is quite efficient and fast.

    My main complaint with Tony's system is that it's him doing it instead of me. I love this stuff. But, we all have more great ideas than we have time to pursue, and this one hadn't made it to the top of my list yet... so I'm glad he's doing it!
     
    TonyLi and Teila like this.
  26. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I think what Tony's developing is a system with a flexible number of traits, and the user gets to define the traits themselves. There will be a small sample set of traits in the kit to help demonstrate how it works.

    My main concern is what the system does when the trait value is 0. I think my preference is for it to make an arbitrary decision.

    I guess a person could theoretically even turn this into a learning or adaptive mechanism by using feedback, adjusting one or more traits toward positive or negative depending on the perceived consequences of the decision.
     
  27. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,859
    @hopeful, I don't see why a value of 0 is special. It's halfway between -100 and 100 (or between -1 and 1 in the current prototype). So it's just neutral. Those traits would have neither a positive nor negative influence on the perceived value of various actions.
     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    @Teila, @hopeful, and others have convinced me that the designer should be allowed to specify the knobs. I will definitely provide a couple sample sets so you can just import the system, select a set, and be off and running.

    Thanks @JoeStrout - that's right; this stuff is really fast and lightweight. Even with the action memory subsystem, which uses object pooling to avoid garbage collection, it doesn't even register as a blip in the profiler.

    I see @hopeful 's point. Zero will still mean neutral, but what do you all think of a configurable randomness factor? Some NPCs may be more or less consistent about how they judge the player's actions. Or perhaps should the degree of arousal affect randomness? (The thinking behind this is that people might act less rational when they're excited.)

    Certainly. The system itself won't provide this functionality, but you can change values at runtime, so you could add it on top yourself.
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I have another question: In your game, what traits would you use?

    In a really simple game, one "goodness" trait might suffice. Robbing an orphanage: -100, Finding loving families for all the orphans: +100. A villain (goodness: -50) would see the player rob an orphanage and, since the action aligns with his trait, say, "good for you! I like you more now." This is still more dynamic than many games.

    I'm partial to the 5 traits at the top of this thread.
     
  30. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    @hopeful "My main concern is what the system does when the trait value is 0. I think my preference is for it to make an arbitrary decision."

    When a trait is at zero, it just doesn't affect the utility calculation since it's scalar product (a1 * a2) + (b1 * b2) + ....


    @TonyLi "It's impractical to make the game designer work with 45 different variables. "

    My thought was, rather than having designers twiddle all 45 knobs regularly, you could create lots of prefab trait archetypes like "heroic", "coward", "devious", "power hungry", "fearful" which are presets built out of the 45, and then you could build characters by composing them out of the prefabs rather than tweaking the numbers directly.

    Then you could still have that level of granularity if you want it, but have a higher level way of working on it that is closer to what you would think about when creating characters.
     
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Characters aren't so bad, especially using prefab trait sets. I'm concerned about actions. The designer needs to specify the same traits for each action, such as attacking, or pickpocketing, or praying at an altar, or any of the hundreds of decision points in conversations. Any thoughts on addressing this challenge?
     
  32. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I understand that having lots of knobs and things will intimidate some people. That is a problem I see a lot and what happens is that everything becomes standardized, no customization. You would think that with 45 traits, no one would need something different. But what if their game is wildly different than the usual hack and slash RPG or war RTS? What if their game features animals as the main characters and they want traits that are more animalistic rather than honor, charity, etc.? What about a game where everyone is a ghost and they want traits that have more to do with things like essence or presence than tangible personalities? I mean really, the examples you describe are all related to combat and evil creatures and bad stuff. :) What if I don't want that? What if I want to make a silly anime high school game about love and romance? (Yuck, never!).

    We shouldn't "dumb" everything down and force people to make the same games over and over again. By adding customization, more people will buy the product and more unique games will be built. I really don't think many out there would trade that for a simpler interface. Besides, Tony has said he will be making archetypes for the usual traits. He could also add an Advanced toggle for the customization. They can ignore what they don't want to use. The more I read and think about this, the more powerful I think it could be...sort of the Terrain Composer of the NPC world. :) TC is very complex and difficult to use. It intimidated me for months but once I figured it out, it has added so much to my terrain and so much to my game.

    So keep on going, Tony. I can't wait to see what you create. I am so excited!
     
  33. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    It seems like the same prefab traits would make sense for actions as they would for characters... for instance, attacking the dragon could be "courageous and foolhardy".

    I think no matter how many personality elements make up the vectors, the ability to define traits as presets of elements and then compose them by combining descriptive traits rather than worrying about tweaking individual numbers is going to be the key to making it designer friendly.

    I particularly like the bit in Stephan Bura's talk about tagging locations and items with trait modifiers, for instance the court house was +formality -trust... or the blade of courage that is +courage.
     
  34. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Dan, it depends on the designer. I want to tweak. I enjoy doing that and when I look at the creative games out there that add "tweaking" and "modding", I don't think I am the only one. Designer friendly can also mean that it allows you to use it for your particular game by modifying within the tool. Non-designer friendly would be one that forces the designer to pigeon-hole the game. Again, you used attacking the dragon. What about the guy wooing the girl in the anime game? Will poor Tony be forced to make hundreds of traits to cover all sorts of games or will he just decide the asset is just for those who are making hack and slash RPG games?
     
  35. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    No, the idea is to make presets to make it simpler, but to allow the designers to drop down to the level of granularity of the vector itself to author new traits presets if they want, or just hand tweak any individual character/action/item.
     
  36. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Does that include adding new traits? :) For example, let's say that their are a bunch of presets but the one I want isn't there. Do I have to fudge it by tweaking the combat ones and pretend they are something else? I might be misunderstanding you.

    I just don't want Tony to change his mind about the customization. LOL
     
  37. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    "drop down to the level of granularity of the vector itself to author new traits presets if they want"
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I'm sold on customizable traits and presets. :)
     
    Teila likes this.
  39. DanSuperGP

    DanSuperGP

    Joined:
    Apr 7, 2013
    Posts:
    408
    So as a user you can chose the size of the vector and the meanings of the individual motivation elements, and then create your own presets traits (which are vectors of motivation) and then compose character/action/item/location personality effects by combining preset traits or tweaking individual motivation vectors?


     
    TonyLi likes this.
  40. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Is it really that complex? I had figured the asset was more about the way NPCs reacted to the player based on those traits as well as actions the player initiated toward that particular NPC. I don't know if it is as complex as you suggested above but I guess I could be wrong. I am happy with the way I THINK it is with no additional complexity. :)
     
  41. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Despite all the discussion (or perhaps because of it), in the end it's as simple as:
    • NPC Father Mulcahey is Pious and Honest (specify with sliders or preset).
      • Father Mulcahey has affinity +10 to the player and +20 to The Church's Stuff.
    • Deed "steal the church's gold candlesticks" is Impious and Dishonest (sliders/preset), with a -30 impact to The Church's Stuff.
    That's it for setup.

    Any of the values above can change during play, but they start at whatever you've specified. You don't have to specify affinities to all other characters. If an NPC doesn't have an affinity value for a character, it will check parent factions recursively. Failing that, it assumes zero affinity (neutral).

    During play, the system appraises actions automatically. When the player steals the candlesticks, Mulcahey loses affinity to the player because the deed has a negative impact on The Church's Stuff, and even moreso because the impious and dishonest deed goes against Mulcahey's values. The deed will also affect Mulcahey's emotional temperament (pleasure-arousal-dominance). Other witnesses might judge the deed differently though, and their temperament and affinity to the player may go up or down. Again, this all happens automatically, although you can modify values manually at runtime, too.

    The last implementation detail is tying your game's gameplay activity to deeds. I'm trying to make this as effortless as possible. So far, you can use PlayMaker actions, hooks in Dialogue System conversations, or directly call CommitDeed(...) in a script. There are a couple shortcuts, too, so you can call Attack(target) to commit a predefined "attack" deed on a target. So if you have a player control script that attacks when the player clicks the mouse button, you just add Attack(target) to the script.

    Conversations are easier. Some example dialogue entries:
    • Dialogue Text: "I think you're wonderful!"
    • Script: ModifyAffinity(speaker,+10)
    • Dialogue Text: "Yes, those pants do make you look fat, honey."
    • Script: CommitDeed(insult)
     
    Last edited: Jan 30, 2015
  42. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    I would like to see you develop for the traits you best understand as functioning in a game model.

    I don't know that this framework is really something I would use, or if it just sounds cool. (I don't use every cool thing, I guess!) Probably where the rubber hits the road is how you can get these motivations to actuate in the game ... if it drives dialog, if it drives factions, if it drives NPC reactions to the player, if it drives NPC actions that the player then may interfere with or aid, etc. On the surface of it, it sounds like it could be a lot of work getting much out of it, but then a game could be made where this is a central mechanism, I suppose.

    Traits I might use could relate to willingness to negotiate (deal/no deal) and response to intimidation (fight/flight). I'm not sure what else at the moment.
     
  43. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Sounds great, Tony. :)

    I am not sure many games care about this sort of stuff but it came out of a thread on making games seem more alive by creating interactions between NPCs and players. I can imagine that it would be more important to a game that does not focus on PvP or using NPCs just for questing. In our game, the NPCs are a central part of the game. They work for the PCs, they provide atmosphere in the villages and towns, and through the interactions Tony talks about, they can even provide gossip that might drive role play and player driven stories.

    I do think in a combat focused game this could be interesting as well. Players would have consequences to what they do so that if they make the local blacksmith angry, they might find he won't sell to them or will sell at a steep price. With the popularity of games with interesting AI, such as Oblivion and Fable, I would imagine that most RPG and maybe even some RTS games could benefit from something like this.
     
    JoeStrout likes this.
  44. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    Also, if there is a value to having a neutral / zero motivation, then it should be kept. I suppose a game could be composed called "Ennui" where 45 traits are set to zero, in which you try to get NPCs to care about stuff and do something ... ;)

    I was thinking that there could be value in having a trait be "undefined" in that there is no conditioned response for that trait and when called into action, that NPC could respond in an unpredictable way.
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    @Teila - Good example uses. It would also make a deeper nemesis system in games like Shadow of Mordor. It can play a big role in procedurally-generated quests (single player and MMOs). And I plan to use it myself in an interaction-heavy, scripted RPG in the vein of Mass Effect.

    @hopeful - I've made a note of your idea, and I'll keep an eye out for a good way to work it into the system. Thanks!
     
    hopeful and Teila like this.
  46. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    BTW, does this relate in any way to the previously discussed "judgment" system?

    It seems similar, in that traits could also refer to feelings about individuals and factions.
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi @hopeful - Yup, that's exactly what this is. NPCs judge actions according to how they align to these traits, and according to how they feel about individuals and factions. This allows them to update how they feel about the actor.
     
  48. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I am so excited about all this! Never, in a million years, when we started this project did I think there would be things like this available. It motivates and rejuvenates me! lol

    I can't wait to use it and show it to our small loyal following of fans. They are going to love it.
     
    JoeStrout likes this.
  49. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Hardcore gamers and mathematicians might appreciate -1.0 to 1.0 more, but -100 to 100 will probably reach out to a larger audience.

    Sounds like a strong hint towards factions :p
     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I'm finishing an update to the Dialogue System this week (mostly third party support updates), and then it's back to this project! The changes to core functionality will be quick, but it'll take a little longer to update the custom editors. I'll send you a beta version when it's ready!

    You're absolutely right. They way it's implemented, everything is a faction. Individual characters have their personal factions, and they can optionally belong to any number of parent factions. Actions, too, are done to factions, be they individual character factions or group-wide parent factions.
     
    Teila likes this.