Well I think they are adding multicell autoevo next release so you’re staying here I suppose
From the description here, I think the main difference is step size and the number of species.
From @N4no57 description (I don’t have time to read the code now) it seems like their approach creates a ton of species and uses a small step size to either give or take populations. Whereas in Thrive we quite conservatively split species to keep the species number in check and we use a bigger step size that should swing less. The reasoning I’ve been given for that is that we simulate 100 million years so populations need to be able to change drastically in a single step. Otherwise we would like need to run auto-evo 10x or 20x times (or at least the population simulation part) per editor cycle. And that would be slow as well.
This isn’t fully accurate, or at least is missing some nuance. In the game each species has an energy gain total and a population is derived from that divided by the species body size. So in effect our auto-evo is also trying to maximise the population (through a proxy). But also at the same time that is only the mutations part, the population simulation doesn’t do that. So species try to mutate to maximise their population but the population simulation does not care about that part, it just calculates the effectiveness of a species given its environment. So a species trying to optimize its population can still go extinct if it has tough competition.
This idea has been talked about before for Thrive but it has been basically excluded due to the massive amount of simulation it would take. Auto-evo has to be a simplification in order to run in a reasonable time on a laptop.
I’m interested to see what this experiment leads to.
Kind of surprised to see you say that after pointing out the certain flaws of N4no57’s proposed system when compared with what we have already in the game
Every design has its advantages and disadvantages. I don’t know how they stack up against the current system which is why I’m working on an implementation. I was holding out until I had a few more concrete numbers to stack up against Thrive’s current system.
That is mostly what it does. I’ve mitigated it by having a final step at the end that sort of “compresses” this information to only have a handful of species and populations. The number of steps doesn’t have to be more than 100 to get a large changes to species.
How this little experiment plays out could be interesting. Unfortunately my current situation has left me unable to actually do any coding for about a month and a half. Kinda sucks but hey I’m still here.
I presume the compression does water down the diversity of the species a bit?
Kind of. The system works like this:
The main algorithm generates say some 100 species. These species have very very small changes to the point where you could probably ask if they even should be called different species.
The compression step takes all of these and groups them via lineages. Right now it only separates based on innovations. Say species 1-34 is just adding one cytoplasm each time then species 34 mutations into species 35 which gains a thylakoid. One could argue that species 1-34 are all one and the same while 35 is a different species entirely.
The compression step just tries to do this where it removes unnecessary intermediary species and populations.
I feel like having this many intermediates might be a good place to try and optimize the algorithm if possible
The intermediaries is more of a byproduct of how it works. Instead of large mutations in few steps it’s a lot of mutations in lots of steps. How many actually happen is determined by RNG. But the idea isn’t out of the question. If somehow that could be done then I’m down. thinking about it now there is a way. Separating by some “genetic distance” variable. If it’s bigger than a set amount then it’s counted as a new species. How that would work is something to figure out for another time.
If it is done I feel like it could actually compete with our current autoevo efficiency/time-wise
Different mutations can generate a different genetic distance. If just adding cytoplasm changes the genetic distance by too little then it stays the same species. Things like creating new organelles-proteins or developing a nucleus could give a jump large enough to generate a new species. Though this little optimisation does come with a downside. You lose a some to a lot of fidelity depending on how many mutations occur. it is probably worth while though.
Should adding enough cytoplasms also count as a new species?
It could do so but how that would end up working exactly I’m not sure. Because that then requires some tracking of previous mutations and the genetic distance between them.
Maybe a more sophisticated system should be added for that then than just going off the vibes as it seems atm
Also maybe the genetic distance should decrease for the same amount of hexes changed the more hexes there are in a cell in total?
This is kind of starting to sound like what Thrive basically does: the initial mutation strategies generate tons of species (millions of them in the late game) but basically all are discarded when compared against the miche tree (as the mutations are not useful after all).
We used to have totally random mutation generation but the miche system introduced the mutation strategies which make it so that a species only tries mutations that are likely useful to it (this further narrows down the search space of mutations to try for auto-evo).
Would species complexes be possible based on this definition?
Would those be groups with the distance just around the value of species separation?
As a side note, I believe species complexes are exactly something that should not be in Thrive. We want don’t want to spend calculation time on keeping several nearly identical species around.
Speaking of similar species, I presume subspecies are still in the plans?