Bringing Characters to Life: The Autonomy System (Patreon)
Content
Hi, Anna here!
Today, I’m excited to share some insights into the character autonomy system I've been working on recently. It's all about making our characters feel more alive and unique when they’re not directly controlled by the player!
🧠 Different Types of Autonomy
Autonomy in our game essentially covers how characters behave when they’re not being directly controlled. On the technical side, there are different aspects of it that are covered by different systems. Here is how we define them:
Idle Autonomy: what a character does when their interaction queue is empty.
Forced Autonomy: situations where the game interrupts or cancels current actions, usually due to important events (like going to work or fulfilling urgent needs).
Chained Autonomy: automatic follow-up actions based on the previous interaction. For example, a "neat" character washing their hands after using the toilet.
Town Autonomy: managing all NPCs and placing them in logical or interesting spots around town throughout the day.
Story Progression: NPCs dynamically changing jobs, forming new relationships, having children, or moving houses (this won’t be in the game yet and will first release in Early Access).
For today’s update, I’m focusing mainly on the first two types: what we call Idle Autonomy and Forced Autonomy.
🧹 Idle Autonomy: Showcasing Characters’ Identity and Keeping Them Active
Idle autonomy is activated when a character has nothing planned for a little while (5 or 10 in-game minutes). The game then picks an appropriate action for the character to do based on the current context. Here’s how it works:
The system first scans the surroundings for objects that are available and accessible (no blocked paths or objects already in use).
If the character has an urgent need, the system prioritizes an action that fulfills it. This is important because players often rely on autonomy to maintain their characters' well-being!
If all needs are okay, the system scores potential actions based on the character’s identity: talent traits, skill levels, and personality traits. There’s a bit of randomness to make it feel more natural: the game picks one of the top three scored actions.
For example:
A musically talented character with high piano skills is more likely to play the piano - unless they’ve already practiced it too much that day.
A "neat" character might autonomously clean dirty things around the house.
Some actions, like watching TV, might be a universally available pastime.
If your Para is really sad, you may see them go to the bathroom to cry it out…
This system is also fully moddable! Modders will be able to add their own interactions, with the scoring conditions and the priority rules they want. It is great for those who want to mod in their own personality traits, since the autonomous behaviours are a big part of how the player “feels” the personality of their characters!
These characters don’t have any repair skills, but they both have the neat trait, so I guess they’re doomed to clean this cursed bathroom forever!
😴 Forced Autonomy: Helping Characters Self-Manage
Sometimes, the game needs to step in to make sure things run smoothly. For example, when it’s time to go to work, the game will automatically queue the "go to work" interaction. It isn’t always about adding an interaction though, sometimes it is about cancelling one: if a character has been playing an instrument for hours and becomes bored or exhausted, the game will force them to stop and address their needs. These forced changes help prevent characters from getting stuck in endless activities when something more important comes up! (For the Para murderers among you, don’t worry, you can still cancel the autonomous interactions that fulfill needs or turn off the autonomy altogether…)
Forced autonomy also comes into play during group interactions. Characters might leave a group activity or refuse to participate in it if they don’t know the other participants well enough, or if they need to go to work, sleep, or fulfill an urgent need.
Nothing can stop these Paras from working out! Except maybe a quick bathroom break
🏃➡️ Coming Next for Character Autonomy
At the moment, this system is active for household characters only. You can toggle autonomy on or off for selected characters and for other characters in the household separately, allowing you for instance to focus on one while the others manage themselves.
In the future, we plan to extend this system to working NPCs on community lots. For instance, a barista at the café might autonomously clean tables or serve drinks with this same system.
However, for performance reasons, we can’t activate full autonomy for every NPC in the entire town at all times. Instead, we’ll develop a more optimized system for town autonomy, which will strategically manage NPC placement around town. I can’t wait to work on it and tell you all about how it works!
Just adding a few basic, simple interactions to the autonomy system changed a lot how alive the game feels. I hope you enjoyed seeing a little peek of it!
Have a fantastic week,
Anna 🌞
Edit - June 5th, 2025: This post is now public, feel free to share it!