Skills for Consistent Character Personalities

From Infinite Worlds
Jump to navigation Jump to search

This page will detail how to create consistent personalities for your characters by using skills. Because Infinite Worlds requires that player characters have at least one skill which, in turn, the storytelling AI uses to evaluate whether the player succeeds at what they attempt to do.

Using the following approach will not only avoid the frustrations of failing evaluations with a randomly selected skill name that may be irrelevant to the respective world but it will actually enforce character personalities.

Big Five personality trait model[edit]

In order to make character personalities feel consistent, we need a model that has validity to it.

Why choose the Big Five personality trait model[edit]

While there may be an overwhelming number of popular personality tests out there, the choice in this case is simplified by the fact that there is only one model out there developed using empirical research, the Big Five personality trait model from psychology.[1]

Everything else out there seems to be unscientific. Even the currently very popular Myers–Briggs Type Indicator appears to be "pretty much meaningless".[2]

The five factors[edit]

The mnemonic acronym OCEAN helps with remembering the five factors:

  • openness (O) measures creativity, curiosity, and willingness to entertain new ideas.
  • conscientiousness (C) measures self-control, diligence, and attention to detail.
  • extraversion (E) measures boldness, energy, and social interactivity.
  • agreeableness (A) measures kindness, helpfulness, and willingness to cooperate.
  • neuroticism (N) measures depression, irritability, and proneness to anxiety.

Infinite Worlds implementation[edit]

The implementation is straightforward. Add the five factors as skills in Infinite Worlds.

Basic implementation[edit]

In the World Editor click the Add skill-button [Edit World > Player character options > Skills > click Add skill] to add a new skill. Make sure you have five skills each named after one of the five separate factors.

Basic Big Five skills JSON[edit]

In the JSON the skills should look like this:

    "skills": [
        "Openness",
        "Conscientiousness",
        "Extraversion",
        "Agreeableness",
        "Neuroticism"
    ],
PRO TIP
A common mistake is to mess up the spelling of extraversion. ExtrAversion is spelled with an a (not be confused with extrOvert which is spelled with an o).

Quantization of continuous scale[edit]

In real life, each of the five factors is measured on a continuous scale[1] while in Infinite worlds we have to quantize the scale to integers from 0 (lowest) to 5 (highest). This is is not much of an issue in practice and finer granularity might just be overkill.

Avoid giving multiple player characters the same stats for their five factors. It helps to imagine what a character's personality should be like and then trying to match that with these stats.

Basic big Five skills with stats JSON[edit]

For a given character the JSON looks like (note how N and C get switched for some reason):

            "skills": {
                "Openness": 5,
                "Neuroticism": 0,
                "Extraversion": 5,
                "Agreeableness": 3,
                "Conscientiousness": 2
            },
PRO TIP
Make sure to keep track of the stats you're giving your characters so that you can re-use a personality that you liked or so that you can keep recurring characters' personalities consistent.

More elaborate implementation[edit]

Of course, you are not limited to only using these five skills if you want to implement other things as well. Expanding your player characters to have additional skills that are needed to implement game mechanics beyond personality can be done without issues.

More elaborate Big five skills JSON[edit]

A JSON file example of what that may look like:

    "skills": [
        "Player Openness",
        "Player Conscientiousness",
        "Player Extraversion",
        "Player Agreeableness",
        "Player Neuroticism",
        "Symbiote Shapeshifting Abilities",
        "Symbiote Weaponry",
        "Symbiote Tentacle Mastery",
        "Symbiote Durability",
        "Symbiote Regeneration",
        "Symbiote Strength Enhancement",
        "Symbiote Agility Enhancement",
        "Symbiote Web Shooting Ability",
        "Symbiote Flight Capabilities",
        "Symbiote Energy Blasts"
    ],

SummaryRequest implementation[edit]

To fully implement the five factors the storytelling AI needs to be informed as to how it should consider those five skills as added in the basic implementation.

New custom instructions have been added long after this implementation had been finalized. Namely the custom evaluation instructions. However, since this is meant to work as a soft system putting the following instructions into the custom summarisation instructions has proven to work.

Paste to Custom summarisation instructions[edit]

In the World Editor paste the text below into the Summarisation instructions text field:

<SKILLS>
Always consider my character skills which represent the five separate factors of my personality. These five separate factors are from the big five personality trait model found in psychology. For this use case those traits are measured on a scale from 0 to 5. A score of 0 is the minimum possible expression and a score of 5 is the maximum possible expression of a factor. Make sure to consider the five factors and my score for each of them in the big five personality trait model but only work them into your descriptions indirectly through reactions or observations within the narration.

My big five personality trait model factors are:
<PLAYER_PERSONALITY>
– Openness measures creativity, curiosity, and willingness to entertain new ideas. My openness score is <<skill_openness>>.
– Conscientiousness measures self-control, diligence, and attention to detail. My conscientiousness score is <<skill_conscientiousness>>.
– Extraversion measures boldness, energy, and social interactivity. My extraversion score is <<skill_extraversion>>.
– Agreeableness measures kindness, helpfulness, and willingness to cooperate. My agreeableness score is <<skill_agreeableness>>.
– Neuroticism measures depression, irritability, and moodiness. My neuroticism score is <<skill_neuroticism>>.
</PLAYER_PERSONALITY>
</SKILLS>

How to find aforementioned text field
[Edit World (make sure Show optional features is checked) > Specialist instructions (advanced feature, optional) > Summarisation instructions > check Use custom summarisation instructions > paste into the text field]
SummaryRequest JSON[edit]

In the JSON this looks as follows:

    "summaryRequest": "<SKILLS>\nAlways consider my character skills which represent the five separate factors of my personality. These five separate factors are from the big five personality trait model found in psychology. For this use case those traits are measured on a scale from 0 to 5. A score of 0 is the minimum possible expression and a score of 5 is the maximum possible expression of a factor. Make sure to consider the five factors and my score for each of them in the big five personality trait model but only work them into your descriptions indirectly through reactions or observations within the narration.\n\nMy big five personality trait model factors are:\n<PLAYER_PERSONALITY>\n– Openness measures creativity, curiosity, and willingness to entertain new ideas. My openness score is <<skill_openness>>.\n– Conscientiousness measures self-control, diligence, and attention to detail. My conscientiousness score is <<skill_conscientiousness>>.\n– Extraversion measures boldness, energy, and social interactivity. My extraversion score is <<skill_extraversion>>.\n– Agreeableness measures kindness, helpfulness, and willingness to cooperate. My agreeableness score is <<skill_agreeableness>>.\n– Neuroticism measures depression, irritability, and moodiness. My neuroticism score is <<skill_neuroticism>>.\n</PLAYER_PERSONALITY>\n</SKILLS>",

Of course, it's possible to put other things in the custom summarization instructions along with the provided text. In fact, the provided text can be pasted into the text field last after everything else.

Calling variables[edit]

Note how we are using the <<skill_[skill_name]>> to call the variable (aka tracked item) within the text of the instruction.

Using the stats from earlier the following line

– Openness measures creativity, curiosity, and willingness to entertain new ideas. My openness score is <<skill_openness>>.

will be filled in with the Openness stat of 5 and turns into

– Openness measures creativity, curiosity, and willingness to entertain new ideas. My openness score is 5.

NPC implementation[edit]

It seems that if you have a player character with the five factors in their skills and you also add them as an NPC in Other characters (optional) in the World Editor their respective NPC will inherit the player character's personality. It's not perfect. But generally speaking the storytelling AI isn't always 100% reliable when using NPCs and this is no exception.

Evaluation examples[edit]

The way the storytelling AI evaluates these skills (i.e. performs skill checks) shapes interpersonal interaction in a way that underscores the way different personalities play off one another instead of the otherwise seemingly random failures to do some basic tasks.

For better insight into these evaluations by the storytelling AI examples from the World debug tools are provided below.

Basic openness implementation[edit]

Opening up about personal motivations requires vulnerability and self-awareness. {Openness: Easy} SUCCESS
Katarina is accepting drinks from Florian and making a vulnerable admission of attraction to Mal while expressing practical concerns about lifestyle change - this requires emotional openness and social courage. {Openness: Easy}. Given Katarina's Competent Openness and her established rapport with Mal, this is a SUCCESS.

More elaborate openness implementation[edit]

Serena has exceptional symbiote abilities and exceptional forensic psychology knowledge - using Val's enhanced senses to detect psychological patterns is well within their merged capabilities. {Player Openness: Easy}. SUCCESS.
Serena is using psychological intimidation combined with the demonstrated threat of her phasing ability to break Voss's moral certainty - this requires manipulating Voss's fear and hypocrisy. {Player Openness: Medium} SUCCESS - Serena's exceptional openness to transgressive ideas and her forensic psychology training make her adept at identifying and exploiting psychological vulnerabilities.
The action involves making a ruthless moral assessment and consulting Katalin about whether Voss will reoffend - this is primarily a forensic psychology evaluation combined with a strategic conversation. {Player Openness: Easy}. Given Serena's exceptional skill in openness (forensic psychiatry background) and the straightforward nature of reading Voss's broken state, this is a SUCCESS.
Serena is requesting Katalin fetch Antonio and containment while using Val's merged consciousness to examine the captured symbiote's neural structure—both reasonable actions given her forensic background and unprecedented symbiote abilities. {Symbiote Tentacle Mastery: Medium} and {Player Openness: Easy}. SUCCESS.

Basic agreeableness implementation[edit]

Hank is being honest and forward with a compliment that's genuine but not overly smooth - this fits his character and the warm moment they're sharing. {Agreeableness: Easy}. SUCCESS.

Basic extraversion implementation[edit]

Complimenting someone's dress and asking about their work is straightforward social interaction that requires minimal skill. {Extraversion: Very easy} SUCCESS
Serena is using her exceptional extraversion and social intelligence to reassure Florian while teasing about the X-Change pills he mentioned earlier. {Player Extraversion: Easy}. SUCCESS.
This is a bold romantic/sexual proposition to Mal that requires confidence and social risk-taking. {Extraversion: Easy}. Given Katarina's modeling background, social adaptability, and Mal's clear attraction, this is a SUCCESS.

More elaborate extraversion implementation[edit]

Serena has exceptional extraversion and her symbiote has unlocked drug production, making charming explanation with subtle chemical assistance feasible. {Player Extraversion: Medium}. SUCCESS.
Serena is attempting to leverage Sophie's curiosity and desire for answers by proposing a sexual condition—this is manipulative but aligns with her transgressive psychology and high extraversion. {Player Extraversion: Medium} - SUCCESS. Sophie is attracted to Serena and desperate for answers, making her vulnerable to this proposition.

Multiple personality skills[edit]

Serena is making a moral justification statement to Katalin about her willingness to kill Voss, emphasizing protection of loved ones over a serial killer's life. This is primarily a social/persuasive action requiring Extraversion and low Agreeableness to deliver cold pragmatism convincingly. {Player Extraversion: Easy, Player Agreeableness: Medium}. Given Serena's Exceptional Extraversion and Highly skilled Agreeableness, she can easily articulate this position, though Katalin's response will depend on her own moral framework. SUCCESS - Serena articulates her position clearly and persuasively.

No personality skills[edit]

Approaching someone standing alone at a party is a straightforward social interaction requiring basic social skills. SUCCESS.
Serena is explaining her psychological perspective on human sexuality and transgression to Val - this is intellectual introspection combined with openness about taboo subjects, which fits her character perfectly. SUCCESS.
Serena's transformation into full symbiote form relies on her Symbiote Shapeshifting Abilities, which are Exceptional - this is a trivial action for her. SUCCESS.

References[edit]