Personalities, memories, rumors, and autonomous decisions: how do you bring life sim characters to life?
Hi folks!
After VirtualCity's first steps and our introduction to Helena Richards, it's time to share our life simulation roadmap: personalities, memories, relationships, and autonomous decisions.
Today, we'll go into a few things we've been working on recently to give you a clearer idea of our vision for the simulation. During our PhDs, we worked in quite a few fields that have inspired all sorts of aspects of our life sim, and our approach differs quite a bit from The Sims, inZOI, Paralives, Vivaland, and Life by You in many areas.
To help illustrate all this, and avoid losing you (too much), this week we'll use an evening with friends as our example, following Helena and her new group of friends. You might remember us bringing her to life in episode #2 of our Creating VirtualCity series!
Places, residents, and stories
VirtualSociety's tagline is "Build Living Worlds". In the video "Is VirtualSociety a life sim?", I talked about my love of Westworld as a way to illustrate what we want to do with VirtualSociety, so let's try to make that a little clearer. For me, life simulation should let you play with different levels of control: sometimes planning every detail of the story, the characters, families, neighborhoods, and so on; sometimes letting them develop on their own and allowing the world to surprise us (something I loved in The Sims 3: the unexpected situations the game would create). Characters might break up, get back together, grow, change... And we should be able to take control again, or even play as just one of those characters in third person for a while, to live in the world we've created. That's the heart of VirtualSociety, and today I'll go into a few of our thoughts on all this!
A personality that shapes decisions
Jimmy and I imagined Helena lowering her glasses when she speaks to someone, as if to say, "What I'm about to say is important." A little signature gesture that makes her recognizable. Giving characters "signature gestures" is an idea we really like, and we're actively working on making it both easy to set up in the character editor and natural in the game (avoiding animations playing at the wrong moment, for example).
We recently spoke with Vanessa Street, who also suggested adding contextual animations based on culture. For example, different greeting animations: handshakes, waves, fist bumps, bows... We love the idea. It would be a great way to make characters more distinct and representative of different people, while better reflecting different cultural habits (we'll come back to this once we have a little more to show!).
But Helena's personality should also influence her choices, not just her animations.

HEXACO: six dimensions, plenty of nuance
As you saw in the trailer, our personality editor draws on HEXACO, among other things, to organize some of these differences. Developed by Kibeom Lee and Michael Ashton, this personality model distinguishes six dimensions, each made up of several facets. [1]

Editing Léo's personality (don't pay too much attention to his pose in this picture... :D)
| Dimension | Some facets |
|---|---|
| Honesty-Humility | Sincerity, fairness, modesty, attitudes toward material gain. |
| Emotionality | Apprehension, anxiety, need for support, emotional attachment. |
| EXtraversion | Social self-confidence, boldness, sociability, liveliness. |
| Agreeableness | Forgiveness, patience, gentleness, willingness to compromise. |
| Conscientiousness | Organization, diligence, perfectionism, prudence. |
| Openness to Experience | Curiosity, creativity, aesthetic appreciation, interest in the unusual. |
The model also includes an altruism scale that cuts across these dimensions. These six parameters are broken down into facets so that, as with everything else in the game, you can make quick, easy edits or go into more detail and nuance. Once a personality is defined, these parameters (along with the rest of the character's information, some of which we'll cover below) will influence every aspect of the character.

The same wallet, three decisions
Defining how each parameter affects every layer of the game will obviously take a huge amount of time, along with a lot of testing and tweaking. Let's take altruism as an example: someone drops a wallet near the table. One character might catch up with its owner, another might hand it in at the counter, and a third might keep it. Altruism will come into play, of course, but so will the context: do they know the owner? Are they in a hurry? Is anyone watching?
Their personality should create tendencies, but not the same reaction every time. We distinguish personality, preferences, skills, and values: liking the guitar doesn't mean knowing how to play it, and caring about your friends doesn't necessarily mean feeling comfortable in front of a group, for example.
Needs and emotions: everyone has their own comfort zone
An hour into dinner, Léo wants to keep the evening going, but Helena would like to head home. Tom would rather keep chatting, but somewhere quieter.

We represent these differences through dynamic states: hunger, fatigue, stress, stimulation, social needs, belonging, recognition... Each state can have a comfort zone and an urgency zone, and evolve over time depending on the character and the context. The same evening could be stimulating for one person and exhausting for another, without the second person liking their friends any less. Their fatigue, preferences, and experiences earlier that day matter too.

An introverted person's social need meter might fill up much faster, and their comfort zone could sit in a completely different range. So even with the meter at the same level, the effect on how they feel could be very different. Characters' neurodivergent traits will also have a significant impact on things like this, drawing on ideas such as spoon theory, for example.

Anticipating needs rather than reacting to them
A character might eat before getting very hungry because they have an appointment coming up. Conversely, finishing their meal should reduce their urge to eat, rather than make them immediately cook something else. So we're working on anticipation, saturation, and the consequences of ignoring needs. Emotions and memories also play different roles: anger can fade without erasing the event that caused it. But first, we need to know what each person believes they experienced... (This is where things get quite complex technically, but luckily, we spent a long time working on this in our research!)
Partial knowledge, different interpretations
The game knows exactly where objects are placed and what is happening in the world. A resident, though, should only know what they have perceived, learned, or deduced. A conversation on the other side of town doesn't instantly become common knowledge.
An entire field of computer science is devoted to knowledge, using what we call knowledge bases (as opposed to "databases", which store data, not knowledge). Our knowledge base needs to distinguish between facts about the world, a character's beliefs, and what they don't know. Not knowing whether someone likes guitar isn't the same as knowing they don't.

A little excerpt from my 2017 computer science classes on knowledge representation, to give you an idea of the field
I won't give you a long computer science lecture, but the idea is this: a knowledge base adds meaning to a database by "labeling" relationships and types of information so we can infer (deduce) new information from existing knowledge. For example, "animal --> is mortal" and "a cat --> is an --> animal" allow us to deduce "a cat --> is mortal". It's a complex field, because if we get it wrong, inferences can lead to completely absurd conclusions.
This is one of the things we study in computer science and research, along with ways of representing more "fuzzy" data. To give you a few examples: when is someone young or old? How big does a tartlet have to be before it becomes a tart? It's not that simple, and we can't really set a strict cutoff. So we represent certain concepts using functions with decimal values to define things like "a little": the fuzzy area between someone young and someone "a little less young", for example.

Another example from my old classes (with a quick new illustration) to help explain the concept of fuzzy knowledge.
A map of what everyone knows
After that little "classroom refresher", let's get back to the subject. Each resident needs their own knowledge base, where, among other things, we'll represent their information through links between people, objects, and places: [4]

Each piece of information could retain its source and the level of confidence the character places in it. “I saw it” doesn't come from the same source as “Léo told me about it”.
This distinction leaves room for mistakes: Helena asks questions about guitar, and Léo takes that as romantic interest. His belief can influence his behavior without reflecting how Helena actually feels.
How a conversation becomes a rumor
Léo tells a friend: “We talked all evening. I think she likes me.” What the friend remembers is: “Léo and Helena are getting closer.” Then someone asks Helena how her date went.
Her what???

This will let us explore how information spreads, gets distorted, and is tested against new observations. Who tells what to whom, and how confident are they? Someone who wasn't there will need to learn about an event before they can react to it. The same system could be used to recommend a restaurant, pass on someone's preference, or let someone know about a change. Knowing what a friend likes can also help you do something nice for them.
All of this will gradually bring us closer to a whole bunch of other research fields Jimmy and I took quite an interest in during our other lives as researchers, particularly Complex Adaptive Systems and Multi-Agent Systems. But this article would be ridiculously long if I started getting into all that, so we'll save it for another time :P
Relationships and memories: liking someone isn't the same as trusting them
We distinguish between several dimensions of relationships: friendship, love, attraction, admiration, jealousy, and trust. Each is experienced from the character's perspective: Léo can feel very close to Helena without her feeling the same way (though that's nothing particularly new for life sims :) ). These differences should influence their decisions. After finding out about the rumor, Helena might still joke around with Léo, but hesitate to tell him something personal. She still likes him; her trust has changed.
Three jokes shouldn't fix everything
Memories give relationships continuity. A few positive interactions shouldn't automatically erase a major disappointment. Rebuilding trust could take an explanation, time, or new experiences. This memory also needs to hold on to the good moments: a favor, a warm welcome, some support. Someone might choose to help you because they remember what you did for them.
We want consequences that show up in invitations, confidences, and thoughtful gestures, not just in a friendship bar. That said, as you can imagine, balancing all of this will take a lot of time, even once the whole system is developed. A concrete example: how do we balance the "fading" of memories over time (their diminishing influence on states and decisions)? We need to tune how the intensity of an experience affects a character's behavior, both in general and toward the people, places, and objects linked to that memory.
Habits and familiar places
A favorite spot, a usual route, the keys on the entryway table: these familiar details are part of a character's knowledge too. If someone moves the keys, the character might first look in their usual place, then update their information when they find them or ask for help. We also distinguish between things that are owned, shared, assigned, or simply preferred. A favorite spot isn't a reserved spot; knowing where an object is doesn't give you permission to use it. Here too, characters' personalities will strongly influence their tolerance for change (with situations like "someone took my favorite spot at the gym or the bar").
Objects, clothes, and places also carry information about their uses. An outfit can be suitable for work without being appropriate for every activity. Our RealCorp accountant, for example, keeps her suit on after work but swaps her heels for sneakers to head to the skatepark. And these habits can extend beyond the individual.
Helena and the bar: one experience changes a whole group
Imagine Helena and her friends continuing their evening at a bar. When they arrive, they find steps and no way in that she can use with her wheelchair. Helena suggests somewhere else, and the group follows her. On their next night out, they might go straight to the second bar. An individual experience becomes shared knowledge, then a collective habit.

Families, households, friends, clubs, businesses: groups have their members, roles, resources, goals, and rules. Making a collective decision means taking several preferences and commitments into account. Here, the friends want to stay together; elsewhere, there may be disagreements or compromises.
What if you made the first bar accessible?
You change the entrance, widen the passageways, and rearrange the space. When the group learns about these changes, they could reconsider their choice. Not before: renovations don't magically update the whole town's knowledge.
Building no longer just changes how a place looks: it can change who spends time there and how they experience it. That's the connection we want to create between our tools and the life simulation. You might now have a slightly better sense of the idea of "taking control, letting go and watching, then taking control again" that I tried to illustrate in the life sim video and mentioned again at the start of this article. We want a world that evolves in response to our actions, like a staircase or a ramp changing the habits of an entire group of people.
How do characters choose what to do next?
A character is hungry, wants to stay with their friends, is short on money, and has work early tomorrow. How do they weigh all that up? Jimmy and I have a background in computer science research, and these questions have led us to look into BDI architectures and utility-based action selection, among other approaches. This is one area I didn't spend much time studying five to ten years ago, and it's something we're really interested in at the moment.
Beliefs, desires, and intentions
BDI stands for Beliefs, Desires, Intentions: what an agent believes, what they want, and what they commit to pursuing. [2]
On our night out, a character knows the bar isn’t accessible to Helena, wants to stay with the whole group, then decides to suggest another place. This is how we distinguish between needs, goals, the intentions a character has committed to and the actions needed to carry them out.
The barista was already going about her day before you arrived
You arrive with the RealCorp manager’s order. The barista is already making a drink and would like to take a break. She could finish her current order, interrupt it, or serve you after her break, depending on her fatigue, her commitments, and the context. Giving a character a life also means letting them have something going on when you meet them (and today, we have all sorts of technical tools to simulate this kind of world, with all sorts of information changing at the same time, even for characters we can't see).
Comparing the options
Utility AI assigns scores to actions based on different criteria. [3] Our working formula sums up the factors to combine:
Value of an action = feasibility × expected benefits − costs and drawbacks.
Benefits can include satisfying a need, making progress toward a goal, keeping to a schedule, a preference, a value, a social effect, novelty, or a scenario priority. Costs include time, distance, money, risk, social consequences, repetition, and abandoning the current intention. Impossible actions are ruled out, and a configurable hierarchy then lets us distinguish between emergencies / player commands / scenario directives / commitments / intentions and routines.
Finishing what you started
A slight change in score shouldn’t cause a character to keep changing their mind. We want intentions to have some staying power: finishing a drink that’s almost ready can make more sense than abandoning it for a new request. An emergency, on the other hand, can justify an interruption. [3]
That choice also needs to make sense to the player. “Let me finish this and I’ll be right with you” tells you more than a character silently ignoring your request (if you play life sims, you've definitely seen what happens when this kind of system doesn't work that well, with actions getting interrupted for no sensible reason...).
Direct, guide, or observe
God Mode should let you choose which decisions you make for the characters:
| Your control | The instruction | The character’s freedom |
|---|---|---|
| Direct | “Sit on this chair.” | Carry out the specific action, if it’s possible. |
| Guide | “Find a place to eat.” | Choose a spot, perhaps next to a friend. |
| Observe | No instruction. | Choose their own activity. |
A specific command shouldn’t turn into a suggestion without you knowing. A general goal, though, leaves room for personality and relationships. We also distinguish between suggesting an action, forbidding it, changing a role or context, and returning to autonomy. You could take control of a character, change the course of their evening, then let them get on with their life. With the consequences of your actions.
I think this is really at the heart of what makes VirtualSociety different as a life sim: we want a flexible level of control, from observing to directing/scripting, with suggestion in between (head in this direction, rather than "do this"). We can't wait to show you much more concrete examples in the game!
Scripting and modding: create your own ways of life
Our dialogue and interaction tools, along with our mod system, should also let you customize the simulation: add a behavior to an object, define a rule for a location, or create a need. A robot might need to recharge; a fantasy world might use a different resource. That need should then influence the character’s decisions and the interactions they seek out.
You won’t have to build everything yourself to play. VirtualCity will have its residents, places, and stories. The tools will let you change them, expand on them, or invent your own worlds (our lore was written so that different worlds, whether medieval, futuristic, or something else, can fit together coherently. We'll create a starting point in several different styles, then let modders and players expand on our ideas wherever they'd like more, while we keep fleshing out the base worlds).
That’s also what appealed to us about Westworld: being able to step into a world’s stories, not just watch them. And the portals in our lore open up other possibilities... but let’s get this night out working before we let another dimension crash the party ;)
The roadmap: connecting the systems, step by step
We want to build on small, testable situations, revisiting the same residents from one episode to the next:
- First, individual decisions: connect states, personality, and intentions; choose an activity, stick with it, and adapt to changes.
- Then, social interactions: bring in relationships, memories, and shared information, with visible consequences for the decisions that follow.
- Next, habits around town: expand to groups, routines, and locations, then observe how the player’s builds influence daily life.
Control, animations, and creation tools will support each stage. The next articles and videos will show our tests, the alternatives we compare, and the behaviors we need to rethink (and we'll do more like this one too if you enjoy it, because today we've only skimmed a small part of the many, many systems that make a life sim work, at least the kind of life sim we've been dreaming of making for 20 years :D).
And now, let’s let them surprise us
After Helena, more residents are waiting in our notebooks. We’ll keep building their places, their relationships, and their days, before discovering what’s hiding behind RealCorp’s slightly too reassuring facades.
To follow their first steps, subscribe to our channel and join us on Patreon, even as a free member. Your support lets us spend more time developing the life sim side and sharing a look behind the scenes. You can also add VirtualSociety to your Steam wishlist.
What little behavior would give you the strongest sense that a character really has a life of their own?
Thanks for following along, and see you very soon!
Further reading
- Kibeom Lee and Michael C. Ashton — The HEXACO Personality Inventory–Revised: dimensions and facets .
- Anand S. Rao and Michael P. Georgeff — BDI Agents: From Theory to Practice, 1995 (PDF) .
- David “Rez” Graham — An Introduction to Utility Theory, Game AI Pro (PDF) .
- W3C — RDF 1.1 Primer: representing information as graphs .

JuDePom and Okiles like this post
No comment yet