Search Unity

[RELEASED] Love/Hate: The Emotion-Driven Relationship System

Discussion in 'Assets and Asset Store' started by TonyLi, Mar 24, 2015.

  1. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,052
    Hello Tony and everyone else. Just dropping by to let you know that Love/Hate now has integration tasks with NodeCanvas :) You can download the package from the website.

    Have fun!
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Awesome! I'll add this to the Asset Store description and the Pixel Crushers website. Thanks!
     
  3. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,052
    Great thanks! I'll do the same. It's a great system you have there :)

    Cheers!
     
    TonyLi likes this.
  4. Dalemeric

    Dalemeric

    Joined:
    Mar 23, 2015
    Posts:
    6
    This looks really intriguing. Before I jump and buy it though, I have a quick question about how to best implement this in my project. I am working on a squad based game with permadeath and procedural characters. As it seems you need a faction for each character, and these characters would be generated at run time, are you able to add and remove factions at run-time? Or would you set up enough placeholder factions and overwrite characteristics every time a new character is generated? Thanks for your thoughts, and again this seems like a great product!
     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @Dalemeric - You can do either! Placeholder factions let you see everything at design time. But you can also call FactionDatabase.CreateNewFaction() to create a faction at runtime. (The full API reference is here.)
     
  6. Dalemeric

    Dalemeric

    Joined:
    Mar 23, 2015
    Posts:
    6
    Awesome! I took a look through the API, and there doesn't appear to be a remove faction option. Would this eventually start eating up performance if you continue to add new factions? And if so, at what point do you think this would happen? I'm not really worried about it at all for my current project but I like to know my limitations! I think I'm going to go ahead and buy it though so thanks for your quick answer!
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    FactionDatabase.DestroyFaction() will be in version 1.4, which will be released soon.

    Love/Hate has been tested with thousands of factions with no noticeable performance drop.

    When you start to incorporate it into your project, please keep me updated. I'm interested to know the different ways everyone's using Love/Hate. Thanks!
     
  8. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    The developer of ORK has made a new asset called Makinom - The Game Machine for Unity.

    Would I be able to integrate your products with it?
     
  9. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @Licarell - Yes, with a little work right now. Love/Hate and the Dialogue System don't have official Makinom support packages yet. But Makinom is just an expanded version of the visual scripting system in ORK Framework, so you can start with the ORK support code provided with each product. Love/Hate and ORK seem to be a popular combination, so official Makinom support will be coming sooner rather than later.
     
  10. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    Very great to hear... Thanks Tony!
     
  11. JacobFalling

    JacobFalling

    Joined:
    Apr 27, 2014
    Posts:
    22
    Tony,

    I contacted you separately with a couple of support issues (thank you!), but also wanted to post here so other neophytes can maybe benefit from the comments and solutions you provide.

    My primary setup for factions includes three sets of parent factions; one is for age, one is for location, and one is for social class. Each age category has a set of traits, as well as an affinity for each other age category; likewise for location and for social class. Every character in the game has a single age, a location, and a social class as parent factions.

    To define the traits, which Love/Hate does not automatically sum or average based upon multiple parent factions, I created presets for all possible combinations, summing each of the traits for the parent factions manually. A little more work than expected, but certainly doable, and gave me a chance to see them summed for each character type. Being able to use a / to subcategorize all three tiers is a nice way to handle these, also.

    For example, a character is a child (deceit +20), from the city (deceit -5), and lower class (deceit -20) for a total deceit of -5.

    For the relationships, each parent faction has an affinity for each other parent faction of the same set; these apparently average for each faction based upon the parent factions, rather than having a preset, but these relationship sums are not visible in the faction database or on the faction member components.

    To continue the above example, the lower class city boy has (or should have) an affinity for an upper class old hermit of -15 (lower class affinity to upper class -5, city to wilderness -10, child to elder 0).

    So at this point, before I get into the meat of building dialogue and actions based upon the data, I'm really just looking for a way to confirm the final faction members' personalities as I place them in the world, before I begin to work everything out in Articy, Dialogue System, and PlayMaker.

    I know you're considering making this more apparent in future versions, but in the meantime, is there a reasonable way for me to see the final calculated personality and relationship traits in both the editor and scene view?

    I was hoping to find them hidden in the Faction Member component using Monitor Components, but no luck... though it will be nice later to see the PAD values and such graphed this way!

    Again, thanks for your fantastic tools and excellent support. I'm particularly impressed that you've supported so many third-party packages so quickly!

    -Jacob
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @JacobFalling - Thanks for the kind words!

    Monitor Components would be perfect for PAD values. I'll drop it into a test project and try it out myself, too.

    In the upcoming version 1.4, the Faction -> Personality Traits section now has a menu item "(Inherit from parents)" in the presets dropdown menu.

    Since relationships can be very dynamic, inherited relationships are computed on the fly by traversing the family tree. The faction database editor now has a new Faction -> Relationships -> Inherited Relationships foldout section. At runtime, the Faction Member inspector also has an equivalent Inherited Relationships section.

    Version 1.4 will be released tomorrow. Adventure Creator support made it into the release (and, as nuverian wrote, Node Canvas now also has Love/Hate support), but Makinom support will have to come in version 1.5.
     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Love/Hate 1.4 Released

    Love/Hate 1.4 has been submitted to the Unity Asset Store, and is available for immediate download on the Pixel Crushers customer download site. If you'd like access to the site, please PM me.

    The major features of this version are Adventure Creator support and improvements to inspectors for inherited traits and relationships.

    Version 1.4
    • Added: FactionDatabase.DestroyFaction method (and equivalent actions for visual scripting systems).
    • Improved: Can inherit traits from parents in inspector and at runtime.
    • Improved: Faction database and faction member inspectors now show inherited relationships.
    • Changed: Moved multiplayer example into separate package to avoid API warning in Unity 5.1.
    • Adventure Creator: Added support.
    • ORK Framework: Updated for ORK Framework 2.5.1; added CreateNewFaction and DestroyFaction steps.
    • TradeSys: Enhanced support.

    Version 1.5 will introduce support for Makinom!
     
  14. siblingrivalry

    siblingrivalry

    Joined:
    Nov 25, 2014
    Posts:
    384
    Hi Tony, is there a cap on how many NPCs can be supported on Love/Hate?
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @siblingrivalry - There's no hard cap. The practical limit depends on your target hardware and what you're doing with the factions, but in general you can have thousands of NPCs on any platform.
     
  16. siblingrivalry

    siblingrivalry

    Joined:
    Nov 25, 2014
    Posts:
    384
    Thanks @TonyLi

    I trying to populate a multiplayer sandbox game with NPCs for quests and general interaction. Will be thousands of NPCs across the map.
     
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    That'll be fine with Love/Hate. If you have time, please keep me updated on your project. I'm always interested to know what people are doing with Love/Hate! :)
     
    siblingrivalry likes this.
  18. JacobFalling

    JacobFalling

    Joined:
    Apr 27, 2014
    Posts:
    22
    Tony,

    Thanks for the changes in 1.4! The visibility of inherited relationships makes my faction and faction member creation a lot easier. I'm also testing out the Adventure Creator integration, and based upon some of the posts here, may include TradeSys as well.

    Has anyone had any luck getting PlayMaker to work with Tradesys? This might be my only weak link in the tool sets.

    Jacob
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    You might try contacting @CallumP, the author of TradeSys. It's a fairly common thing nowadays for developers to add PlayMaker support to their products.
     
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Love/Hate 1.4 is now available on the Asset Store!
     
  21. siblingrivalry

    siblingrivalry

    Joined:
    Nov 25, 2014
    Posts:
    384
    Hi, what changes are in 1.4?
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @siblingrivalry -

    The major changes in 1.4 are the addition of Adventure Creator support and improvements to inspectors for inherited traits and relationships. Here's the change list:

    • Added: FactionDatabase.DestroyFaction method (and equivalent actions for visual scripting systems).
    • Improved: Can inherit traits from parents in inspector and at runtime.
    • Improved: Faction database and faction member inspectors now show inherited relationships.
    • Changed: Moved multiplayer example into separate package to avoid API warning in Unity 5.1.
    • Adventure Creator: Added support.
    • ORK Framework: Updated for ORK Framework 2.5.1; added CreateNewFaction and DestroyFaction steps.
    • TradeSys: Enhanced support.

    Version 1.5 will introduce support for Makinom. It will also improve the FactionMember inspector to show relationships at design time. Through version 1.4, the inspector has shown relationships only at runtime.
     
  23. JacobFalling

    JacobFalling

    Joined:
    Apr 27, 2014
    Posts:
    22
    Hello again, @TonyLi!

    I was wondering if you were going to include the option to sum (instead of average) parent traits and relationships? I can build Presets for this, but if it's something you'll add soon, then I won't bother.

    Thanks again. Certainly enjoying the tool!

    Jacob
     
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @JacobFalling - Yes, I'll be releasing a patch on Monday.

    For traits, the faction database editor will replace "Inherit from parents" with two options: "Average from parents" and "Sum from parents".

    For relationships, Average/Sum will be an option on the Faction Manager. It'll apply to all inherited relationships. [EDIT: The tidiest solution ended up putting the option in the faction database with the other options.]
     
    Last edited: Jul 14, 2015
  25. JacobFalling

    JacobFalling

    Joined:
    Apr 27, 2014
    Posts:
    22
    Perfect! That will allow for both true "parenting" (average of parents, as you originally designed), and a hierarchical additive structure like I'm using:

    -A culture/race faction has its own set of traits/relationships
    -A class faction has its own set of traits/relationships
    -A national/regional faction as its own set
    -etc.

    ...so that an individual character/faction member is the sum of all her/his parts.

    Very cool possibilities with both models, and the extra effort is truly appreciated. I'm honestly inclined to buy your tools out-of-hand in future. Ah... I'll save the rest of this for the review.
     
    TonyLi likes this.
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Love/Hate 1.4-p1 Patch Available

    Patch 1.4-p1 is available on the Pixel Crushers customer download site. If you'd like access, please PM me for the link or email tony (at) pixelcrushers.com.

    This patch contains enhancements that will be in the upcoming 1.5, which will also feature Makinom support.

    The tidiest solution to choosing inheritance methods (average or sum) was to put the choices in the faction database. This patch adds the following dropdown menus to the Faction Database editor:
    • Personality Traits > Trait Inheritance Type: Average or Sum. Affects how personality traits are inherited from parents when calling FactionDatabase.InheritPersonalityTraits() in your scripts at runtime.
    • Relationship Traits > Relationship Inheritance Type: Average or Sum. Affects how relationships are inherited from parent (design time and runtime).
    • Factions > (Faction) > Personality Traits: Average from parents or Sum from parents. Lets you inherit parents' personality traits at design time.
     
    BackwoodsGaming likes this.
  27. thedreamer

    thedreamer

    Joined:
    May 13, 2013
    Posts:
    218
    is there any news about Quest Machine?
     
    BackwoodsGaming and Teila like this.
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    I just finished a huge update to the Dialogue System. Makinom support for Love/Hate is next, and then it's full steam ahead again to finish up Quest Machine.
     
    Teila and BackwoodsGaming like this.
  29. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,816
    Oh good! I just had a new team member join to work on quests. Great timing. :)
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    In case you're using a browser that has difficulty playing WebGL content, a webplayer version of the demo scene is now available:

    Webplayer Demo
     
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Love/Hate 1.5 Released!

    Love/Hate 1.5 is now available on the Asset Store!

    This version adds support for Makinom and includes improvements to the editors and supported visual scripting systems.

    Version 1.5
    • Added: Option to sum or average traits when inheriting from parents.
    • Improved: Faction member inspector shows traits and relationships at design time, not just runtime.
    • Makinom: Added support.
    • ORK Framework: Added SwitchFaction, InheritTraitsFromParents steps.
    • PlayMaker: Added SwitchFaction, InheritTraitsFromParents actions.
     
    Last edited: Aug 7, 2015
    BackwoodsGaming likes this.
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Love/Hate 1.6 Released!

    Love/Hate 1.6 is now available on the Asset Store!

    This version contains an updated TradeSys support package that accommodates changes introduced in TradeSys 2.7.

    Version 1.6
    • Improved: FactionMembers are now ready on Awake, not Start.
    • Changed: FactionManager now turns off debug messages when Debug.isDebugBuild is false.
    • Makinom: Added UseFactionManager schematic node.
    • ORK Framework: Added UseFactionManager step.
    • PlayMaker: Added UseFactionManager action. Fixed SwitchFaction action.
    • TradeSys: Updated for TradeSys 2.7.
     
    BackwoodsGaming likes this.
  34. digiross

    digiross

    Joined:
    Jun 29, 2012
    Posts:
    255
    I'm developing a strategy game and think this asset may work. When you create factions, can you set it up something where certain actions will increase or decrease your relationship with other factions like:

    Revered = 2000 +
    Friendly = 1000 to 2000
    Neutral = +/- 1000
    Hostile = -1000 to -2000
    Enemy = -2000 +

    I don't need hunger or other traits for a strategy game.
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @digiross - Yes, that's the core function of Love/Hate. Relationship values are in the range [-100, +100], so it might be more like:

    Revered = 80 +
    Friendly = 30 to 80
    Neutral = +/- 30
    Hostile = -30 to -80
    Enemy = -80 and below

    This helps you conceptualize values as percentages.
     
  36. digiross

    digiross

    Joined:
    Jun 29, 2012
    Posts:
    255
    Great news!
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Feel free to look over the manual to make sure Love/Hate will meet your needs. If you have any other questions, please ask!
     
  38. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313
    sorry to ask it again, since a procedural quest generation, that uses Love Hate data, is really interesting.
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Thanks for your interest in procedural quest generation! I'll be sure to post a notice here when the procedural quest generator is published.
     
  40. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313
    @TonyLi , Hi there, I'm still new to Love/Hate system. Right now, the system has mapped PAD to 9 Temperaments/Moods. Why not make another final step, mapping 22 OCC emotions into PAD space? That could help us extremely. For now, besides a bunch of if statements, I have not figured out a better way yet to map 22 OCC emotions into PAD space using 9 Temperaments, a Table lookup could be. Anyway, since I'm not as good as programming as you, I hope you could consider this support. Thanks :)
     
    Last edited: Sep 30, 2015
  41. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @ikemen_blueD - Good idea! I'll add an option to customize how Temperament is mapped. OCC emotions don't map exactly onto PAD temperaments. OCC defines personality, whereas PAD defines moment-to-moment emotional state. If you're using the OCC model (Love/Hate includes a template database for OCC), OCC influences PAD values, and those PAD values in turn determine Temperament. But I can see that you might want OCC values to have a stronger influence on Temperament than just by influencing PAD values. In the next version, you'll be able to specify this with a small override method.
     
  42. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313
    hi @TonyLi , I'm very new to AI Emotions. I tried to look for a research, in order to understand your PAD and 9 Temperaments. And, I found out about this paper "Mapping discrete emotions into the dimensional space: An empirical approach.", from https://www.researchgate.net/public...o_the_dimensional_space_An_empirical_approach.




    So, I think like some kind of "fake" machine learning, to teach Love/Hate system know with these PAD values, what kind of emotion AI is currently? Anyway, I can't wait for the upcoming update.
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    I had forgotten about that paper! Thanks for reminding me. I experimented with that table early on. It seemed overly complex at the time, and I wasn't sure that the generalizations they made were accurate, but it will be good to provide the option to use it.
     
  44. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313




    Hey, I got an idea about mapping, which make it more visual and more user-friendly. So, basically, the idea is breaking the big PAD Cube Space into smaller Cube chunks, for example 50 cubes. I then can assign each chunk to an associated Emotion state, that I like. So, I don't need to find any paper, that has PAD mapping stats. This could lead to more diversity emotions states. For example, maybe for this specific Database Model, Fear occupies 4 Cubes chunks, more chance for AI getting fear. I don't know if this approach is doable. Just another suggestion for ya. Thanks for reading this :)
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    @ikemen_blueD - Another good idea. I'll give this some thought.
     
    ikemen_blueD likes this.
  46. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313
    @TonyLi , I tried to read your code today. I must say I'm very impressed. The code is so clean to read and professional. I just finished reading code from the Faction Database folder, still more to read :) Btw, I'm a bit confusing about the Inherited Relationships. For example, I have:

    King.Affinity towards Bandit = -44;
    Princess.parents = { <King> }

    1) if Princess does not meet any Bandit before, Princess doesn't have any personal relationship with any Bandit. Thus, by inherited relationships, Princess.Affinity towards Bandit overall = Average from Parents = -44. Is this correct?

    2) in design time, I set Princess.Affinity towards Bandit = 22. So, Princess has an okay personal relationship with the Bandit faction. By inherited relationships,
    Princess.Affinity towards Bandit = (22 + -44)/2 or Princess.Affinity towards Bandit = 22 , like she ignores her parents' feelings, only care about her feelings?

    3)
    BanditA.parents = { <Bandit> }
    BanditB.parents = { <Bandit> }
    King.Affinity towards Bandit = -44;
    Princess.Affinity towards Bandit = 22

    For example, Princess meets a specific Bandit-A. She hates him. Princess.Affinity towards Bandit-A = -66. So, by inherited relationships, will it change the Princess.Affinity towards Bandit-A? will her hate towards Bandit-A, has any effects on her Affinity towards the whole Bandit faction, like stereotypically?

    Princess meets a specific Bandit-B. She likes him. Princess.Affinity towards Bandit-B = 66. So, by inherited relationships, will it change the Princess.Affinity towards Bandit-B? Almost same questions above.

    Many thanks for the replies so far. Awesome system and supports. Bought all your plugins :) Will write a review soon when I know your system more.
     
    Last edited: Oct 2, 2015
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @ikemen_blueD - Thanks!

    When a faction has a personal affinity, it completely overrides its parents' affinities.

    Yes. Princess.Affinity towards Bandit = -44 (inherited)

    She ignores per parents' feelings. Princess.Affinity towards Bandit = 22 (personal)

    No. Princess.Affinity towards Bandit is still 22 (personal). Princess.Affinity towards Bandit-A is still -66 (personal).

    If other bandits still like Bandit-A, they will probably do nice things to Bandit-A. If the Princess sees this, she will lower her affinity toward them.

    Princess.Affinity towards Bandit-B is 22 (inherited) -- until she sees bandits being nice to Bandit-A. Then she will have a lower personal affinity to bandits.

    Yes, same as #1 above. Princess.Affinity to Bandit-B = 66 (personal)
     
    ikemen_blueD likes this.
  48. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313
    Hi @TonyLi , Thanks for your reply, now I understand how Inherited Relationships work. Btw, I just found a small bug from Editor. For example, King.Virtue = 70, Queen.Virtue = 90, when I select Princess.Virtue by Sum from Parents, Princess.Virtue = 160, but the maximum scale is 100. I don't mind to round it back to 100, just a small bug, to let you know.

    Another thought about Personal Relationships vs. Inherited Relationships:

    With this system, Princess always loves herself. For case like, King hates her, Queen hates her. Her parents' bad feelings towards her, won't have any effects on her. In real life, our emotions are influenced by other people around, especially our family members. So, if her Parents hate her → maybe, if there is an option later, to make her start to hate herself because of that.

    I understand how Princess ignores any inherited relationships, if she has her own, personal feelings toward a Faction. But, that makes her overall, kind of stubborn or selfishness. Maybe, if there is an option later, to make her start to ask heself should I listen to my own feelings only or I should consider my own feelings & my close, trusty members (like a priority level, to determine how much she would listen to her father (70%), her mother (80%, she consider her mother feelings more, since she closer to her), her step-mother (0%, she ignores step-mother feelings, if step-mother hates or loves bandit, Princess simply does not care).

    So, I think a Trusty Percentage level for each Parent section could be cool.

    Also, there is a quote about "One scabby sheep is enough to spoil the whole flock". At first, she kind of likes Bandit faction. But, after some bad experience with some specific Bandit members, maybe, there is an option to make her change her Affinity towards the whole Bandit faction. Right now, her personal affinity towards a specific Bandit & her personal affinity towards the whole Bandit faction are two separate entities, but in some sense, for me they should be related to each other at some level.

    Question about the list of Inherited-Relationships

    For example, Princess has an inherited-relationship towards Bandits, from her King. I wonder her relationship to Bandits is considered as "Inherited-Relationship" class type or "Relationship" class type? When does an inherited-relationship become a personal-relationship? What if I remove King faction completely, like he's dead, he is no longer in the game. Will the system remove all inherited-relationships of Princess, from King? Will it remove her relationship to Bandits, as "inherited" at first, but "personal" now?

    Sorry, for spamming many questions. Emotional AI is such interesting topic. And, I can't help to spam questions about it :(
     
    Last edited: Oct 3, 2015
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,234
    Hi @ikemen_blueD - Thank you for reporting the bug! You can download a fix here. You'll need to enter your Asset Store invoice number to access the page.

    Good thoughts on inherited relationships! You can add your own Trust relationship trait if you want to track Trust separately. You can also override the deed evaluation function with your own version to take Trust into account. Love/Hate already handles much of this in the default deed evaluation function. If the Princess has affinity 80 to her mother, she will have 80% trust in gossip that her mother tells her.

    I'll add an optional component that does this. If the parents hate her, it will gradually reduce her affinity to herself.

    This is true. Perhaps it's not as nuanced, but I think it makes it a little easier for the player to understand what characters are thinking. However, she's not entirely selfish because of the gossip system. If her mother witnesses a deed, her mother will tell that deed to the princess with the mother's slant on it. So the princess's judgment of the deed will be influenced by her mother's judgment and the princess's affinity to her mother.

    Another good idea. I'll give this some thought.

    It starts as an inherited relationship. If you remove the King during play, by default the Princess will inherit all of the King's relationships as personal relationships. If the Princess already has a personal relationship to a faction, she won't inherit the King's relationship in that case.

    These are all great questions. If you have any more, please keep them coming! :)
     
    ikemen_blueD likes this.
  50. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    313
    Thanks for the quick fix. I got my Faction-Database.cs fixed. Thanks for the tips Tony, I haven't read up to Deed & Gossip yet. Yay, I'm glad that the system is powerful and flexible enough for any possible setup. The real challenge is how to come up with good Personality, Relationships traits, and playing with numbers correctly.

    I'm still kind of confusing about this class: "Core\Faction Database\Editor\Inherited-Relationship.cs". Is it only used for Editor to draw out "Inherited Relationship GUI section"?

    1) For example, Princess.Personal Relationships = { <Princess, King>, <Princess, Queen> }. These two are "Core\Faction Database\Relationship.cs" type. Let's say Princess inherited a new relationship from her King. Princess.Personal Relationships = { <Princess, King> , <Princess, Queen>, <Princess, Bandit> }. What type is the <Princess, Bandit>?

    So, I assume that <Princess, Bandit> is her personal relationship at run-time. Am I right?

    2) during gameplay, King has a new personal relationship, will Princess inherited from it as well?

    Inherited Relationship at design time for me is like Background Relationships, Faction-A does not like Faction-B. Children of Faction-A, by inheritance, by background, do not like Faction-B. It is true. But, what if Parent has a secret personal relationship, for example, King has a secret lover. King does not want other to know about it, unless they witness it. By default, correct me if I'm wrong, if King has a secret relationship with his Lover, Princess also inherits it, and surprisingly, she also likes his lover LOL.

    I think an extra Boolean variable - like a Secret check for each personal relationship. If checked, you don't want this relationship to be inherited. I think that makes senses in some cases. Anyway, just another suggestion.

    Anyway, have a nice weekend!!!
     
    Last edited: Oct 4, 2015
unityunity