← All posts

Everyone in town has a life now

Three weeks ago we published a hundred days of our city running on its own, and it was a thin life. People ate, paid rent, got sick, died, gossiped. They did not want anything. Then we measured why, and the answer was embarrassing: the whole game was written for the player. Of the 2,009 actions in the mods, people in the town could live 319. Of 5,095 scenes, 1,649. A person in the simulation had a job, a wallet and theft, and that was their entire range of means. Nobody ever changed jobs, nobody moved house unless evicted, nobody looked for a promotion, nobody fell for anybody, and after the age of 18 nobody changed at all.

The player was not even a person. They had no drives, no memory, no illness, their personality was flattened to 0.5 on every facet, and the town's opinion of them lived in one special stat that no two townspeople could hold about each other.

Claire's sheet on the map: housed, quit her medical career, why: it is in her habits, ambition: be someone people look up to, step 1 of 2

So we turned it around. Thirteen steps, four days, every step measured by a long run before the next one started. This post is the result: two hundred-day runs, one with a hundred people simulated event by event, one with a counted town of 671 adults and children living mostly in the background. Every number below comes out of those two reports.

Before · 100 people, 90 days

Actions people could live 319 / 2,009

Goals reached 78 / 1,142

Ambitions none

Affairs, marriages between townspeople 0, 0

Reasons given for a choice 0

Time per game day ≈ 10 s

After · 100 people, 100 days

Actions people can live 1,605 / 2,012 (scenes 4,364 / 4,909)

Goals reached 302 / 1,261

Ambitions achieved 37 (293 steps crossed)

Affairs, marriages 17, 4 (26 couples formed)

Choices with a reason 848,053 / 848,053

A town of 671, per game day 6 s

The player is one person among the others

The first thing we did was the least visible. The player is now a known person of the town like any other: same record, same agent in the simulation, same drives and goals (shown as wants, never acted on without you), same midnight, same income and rent, same illness. A single pointer says which person the human controls, and switching bodies moves the pointer, not the data. Mortality is a character-creator option: Normal (you fall ill and age, the simulation never kills you) or Hardcore (old age, illness, hunger and overdoses apply to you as to anyone, and an heir takes over).

Opinion is symmetric. "What this person thinks of the player" became "what this person thinks of that person", a pair value anyone can hold about anyone, and the 2,286 places in the content that read the old stat did not have to change a line: the stat is read from the point of view of whoever is asking. On top of it, memories feed six dimensions per pair (trust, respect, fear, grudge, debt, attraction), decay with half-lives, and the written rapport and the derived one agree within 10 points on 99 % of the pairs in the big town.

Actions carry their actor. An action that used to mean "the player does this to the clicked person" now means "A does this to B", and A can be anyone. Scenes run in one sandboxed runtime whether the player is in them or not; when a townsperson walks up to you with a scene of their own, it opens on screen, your choices go through the UI, and if the world changed under it while you were reading, the moment has passed and nothing is applied. Before the rework 233 of the 5,023 scenes could finish in that runtime. Now 5,023 do.

What people want

Every adult draws one or two ambitions at their first midnight, from a catalogue of 58 in 13 groups (fortune, status, fame, mastery, love and family, belonging, freedom, safety, pleasure, meaning, revenge and control, care, survival). The draw is weighted by their facets: a vindictive, envious person is more likely to draw bring down the one who has what should have been mine; a careful one, put enough aside never to worry again. Each ambition is a ladder of steps with a condition the world can read (married for 1,825 days, karma above 75, a crew of at least one, 15,000 in savings), a window, and a failure budget.

The how comes from means: a job application when the step needs a better salary, a promotion sought when it needs a rank, a lease signed when it needs a nicer place, a business opened, a partner looked for among the people actually present, a marriage after 180 days together and mutual trust. A small planner picks the first unmet condition and the means that advances it, and puts that step at the head of the person's goals so the ordinary decision loop pursues it.

Ambitions, 100 people, 100 days
0 50 100 150 200 250 300 day 0 day 20 day 40 day 60 day 80 day 100 Steps crossed Achieved Abandoned

Steps and ambitions across the whole town (every adult is simulated, not only the hundred we follow). Abandonments come from windows closing and from turning points.

Over a hundred days, 73 % of the steps held for at least a month moved forward, 17 of the 143 ambitions ever held were achieved, 96 people found a job, 45 changed jobs, 5 opened a business. The honest side of the same report is the list of steps nobody got through: get a first one to follow me (a crew needs someone who both fears and trusts you), save 15,000 to start a business (people had 1,235), take a child in (nothing in the content lets a townsperson adopt yet).

Nobody starts from zero any more either. On first enrolment an adult gets a career rank for the years since they were twenty, savings in months of salary by age and frugality, skills from their facets, one to five friends, and for a few of them a little fame.

Love, with a face

This is the part I wanted in one sentence: people should sleep together, cheat, and some loves should stay platonic. Before, attraction between two townspeople came from nowhere: 30 days of the dark world produced zero pairs above 20.

Now beauty comes from the face and the body, not a dice roll: a base, the whole head scored, weighted features, an age curve, and a small residue. Everyone also has a sexual preference drawn at generation (for men 91 % straight, 3 % gay, 4 % bi, 2 % asexual; for women 88 / 2 / 8 / 2; and a 5 % interest in trans bodies), and attraction follows the preference, never the sex. The first time A sizes up B, their first impression is written: beauty, libido and romanticism, age gap, orientation, a seeded noise. The player included: people who find you beautiful come to you.

Memories then move it. Time together, sex, an affair raise attraction; a rebuff, a humiliation, a discovered affair lower it. In the big town, 16.9 % of pairs are above 20 and the number of suitors a person has follows their beauty with a rank correlation of 0.95. Among the hundred we follow, 0.48.

Affairs are a temptation of every day for someone in a couple who desires an adult present and is not repelled; a cold couple doubles it. Discovery comes from being seen, from a witness who tells, or from chance. And the outcome is the betrayed partner's character, in every direction: leave, forgive, cheat back, accept (the pair becomes open and the next affair is no drama), or revenge, which means a fight or an intimidation before the door slams.

Couples and affairs, 100 people, 100 days
0 5 10 15 20 25 30 day 0 day 20 day 40 day 60 day 80 day 100 Started dating Affairs Discovered Married
What the betrayed partner did (town of 671, 105 discoveries)
Cheated back Accepted it Took revenge Left Forgave 10 18 19 22 36

Each outcome is scored by the partner's facets with a seeded noise. 270 affairs started, 27 of them were someone getting even.

Platonic love exists too: a secret love is born when attraction is there and one of the two is taken, or the person is too shy or too faithful to act. It aims at the other's trust, never at sex. 191 were born among the hundred, 70 were still held at day 100. 743 in the big town.

Turning points, grudges, and the dark means

A death in the family, a child, a serious illness, a lost job, an eviction, a stay behind bars: each is a turning point that can end the ambitions it makes absurd (a bereavement ends live for today) and redraw that very night with a bias toward what the event favours. 416 turning points among the hundred: 270 bereavements, 71 serious illnesses, 34 lost jobs, 41 evictions.

Opinion now gives people directed goals on its own: a grudge above 20 breeds make them pay, a debt breeds get it back, fear breeds appease, attraction breeds win them over. 437 goals were born from an opinion among the hundred, 1,581 in the big town. The dark means (intimidate, extort, rob, beat, recruit) are data with a social norm and a minimum temperature: in a peaceful world they stay shut, in the dark world 79 were carried out among the hundred, 193 intimidations in the town of 671. Zero thefts in both runs, which is a note for us: the means exists, nobody's ambition picked it.

Pressure in the town of 671
0 100 200 300 400 500 day 0 day 20 day 40 day 60 day 80 day 100 Turning points Intimidations Break-ups

People change, slowly

Every act leaves a mark on the facets behind it: a fight nudges aggression, a gamble nudges risk tolerance, helping someone nudges empathy, by two thousandths per act, scaled by plasticity (a 25-year-old moves more than a 60-year-old), capped at 0.08 a year and 0.25 for life, decaying a little each month. When a held trait is no longer the best in its group for three months running, it is swapped and the history says so. Facets also age: impulsivity, risk, hedonism and libido fall with the years; patience, conscience, frugality and care rise.

The numbers are what they are: over a hundred days, zero swaps among the hundred, a 95th percentile of drift of 0.069. A two-year scaled probe gives 0.1 swaps per person-year. Character changes on the scale of years, which is the scale we wanted. The player has a setting: Frozen, Slow (half speed, the default), Full.

A town of a thousand

Until now the town was created house by house as you walked in, and every adult known was simulated event by event. A new game now counts its people: 400 households, 1,020 known people at quick start, children and the old included, generated deterministically from the building's seed.

Not everyone is simulated the same way. Near people (at your place, in your household or party, in a scene with you; up to 40) live event by event and are presented. Known people (linked to you, aiming at you, or met in the last 30 days; up to 200) live event by event, unseen. Everyone else is Background: one day step at midnight that does the whole day in one pass (income, rent, health, mind, counters, ambitions, plan and means, a shared moment with someone of their place, a life choice at the same odds an eventful day would give), no action, no scene. A skip of two days or more puts the whole town on day steps and replays only the last six hours live.

Seconds of real time per game day
0 10 20 30 40 50 60 day 0 day 20 day 40 day 60 day 80 day 100 100 people, event by event 671 people, tiers on

The hundred cost 4,768 s for a hundred days; the 671 cost 611 s. Scenes are where the hundred's time goes: 1,569 s of the 4,768.

The town of 671 over a hundred days
0 100 200 300 400 500 600 day 0 day 20 day 40 day 60 day 80 day 100 Couples Employed Dead Homeless

The first time we ran that town for a hundred days it was a disaster of a different kind: 47,194 drug uses, an average temperature of 0.64, 129 dead. The day step did everything a day does except relieve a single drive, so every background person starved on every drive and rolled a life choice every day. Now a day step moves each drive half way to its target and rolls a life choice at the odds an eventful day gives. The rerun: 4,012 drug uses, temperature 0.33, 15 dead out of 671, 6 homeless at the end, 350 jobs found, 36 businesses opened, 82 couples, 8 marriages.

Why

Every choice now keeps its three biggest terms, and a template file turns them into a sentence. Of the 848,053 decisions the hundred made, 848,053 have one. On a person's sheet it reads under their activity:

chose smoke because being impulsivity, despite being risk tolerance, it is in their habits chose go for a run because their fitness was low, it is in their habits, despite their tiredness was low chose have a snack because it is in their habits, being impulsivity, despite the price

The wording is a first draft (the template file is data, it will get better). The information is the point: you can ask anyone in town why they just did that, and the answer is the actual arithmetic of their decision.

History is written from the reader's side too. Every line has a visibility: public, circle, private, secret. Your spouse reads your private lines, a contact reads your circle, nobody but the two of you reads a secret line, unless a witness holds a row about the act. In Sandbox you see everything; in Story you see what your character would know.

One of the hundred

Edwin Kelly, 55. Day 7, finds a job. Day 9, sells sex to make the rent. Day 10, intimidates someone: his ambition is have the whole street afraid of me, step 1, make an example of someone. Day 29, misses the rent, eviction notice. Day 37, evicted; turning point. Day 46, first drugs. Day 52, flu, treated. Day 69, discovers his partner's affair, assaults the lover, the couple breaks. Day 99, his last choice is a run, because their fitness was low. Temperature 0.83. Nobody wrote a word of this.

What is wrong, in the same report

  • Too many die. 45 deaths in the town of the hundred (18 of the hundred themselves), 270 bereavements. The mortality tables predate this work and have not had their data pass. That pass is mine, next.
  • Everyone gets richer. The average wallet goes from 33,900 to 40,900 in a hundred days while the poorest sinks to −4,134. Salaries beat the cost of living for the employed. The knitting post was about the opposite problem; the balance is still not right.
  • No mutation in a hundred days. The four ambitions that can turn into revenge need a vindictive holder and someone who blocked them, and a 30- to 180-day window. Zero among the hundred, three in the town of 671.
  • The sentences. "being impulsivity" is a template, not prose.
  • Beauty is unweighted. The head scores are at 50 for everyone until I grade them.
  • The counted town's hundred days hung once at day 44 with nothing in the log; the rerun did not. The soak now names who is stuck and ends with its report rather than spin.

The long runs do what they were built for: they turn "it feels thin" into a list.