“Now, I understand why so few companies have attempted to develop a life simulation game. The challenge isn’t just additive the more you try to build—it’s exponential. At a certain point, finding bugs in this vast world we’ve created feels like playing tag with invisible ghosts.”
He’s not bragging; it’s honesty. I’m thankful he is sharing the experience. I know totally what he’s talking about. I remember trying to make a simulation of reality in the wc3 map editor in elementary school. Add the weather so the plants grow. Tie growth variables also in to deer eating them. wolves eat the deer. So everything needs hunger variables. But already we start having the ‘exponential growth’ he is talking about: because what about the Weather and the Deer? And the Weather and Wolves? Add aspect of the world for one type of object (weather for plants), and suddenly you have to figure out how or whether it relates to everything else you have (Deer and Wolves). Now let’s say we add villagers and Structures. Every time we add something, we have more nodes to consider the interrelations of.
It’s easy when there are few systems and few types of things (like a cardgame of creatures with atk and def), but it escalates quick and does exactly what he’s saying the more systems you try to accurately include and farther toward ‘full life sim’.
So im just a noob, but I see clearly this is what he is conveying to us. (probably cuz i tried a similar path in elementary school. if i remember correctly i ran in to this same issue, scale was too big too big project and i switched to something else. it exponentialed quick; just like he says)
edit: i bet he wasnt brave as much as did not forsee the exponentialness aspect and wanting to aim high caused him to fall in to it
I’ve read from a few people who’ve done similar sorts of things that the solution to this problem is to just have everything track everything to begin with. Hunger level, heart rate, mood, everything you can possibly think of to track, and then just have everything else inherit from that global class. A lot of the values will be zero for some objects, but that’s okay, after all a storage crate doesn’t need a mood, both at some point in the future maybe you want to add an emotional box, and your code will definitely handle it now. Otherwise you have to go back in and alter everything every time you make a slight change.
A more complicated but ultimately faster approach is using a structure like an Entity Component System. You build an entity (deer, person, plant) out of components that are just data (health, hunger, mood), and then each type of component has a corresponding system that updates all the components at once based on other values. It’s somewhat similar, but you save space on unnecessary components not being added, and it packs the data together in way that is faster for the computer to iterate through.
Making a system like this one day is my dream. I’m not in game dev and I’m probably never going to make a playable game but I naively believe that if you organize this well enough in advance, the moment it starts clicking together would be amazing. If you define all the individual actors in a flexible enough way, eventually the simulation should just ‘click’ and start functioning on its own, right? :P
For example, you dont need to code the specific wolves+rain interaction - you just need to code “if vulnerable/tired - find shelter” and have rain affect the living creatures in that way. It doesn’t matter if there are deer or sheep in the area, “if wolf hungry” logic should just say “find something with meat to eat nearby”.
Then again I know enough about programming to know this is extremely naive and it’d probably be a million times more difficult if I ever got around to doing it. I don’t even know where I fall on the dunner-kruger graph yet, but it’s an interesting thing to think about for me.
Oh I empathize with that. I tried unity/godot and code part would always be fun and easy, I love that… models, assets, animations break my brain however. I wish I could just not bother with them but it’s such an important part of the experience, arguably the most important one
Dwarf Fortress goes that deep. They once had to fix a problem where cats died from alcohol poisoning. Dwarfs in a bar would spill their drinks, the cats would walk through the puddles and subsequently lick their paws to clean themselves. It’s crazy!
Yes that was the bug. After all it makes sense that cats would clean their paws and get a bit of alcohol in their bodies. Kind of bizarre to think though that the system was sophisticated enough to track grooming behavior but not quantity.
It really goes to show how stupid computers actually are. They just follow your instructions regardless of how insane they may be
Reminds me of Rimworld and the fact that, if there is no other accessible entities on the map with a nutrition stat, children and animals will b-line for booze that raiders drop and get hammered. I can’t count the number of Muffalo, dogs, and cats that I have had which end up with an alcohol tolerance hedif out of nowhere.
“Now, I understand why so few companies have attempted to develop a life simulation game. The challenge isn’t just additive the more you try to build—it’s exponential. At a certain point, finding bugs in this vast world we’ve created feels like playing tag with invisible ghosts.”
He’s not bragging; it’s honesty. I’m thankful he is sharing the experience. I know totally what he’s talking about. I remember trying to make a simulation of reality in the wc3 map editor in elementary school. Add the weather so the plants grow. Tie growth variables also in to deer eating them. wolves eat the deer. So everything needs hunger variables. But already we start having the ‘exponential growth’ he is talking about: because what about the Weather and the Deer? And the Weather and Wolves? Add aspect of the world for one type of object (weather for plants), and suddenly you have to figure out how or whether it relates to everything else you have (Deer and Wolves). Now let’s say we add villagers and Structures. Every time we add something, we have more nodes to consider the interrelations of.
It’s easy when there are few systems and few types of things (like a cardgame of creatures with atk and def), but it escalates quick and does exactly what he’s saying the more systems you try to accurately include and farther toward ‘full life sim’.
So im just a noob, but I see clearly this is what he is conveying to us. (probably cuz i tried a similar path in elementary school. if i remember correctly i ran in to this same issue, scale was too big too big project and i switched to something else. it exponentialed quick; just like he says)
edit: i bet he wasnt brave as much as did not forsee the exponentialness aspect and wanting to aim high caused him to fall in to it
I’ve read from a few people who’ve done similar sorts of things that the solution to this problem is to just have everything track everything to begin with. Hunger level, heart rate, mood, everything you can possibly think of to track, and then just have everything else inherit from that global class. A lot of the values will be zero for some objects, but that’s okay, after all a storage crate doesn’t need a mood, both at some point in the future maybe you want to add an emotional box, and your code will definitely handle it now. Otherwise you have to go back in and alter everything every time you make a slight change.
A more complicated but ultimately faster approach is using a structure like an Entity Component System. You build an entity (deer, person, plant) out of components that are just data (health, hunger, mood), and then each type of component has a corresponding system that updates all the components at once based on other values. It’s somewhat similar, but you save space on unnecessary components not being added, and it packs the data together in way that is faster for the computer to iterate through.
An emotional box? Enough about my wife!
OH!
LOL, forgot about that tacky bastard.
He sucks, but it was such a good set-up for a shitty Dice Man style joke, I couldn’t resist.
Making a system like this one day is my dream. I’m not in game dev and I’m probably never going to make a playable game but I naively believe that if you organize this well enough in advance, the moment it starts clicking together would be amazing. If you define all the individual actors in a flexible enough way, eventually the simulation should just ‘click’ and start functioning on its own, right? :P
For example, you dont need to code the specific wolves+rain interaction - you just need to code “if vulnerable/tired - find shelter” and have rain affect the living creatures in that way. It doesn’t matter if there are deer or sheep in the area, “if wolf hungry” logic should just say “find something with meat to eat nearby”.
Then again I know enough about programming to know this is extremely naive and it’d probably be a million times more difficult if I ever got around to doing it. I don’t even know where I fall on the dunner-kruger graph yet, but it’s an interesting thing to think about for me.
This video series sounds like it might be up your alley. Guy documents his attempts to simulate a goblin society and ecosystem.
According to the dwarf fortress developer the hard part isn’t the code exactly it’s the graphics which is why he doesn’t bother with them.
Oh I empathize with that. I tried unity/godot and code part would always be fun and easy, I love that… models, assets, animations break my brain however. I wish I could just not bother with them but it’s such an important part of the experience, arguably the most important one
T̸h̶e̴ ̷f̵o̶g̴ ̷w̴a̷s̴ ̸h̸u̵n̵g̴r̸y̸,̸ ̶i̴t̷ ̵a̸t̶e̵ ̵t̷h̵e̶ ̸w̴o̸l̷v̷e̸s̴
Dwarf Fortress goes that deep. They once had to fix a problem where cats died from alcohol poisoning. Dwarfs in a bar would spill their drinks, the cats would walk through the puddles and subsequently lick their paws to clean themselves. It’s crazy!
I think the bug was that a splash of beer had the same alcohol content as a cup.
Yes that was the bug. After all it makes sense that cats would clean their paws and get a bit of alcohol in their bodies. Kind of bizarre to think though that the system was sophisticated enough to track grooming behavior but not quantity.
It really goes to show how stupid computers actually are. They just follow your instructions regardless of how insane they may be
What is amazing is how our universe and existence seems to be governed by a few physics laws (which we don’t fully understand).
Reminds me of Rimworld and the fact that, if there is no other accessible entities on the map with a nutrition stat, children and animals will b-line for booze that raiders drop and get hammered. I can’t count the number of Muffalo, dogs, and cats that I have had which end up with an alcohol tolerance hedif out of nowhere.
that would be a super cool touch in a game
Secret of the Haunted Forest
Player eventually realizes the reason for the unexplained corpses is the hunger mechanic applies to the fog too.
I’m just reminded of the fog men in kenshi