I was originally going to post this as a forum post, because it’s basically just an enormous wall-o-text, but I decided what the hell you only live once. And then you die. Like everyone else. So before you die, you might as well waste a few minutes you can never get back reading this wall-o-text.
Playtesting 0.8.0 has revealed some bugs: thankfully not major, crash-inducing ones. They’re mostly problems with longer-term simulations.
I tried tracking down the two major ones this morning (over-reliance on carnivory and species-count becoming desynchonised from the creatures) and failed miserably. Couldn’t reproduce the latter at all, and the former is just plain odd.
It doesn’t seem to be an energy leak bug: creature’s can’t survive if you kill *all* the plant matter, which is a good sign. But they *can* survive extraordinarily well on a very small amount of food.
I think I’ve got an idea, though: I’m starting to think this might be a recycling issue related to the way biomass is handled.
When a creature eats a plant, the amount of energy it consumes is constant, but then other factors kick in (the creature’s diet, the plants efficiency, global efficiency if it worked properly, etc) to reduce the amount of usable energy that is actually added to the energy bar.
The unusable energy is added to the creature’s biomass value, which is little more than a storage space, keeping track of the energy that the creature has consumed during it’s lifetime. When it dies, biomass (along with any leftover health or energy) becomes delicious meat.
Meat is a more efficient food source. You might be able to see where I’m going with this.
Whether a herbivore or a carnivore eats the plant, the same amount of energy is introduced to the population. Even a near-carnivore will eat plants in an emergency, and even though the individual might not be able to make use of the biomass it picks up, it’s pure-carnivore siblings can when it dies. So the population ends up relying on these omnivorous mutants to bring energy into the system. And of course, unlike a herbivorous population, when each of these carnivores dies they can be fed on in turn by their siblings, resulting in an incredibly efficient survival strategy that requires far less energy input overall. It’s quite elegant, actually.
Alright, that’s enough admiring the enemy, what can we do about it (assuming that huge steaming pile of extrapolation was at all accurate)?
My first inclination is to reduce the meat efficiency. But that doesn’t actually stop the energy from being introduced to the population: it just means it has to go through more creatures to be usable. Plus it makes carnivory less likely. The problem isn’t carnivory so much as so efficiently recycling the incoming energy.
The large total plant energy is what caused the problem in the first place, so I could reduce that. I’d need to increase the efficiency of herbivory to compensate: the end result would be that eating plants would add substantially less biomass.
Or efficiency could actually influence the total amount of energy that’s added: rather than having a constant increase and divvying it up between biomass and energy. But functionally, that’s pretty much the same as reducing planet energy content as mentioned above, since they’re the things with the low efficiency.
Or… well, I could finally accept the fact that the biomass value isn’t hammerspace and rework it somewhat.
Honestly, I’ve been treating biomass wrong for a long time. It was originally a way to ensure the conservation of energy, but a potential storage of infinite meat on every creature is quite frankly rediculous and unrealistic.
So, how to fix?
In real life, edible biomass *isn’t* simply unused energy: that only applies to fat stores, and those are just a tiny fraction of the creature’s edible meatiness. It’s structural: muscles, flesh, etc. It’s correlated with mass. And unused or unusable food isn’t stored forever as fat stores, either: it’s expelled.
So, the sensible way to fix this might actually be a deliberately introduced energy leak. Sort of like Decay, only happening while creatures are alive. It’d work something like this:
Creatures gain biomass normally up to a set point (perhaps their childhoodCost (to represent structural biomass) plus a percentage of their mass (fat stores)), after which it leaks out over time (possibly even providing a minor energy boost as it does so). It would have to leak exponentially faster the higher it went, to prevent a creature capable of rapid consumption from outpacing the energy leak indefinately simply by gathering food.
This would put a limit on the amount of meat a single creature could provide, meaning that carnivores eating a particularly bountiful meat pile would get a much smaller meal: enough to produce one or two children, rather than dozens.
Hopefully, that should put a spanner in the works of the current dominant survival strategy.