The Sims is a digital dollhouse, filled with little computer people.
And it's your job to keep them alive, keep them happy,
and keep their house furnished with ever more expensive trinkets.
But micromanaging the needs and desires of an entire family can get pretty tedious.
So the developers at Maxis soon realised that
they'd need to give these guys a certain amount of autonomy.
Free will.
The power to think for themselves, if the player stops giving direct commands.
Which is actually...
a pretty complicated task! These characters need to read as believable humans.
And they need to be able to adapt to any possible house you build around them,
or any social situation they find themselves in.
And - crucially - they can't be so smart that the player can just sit back and do nothing.
So how do you make a video game AI that can do all of that?
Well, that's what I want to explore in this video.
I'm going to break down the clever ways that Maxis designed autonomy in this four-game franchise -
though with a focus on the original game,
and - let's be honest - the best one, which is The Sims 3.
It's not going to get too technical,
but there is a metric buttload of resources in the description if you want to dive deeper.
With that out of the way, I'm Mark Brown,
this is Game Maker's Toolkit, and here's how The Sims... think.
Okay - decision making in The Sims is all driven by a set of mental
and physical needs - dubbed "motives", by Maxis.
In The Sims 1 that's hunger, hygiene, fun, energy,
bladder, social, comfort, and room, or tidiness.
They all go from negative 100 to positive 100,
and if you combine them all, you get the Sim's overall level of happiness.
These meters are constantly ticking down - each decaying at slightly different rates,
and faster if the Sim is performing a related action.
The bladder meter drops more quickly when the Sim is eating, for instance.
Maxis carefully tuned all of these rates to hopefully match a normal
human schedule - like needing eight hours of sleep, and three meals a day.
So. If the player doesn't give the Sim a command, it will decide what to do by
itself - and that decision is driven by a desire to fulfil these motives.
Now you might assume that a Sim knows how to meet its own needs:
that a toilet will solve bladder, that fridges and stoves solve hunger,
and books, TVs, and pinball tables solve fun.
But it doesn't work like that - it's actually, the other way around.
Instead, all of the objects in the Sim's house contain this data,
and will broadcast what they can offer.
A bed will say "sleep on me to get 10 energy",
a toilet offers plus 20 to bladder if you use it, or plus 5 to room if you clean it.
And other Sims will offer themselves as a way to top up social points.
Maxis calls these "advertisements".
So. Whenever the Sim decides what to do,
it quickly makes a list of every object in the house - and what they can offer.
The Sim can then take that advertised number and weigh it based on its current needs.
It does this by applying a multiplier to the promised score,
based on the Sim's current motive levels.
For example, if the Sim is well-rested, the bed's energy-boosting score is damped
down - but if the Sim is knackered, then that same score is boosted dramatically.
Now, the Sim can take the list of interactions, and their weighted scores, and rank them.
At the top of the list is the interaction that will give the most benefit to the Sim right now...
and so the digital dude should do just that.
This clever system was actually inspired by one of designer Will Wright's previous games: SimAnt -
a virtual ant colony where the critters would be tempted to move by attractive pheromones.
It's basically the same idea - but instead of pheromones,
its TVs, fridges, pinball machines, and bath tubs.
However - people aren't ants.
And so if this was implemented exactly as I just described,
it would lead to weird behaviours that make Sims seem either robotic or irrational.
So, many careful tweaks are needed to make it work properly.
For instance, not all needs are equal.
If a Sim is both starving to death and utterly bored,
they should probably eat a sandwich rather than binge Netflix.
But if the fridge and TV are both offering the same reward...
which should The Sim pick?
Well, more rational behaviour can be achieved by defining unique curves for each motive.
For hunger, we want a curve like this: now, the fridge's score will be reduced
to almost zero when the Sim is full, but will be extremely high when the Sim is starving -
making that more important than any other motive.
Similar, smaller curves are used for the other physiological needs like bladder,
hygiene, and energy.
However, less important needs like fun, social,
and comfort actually increase as the Sim becomes more happy.
This was inspired by Maslow's hierarchy of needs, which says humans will focus
on cognitive and social tasks only when their more basic lizard-brain needs are met.
Plus - while peeing will satiate your bladder, you can never have too much fun.
We can also weigh the scores based on other factors, too.
For instance, each Sim has its own personality - based on their score
in areas like niceness, neatness, and playfulness.
So while a pinball machine and a bookcase might advertise the same boost to fun,
a Sim will weigh this based on their level of playfulness.
Therefore, a more serious Sim will choose to pick up a book.
Plus, we can weigh the interaction based on its
distance from the Sim - which will make nearby objects more tempting.
Finally, some interactions can override everything - like a telephone call or a school bus.
And other interactions can be locked entirely - so,
certain objects won't advertise themselves to kids, or adults, or a visiting guest.
All of these factors combined give us a much more useful score,
which has been adjusted to the different needs, personality, and proximity of the Sim.
And it's from these scores that the Sim's next move is picked.
But - perhaps most importantly of all - the
Sim doesn't actually choose the best option every time.
Instead - the Sim picks one of the top scoring interactions... at random.
This stops the Sims from feeling robotic and overly predictable,
and it also means they're not able to fulfil all their needs perfectly.
Which, you know, actually gives the player something to do.
What I've just described is a special type of AI called utility AI, or needs-based AI.
This is a system where a character has a predefined set of needs,
then looks around at its current options, and picks the one that will fulfil its needs best -
the one with the most utility.
And in The Sims, it means a little person can be
dropped into any house and will then act in a lifelike manner:
carefully attending to its hunger and energy when necessary,
but socialising and having fun when not.
Plus, by putting the information on the objects, instead of the Sim,
it's really easy for Maxis to add hundreds of objects to the game -
or make endless expansion packs - without touching the rest of the code.
And so for these reasons, this basic system has been used in all four games in the franchise.
But, Maxis wanted to take things even further when making the ambitious third game in the series.
Okay, so, in The Sims 1, we saw how each Sim's personality - like their
neatness and playfulness - would impact their decision making.
This would make each Sim feel somewhat distinct.
But for The Sims 3 this idea was expanded dramatically by
swapping the personality meters with traits.
Things like neat, neurotic, heavy sleeper, and commitment issues.
With five trait slots, and 60-odd traits in the base game alone,
that's about 5 million possible Sims - effectively making every character unique.
Now these traits have many impacts on the Sim - like, how a clumsy Sim will
trip themselves up while walking, and a slob will fart and burp while idle.
Sims also get bonus moodlets for acting to their traits - and
there are certain interactions that are exclusive to Sims with certain traits:
like how a computer whizz can make cash through hacking.
But these traits also impact on the Sim's decision making.
This time, however, instead of weighing the scores against the Sim's personality,
the Sims 3 actually just adds more motives to the pile.
So, in the code, every Sim has their usual basic needs, like hunger, energy,
and bladder - but also five more motives related to their traits.
Therefore a couch potato needs to sit on the sofa and watch TV,
just like how they need to pee, eat, and sleep.
And then, in the same way that a fridge advertises itself as a fix for hunger,
objects can advertise themselves as a fix for the Sim's trait-related motives.
For instance, interactions like scare a Sim, steal candy from a child, smash a dollhouse,
and write a trolling comment on the computer are all advertised to Sims with the evil trait.
This means that Sims are encouraged to enact their unique personalities
autonomously - while also juggling their standard, everyday needs.
Now this idea - of adding additional motives to
a Sim - can also be used to simulate social situations.
For instance, if a Sim enters a gym they will temporarily be given the additional
motive "be in gym" - which is satisfied by objects like a workout bench or treadmill.
When they leave, the motive is removed.
Back at home, a Sim will be motivated to act as
a hospitable host for as long as they have guests around -
meanwhile, the guests will be motivated to act in an way that's socially acceptable.
And in The Sims Medieval, a Sim is given work-related motives
while they're on the clock, and then loses them during breaks.
However: these motives can also be affected by traits.
For example, if a Sim sits down to have a picnic,
then the Sim's friends and family are motivated to join them - while strangers are discouraged.
But a Sim with the "inappropriate" trait will override this - and
they will in fact be motivated to sit with people they don't know.
Just to make them feel uncomfortable.
All of this means that Sims will act naturally and believably in whatever location they end up in -
but with a few Sims standing out as acting unusually, because of their unique personality.
And this is all done by simply tweaking the Sim's
motivations - rather than hand-scripting a bunch of specific rules and interactions.
Though, that being said, sometimes you do need more hard-coded rules.
Take that house visit I mentioned.
A visiting sim is indeed motivated to act in an appropriate way.
But what happens if they stay for too long? Or if
the player steps in and makes the Sim act inappropriately?
Well, to make this work,
the house visit is overseen by a set of rules that dictate social norms.
So if a Sim sleeps in the host's bed or uses their computer, the ruleset
will instruct the host to warn the Sim, and then kick them out if they go even further.
Likewise, conversations need more hands-on authoring to
reflect extremely specific pair-ups of people, or super distinct social cues.
For example, how should a Sim respond to a joke if they are steaming mad at the
joke teller? Or if the other Sim has said the same joke 5 times in a row?
This is done through a series of rules - with an input, a set of conditions, and the output.
So for that joke I just mentioned...
if the listener has the 'good sense of humour' trait, they'll laugh.
If their long-term relationship is sour, they'll be insulted.
And if the Sim repeatedly tells jokes, the listener will be bored.
These so-called "production rules" are ranked in order of specificity, as defined by the designer,
and the top-scoring outcome is used to pick the response.
Maxis ended up writing 1000s of hand-crafted rules
to determine the outcome of 100s of possible conversation topics.
But, because the rules just go in a big stack and the most specific one is picked,
they can't clash, break the game, cause an infinite loop, or lead to any other issue.
Just like with the objects, designers can simply keep adding more and more to the pile.
So far, I've been talking about individual Sims,
or small social situations like a conversation or a party.
But what about simulating an entire town's worth of little people?
You see, in The Sims 3, your house exists in an open world neighbourhood
with dozens of other Sims, and features homes, restaurants, a park, and so on.
Maxis needed to invent new tools to make all of this work - but, in truth,
the neighbourhood actually operates in a similar way to the Sims themselves.
That's because the town also has a bunch of motives,
and will make choices that will help it fulfil its needs.
For instance - it ideally wants to maintain a 50/50 gender balance.
So when a new Sim is added to the neighbourhood,
the probability of it being male or female is weighted by the current needs of the city.
It also has a desired employment rate of about 80% - so it can force
background Sims to get hired or fired as seen fit.
Basically - once a day, at midnight, the town will check its own happiness level,
and take a few actions in order to satisfy its needs.
The individual lots have motives too - for instance,
the restaurant may wish to have roughly 8 people eating outside, during lunch and dinner hours.
To achieve this, the lot will temporarily give
the "eat outside" motive to a bunch of Sims to tempt them to the restaurant.
It can even narrow the focus to Sims with certain traits - like
culinary - and discourage those with other traits - like frugal.
Now, these Sims that appear at the restaurant seem like fully autonomous characters.
They have needs, they have families,
they may even have had a baby and changed job since you last saw them.
So are they are actually living out their own little simulated lives, just off camera?
Well, not quite.
The background Sims are actually simulated at a very low level of detail.
Each day, the system looks at each Sim,
and scores possible big life changes that could happen to them -
like getting a job, falling in love with someone, or getting married.
These are, of course, weighted using things like traits, existing relationships, and career paths.
Also, the designers created charts for what a Sim's needs
will likely look like throughout the day.
If it's just after lunch, for instance, they're probably not going to be very hungry.
And so when a background Sim is promoted into being a foreground Sim,
because they're in proximity to the player,
the system checks the time of day and snaps all their motives to the chart.
Clever stuff.
So we've got tools to simulate characters,
conversations, house visits, restaurants and entire towns.
And when you have such clever tech, it's tempting to simulate, well, everything.
Take, for instance, the urinal rule.
If you pee while standing up, you know the deal: when picking a place to take a leak,
you should always try to maintain a one urinal buffer from other people.
It's like an unwritten social rule.
So Maxis added this rule to the game, as well...
but, before the game launched, they took it out.
That's because when the Sim followed that rule it was just kind of predictable and dull.
But if Sims picked toilets at random, it would
often lead to funny and memorable moments of Sims acting awkwardly.
You see, while The Sims might have started life as a rather
nerdy simulation game - essentially SimCity, but at a much smaller scale -
it quickly grew into something very different.
In playtests for the original game, Will Wright was surprised
that players would tell elaborate stories about their Sim families -
embellishing details, reading into their decisions, and playing up random moments.
"It was fascinating to me how readily people would build a story around this," Wright says.
To support this, Maxis added a last-minute feature to the game:
the ability to take a screenshot, write a caption,
and create a simple comic book which could be uploaded to EA's website with a click.
The feature was extremely popular, proving that for many people...
The Sims was an avenue for storytelling.
And that's still true today - just search YouTube for The Sims to see what I mean.
But supporting storytelling is a delicate balance: the game needs to be specific enough
to create stories, but not so specific that there's no room for the player's imagination.
So the final piece of this AI puzzle...
is knowing when to hold back.
Knowing what NOT to simulate.
Knowing when to make urinal choice random, rather than scripted.
One way to do this is to carefully employ ambiguity.
Basically, to leave some things unsaid,
so players can make assumptions, and project their own head-canon on the events on screen.
A good example of this is the Sim's iconic babbling dialect, known as Simlish.
In early design documents we can see that Maxis experimented with having
the Sims speak real world languages like English, Navajo, Estonian, and Ukranian -
but due to technical and logistical reasons,
they ended up hiring two improv comics to just make up absolute nonsense.
Sim: Droba droba droba. Seeka neeba huh.
But this actually works wonders - when the Sims babble gobbledygook at each other,
the player can assume, fill in gaps,
project their own imagination on the Sims, and make the game their own.
"If we used actual language, the game would flatten and shrink, and everyone
would be having the same experience", says EA's Matt Brown - no relation.
Ambiguity can also make Sims feels smarter than
they actually are, and hide cases where the simulation is doing something wrong.
Another avenue is to always follow the player's lead - and never use
autonomy to go against the story the player is trying to tell.
That's why Sims will use free will to relieve their bladder and fill their stomach,
but won't autonomously quit their job or try romancing a random Sim.
Just like with the Nemesis System in Shadow of War,
Maxis took inspiration from the concept "yes, and", from improvisational comedy -
so the Sims try to build on the player's actions, and try not to negate them.
For instance, if a player makes two Sims fall in love - the autonomous
system shouldn't make them break up again.
Likewise, user-created Sims enter the world with no sexual preference.
But if you instruct a male Sim to, say, flirt with other dudes,
you're suggesting that he should be bi or gay and the game will run with that.
The game should always try to maintain the consistency of the player's story.
So, The Sims has a fascinating AI system - which allows for realistic human simulations,
and creative player-led storytelling.
And most of it is driven by a very simple concept.
Characters, locations, and entire neighbourhoods are given a bunch of
needs - and then try to make choices that will best fulfil those needs.
With a little clever tuning, this leads to characters who feel believable, social situations
where Sims act appropriately, and entire neighbourhoods that stay consistent and balanced.
But this is not just useful for running quirky goal-free life
simulations - and we can see utility AI being used in other types of games, too.
For instance, in XCOM, an enemy unit will consider every tile it can move to and score them based on
factors like distance, flanking opportunities, angle, cover bonus, visibility, and proximity -
before moving to the tile with the best score.
It can also be used in procedural generation, to build worlds that fit predetermined requirements.
Utility AI is a fantastic addition to a game maker's toolkit, and its
implementation in The Sims should serve as wonderful inspiration to game designers.
And now, just to melt your brain, here's Katy Perry singing in Simlish.
Katy Perry: [Absolute nonsense]
Katy Perry: [Just complete gobbledegook]
Katy Perry: [I think I'm having a stroke]