Page 1 of 1

Some suggested features

Posted: Sun Dec 25, 2016 12:14 pm
by dogtoy
Hi,
Really cool system. Using the system I think there are some things that would be great for the system to have that are not currently possible (at least I don't see a way):
(note not a big deal as these are easy for me to add as well)

Personality Traits: Sort of wish these were named different.. e.g. "personality values" as they don't really have anything to do with the person they are on and more just what they value in other people.

Personality Self: Love to see a set of values that define the character (these would probably be called personality traits). E.g. I may be selfish as hell but respect altruism in others. These values could be used to drive selection of AI deeds and effect how a deed effects a character. E.g. Temperament could effect how fast they get angry/sad. A character with a calm temperament may not become as aroused when someone does something against their values. A character with high pragmatism may interact with characters they hate because it suites them.

Dead Checks:
Just a list of values off affinity values the character can check against. E.g. In my AI, I could set the dead trade on one character to require an affinity of +70 or better while Attack may be -5 or lower. (a character is slow to trust friends and quick to attack enemies)
Again these values are easy for me to add but I wanted to suggest the addition.

Thanks and happy holidays.

Re: Some suggested features

Posted: Sun Dec 25, 2016 9:21 pm
by Tony Li
Hi!
dogtoy wrote:Personality Traits: Sort of wish these were named different.. e.g. "personality values" as they don't really have anything to do with the person they are on and more just what they value in other people.
I hear you. Terminology was a challenge when designing Love/Hate. After consulting with colleagues in game dev, AI, and psychology (and a lot of hand-wringing on my part ;)), we finally came to the decision that personality "traits" can have "values" (e.g., Gordon Gekko in Wall Street places a high value of +100 on the personality trait "Greed"), but it would be confusing if personality "values" could have "values". The word "trait" isn't perfect, but it avoids ambiguous double use of the word "value".
dogtoy wrote:Personality Self: Love to see a set of values that define the character (these would probably be called personality traits). E.g. I may be selfish as hell but respect altruism in others.
There was a pretty good discussion along these lines in this thread. One of the ideas was that a trait such as "Cruelty" could really be two separate traits, "Masochism" and "Sadism". In version 1.8.7 (but not the upcoming 1.8.6), I'll be looking into the possibility of additional sets of values that would apply to different factions (e.g., to oneself). Another idea discussed in that thread was assigning your own custom function to the EvaluateRumor delegate.
dogtoy wrote:These values could be used to drive selection of AI deeds and effect how a deed effects a character. E.g. Temperament could effect how fast they get angry/sad. A character with a calm temperament may not become as aroused when someone does something against their values. A character with high pragmatism may interact with characters they hate because it suites them.
That's a great idea. I'll look into that also for 1.8.7. In the meantime, you can accomplish this with an EvaluateRumor delegate. But I agree that it would be better if it were built in. BTW, the PAD Excitability Threshold already gives you some control over how "emotional" a character is. The lower the threshold, the more easily the character moves into a Temperament such as Exuberant or Anxious. The higher the threshold, the more stoic he is.
dogtoy wrote:Dead Checks:
Just a list of values off affinity values the character can check against. E.g. In my AI, I could set the dead trade on one character to require an affinity of +70 or better while Attack may be -5 or lower. (a character is slow to trust friends and quick to attack enemies)
Again these values are easy for me to add but I wanted to suggest the addition.
How do you envision this being implemented? A list of requirements for each check? For example:
  • Can Trade:(Affinity > +70)
  • Attack: (Affinity < -5) and (Dominance > +10)
How would you use it in your project? Pass a check name and a target? For example:

Code: Select all

if (DeadCheck.IsTrue("Attack", target)) {
    // attack target.
} 
dogtoy wrote:Thanks and happy holidays.
You, too, and thanks for the great feedback!