More Darwinian autoevo (Preventing developer bias from impacting evolution)

I am dissatisfied with the current idea for auto-evo as I think it relies too much on us (the developers) saying whether something should evolve or not. How can we make it more Darwinian? Even Lamarckian evolution would be a better option then the current system idea in my humble opinion. I think that cells in your current patch need not be so abstract, if they get a kill it should up their population, if they die it should lower it. This along with other population altering rules are the way to go in my opinion. I am worried that if it relies too much on developer defined numbers that it will lower the variety of cells that evolve. This worries me. One idea I had was Lamarckian, we have a seperate set of numbers that defines how having one of a certain kind of organelle changes the chance of that cell evolving a second one. A creature with toxins would probaly evolve more if they are aggressive as having more means they can shoot more. A creature with low aggression may keep one as a “punishment” for being attacked. A defense.

I’m kinda worried that the few NPC interactions the player encounters in game won’t be enough to get a good idea of those species’ overall fitness in the wild. And how would the game simulate species in distant biomes that the player isn’t visiting? It sounds like it could improve variation, but it seems like it’d be difficult to implement

I suggested such an option more than a year ago to @tjwhale and @Seregon (I think, sorry if I misremembered) . My idea was that instead of having some predefined stats for parts that are shown in the editor, we could run a huge number of simulations with random cells against each other and then based on how well they do the parts would be given the factors for how much they affect the success of a species.
The reason why I’m not aggressively advocating this approach is that it may be terrible in terms of the player feeling like they actually can use the editor and know what is going on. Instead of like pilus having a list of 50 factors that it is effective against and what it is not effective against.

I think my approach is close enough to what you are suggesting that the same critique also applies to any potential approach that doesn’t rely on predetermined simple stats.

And this is the reason why we have to simulate tons of offscreen interactions.

No, it would be easy to implement (it’s just natural selection, all we are doing is messing with pop numbers, evolution would just work once the Darwinian selection is implemented (since the rest of the pieces are already there)) but it would only effect species in your patch. So what we do is have species out of the patch more abstract.

But the amount of loaded cells at once is like 50. That is no way enough to simulate evolution. Unless the player is willing to spend hundreds of hours in the cell stage.

My idea with auto-evo is to run it in a background thread with no access to the game state. So it can be ran for like a few minutes and that is probably enough to simulate thousands of possible combinations and a lot of patches.

Their success on screen would just have a major impact on the population numbers. Yes 50 cells are loaded one of them dies guess what the game treats it like 50 of Them died of that species because of the one death. The mutation/splitting/extinction already happens in the background and it is based on population numbers.

Also, about your idea (which I like) I don’t really think it will hurt the player since player population is (and presumably will continue to be) tracked differently. So the effect of you simulation is simply that proper Darwinian selection is happening in fact I think we can combine our ideas. What if the deaths in the seperate simulation are what will impact the population numbers.at that point we are in fact full Darwin with the species as units of selection.

Them killing something successfully on screen. Is in fact a very good fitness measure I think. So it’s justified for that one action to significantly impact background pop numbers.since splitting and mutation and extinction already happen only at population thresholds.

I’m open to different ideas for auto evo etc. Here’s a few points:

If what happens on screen is very influential then the player might be able to hunt a species to extinction, for example. Maybe we want that but it’s worth considering how much power you want the player to have.

With running simulations there is a balance between amount of patches and number of species VS how much computing time to spend working out how they interact. So you can’t have 1000 species in a patch and then run a lot of simulations for how they will all interact pairwise, especially if you have multiple patches. If you want a large world with a lot of highly populated patches you need to be relatively abstract. However maybe we want a small world with only a few patches, I don’t mind too much.

There is a hybrid option of maybe running some simulations to help calculate some abstract parameters which we can use for modelling later on down the line.

In a previous discussion it was discussed that the gameplay AND the editor should have an effect on the player’s population. Something like 80% editor and 20% split was what I suggested, if I remember correctly.

1 Like

Good to know, i am of the opinion that at this point the “old plans” arent having as much of an impact since we are shifting towards gameplay, I think we should look at previous plans as “guidelines rather then laws” those plans were made before we had a game and it turns out we actually have a game now and can see what works and doesnt work and it turns out alot of it doesnt work. Also, ill be honest, one other complaint i have is cell blobbiness, the player should be able to customize their cells look more directly, instead of everything turning into blobs. But thats a conversation for another day.

About theidea for my “Darwin-lamarcian auto-evo system”:

The way we would determine a “kill” is that if someone has a creature pegged as prey and it dies, it counts as a kill, which improves their species population. (this is something i could implement right this second and have it work, since its just a matter of making a kill impact population) Players, unlike AI cells, do not “Peg” prey, so we simply make the death of a cell, count less towards changing population then a pegged-kill (that way players can drive things to extinction if they try hard enough, but it would be hard to do without attempting it (and i think that if they overhunt specific microbes that microbe should in-fact go extinct, so the player is forced to adapt to a changing ecosystem)). We can also make compound gathering have an impact (so that not everything evolves into a killing machine, which would happen if we had that in a vacuum), For creatures off screen, we do lamarkian evolution, (this is creatures outside your patch). Where we look at what organelles they have, and do calculations based on that. The result then is proper evolution on the players patch and algorithm,-based evolution on other pataches. (though it does also have somewhat of an impact on your patch since they are also using that system), this way we can keep the cpu impact low, while having a pretty accurate evolution simulation, where the player is currently. And a more “picelated” version for places the player isnt at. (when i say pixelated, i mean abstract)

One other thing we could do right now, is that if a species gets a specific distance away while fleeing from a predator, also improve the fleeing specie population so we have predation and fleeing and gathering behavior being rewarded.

I hope I didn’t misunderstand, but one change I think your system needs that auto evo should affect all patches, including the one the player is in, but then the player (and other cells that are on screen) could be allowed to affect the simulation by some amount. That’s a compromise that I’d like.

We’ll just need to have the DNA encode species behaviour first so that mutations can have beneficial behaviour.

3 Likes

It already does @hhyyrylainen personality values do mutate :slight_smile: I added that a week or so ago.

Also, yes it would still effect other patches, they would be abstract.

I know this wasn’t really mentioned very much, but if we do end up doing one-on-one simulations between two different organisms, (which would probably be too time-consuming anyway), it might not end up very fair for some; for instance, if you put a single member of an organism that only works best in groups up against one that does fine on its own, teamwork (and perhaps higher levels of intelligence associated with it) will all be made completely pointless by the system.
I’m not sure which system of natural selection I prefer, I’m kinda leaning towards fitness being calculated based on biology, behavior, and all the other stuff, though I can see how that could lead to sameyness due to bias on our part and I’m not exactly an expert on how any of this should work either

1 Like

Good point.

One possibility for combating sameyness is to have some randomness each time the game begins. For example if a pilus always scores 5 “combat points” then that’s one thing. But it could score between 3 and 6 combat points which is a value randomly chosen at the beginning of the game. That way each time you played auto evo would prefer slightly different organisms and each planet would have it’s own feel.

1 Like

Do i have the go ahead to implement death/fleeing/hunting effecting population?

I guess a couple of questions I have:

The player can’t currently see the population numbers for other species right? So would they be able to understand what this system is doing? Maybe you would see less of a species you hunted a lot or something?

Each time you die you randomly go to a new biome, are the populations in each biome different or are they the same? If the values keep randomly changing each time you die will it be meaningful that you are changing them with your actions?

It looks like there is a reasonable consensus around “having what happens on screen affect the population numbers” so that’s a good reason to do something. If you’re keen to experiment with it then that’s ok with me.

We may need to make quite a lot of changes if / when we make the abstract population system. However I guess that’s true for any feature that iteration may be required.

Right now the “biomes” are just changing backgrounds and slightly altering the compound spawn rates.

1 Like

^^ Yeah biomes are very simple right now its just changing teh background and spawn rates,

1 Like

I have implemented this

1 Like