I was pondering this because in Inzoi, every NPC is fully simulated: they have routines, moods, needs, memory, etc. So much detail puts an enormous load on performance, which makes it hard to pack the game with the sort of crowds you’d like. You can’t really create a crowded, bustling city when every NPC is being tracked separately.
So I started to ask people: what type of system would be more enjoyable to play for themself?
Option 1
Don’t touch the current simulation model. All NPCs are heavily simulated, but that doesn’t permit the overall count—e.g., no more than 1000. Cities still feel pretty empty, and you don’t have that city population density feel.
Option 2
Use a tiered simulation system:
- Fully simulated NPCs are only close to the player—family, friends, people they regularly work with to some degree. These NPCs have full emotional state, needs, memory, reactions, etc.
- Semi-active NPCs are those that materialize to the player but are not directly interacted with. They follow slimmed-down schedules and activities until the player does engage with them. Once they start to interact with the player, they shift into fully simulated NPCs.
- Background NPCs are off-screen and lightly simulated. They grow old and maybe modify a few traits, but are otherwise dormant until they enter the player’s view. Once they enter the player’s view, they shift into semi-active NPC.
This technique could add five times the number of NPCs. You’d have 1000–2000 characters in cities, and they would actually come to life (rough estimate — the actual number could be higher or lower depending on optimization).
So, what sort of set-up would you yourself prefer?
