Auto evo stifles mother nature's creativity

currently in the microbe and multicellular stages, auto evo is like, freakishly obsessed with efficiency. if your cell isn’t as perfect as can possibly be, it doesn’t wanna see it. now, the player doesn’t need to listen to this dipshit hillbilly computer, but the randomly generated organisms around you do. because of this, almost all naturally generated cells are simple prokaryotes containing only a small handfull of parts. usually a couple of rusticyanins in the deeper patches, and a few thighlakoids in the surface ones. this has a number of negative gameplay impacts on the player. the first and most obvious being that it is simply boring. it is extremely tiring being out and about and seeing nothing but the same indistinguishable algae everywhere you go. when you do things like become eukaryotic, and god forbid multicellular, you will spend your years alone at the top, with all the dumb little fishies incapable of providing any sort of challenge or company to keep you motivated.

the other, slightly less obvious reason this is an issue, is that because the game regards complicated cells as “failures”, your own species will never branch off and evolve into other complicated forms, which further enhances the loneliness among your genus.

i feel like this can be pretty easily fought off simply by making auto evo more lenient for larger cells. the #1 cause, it seems, for smaller cells being favoured, is that they burn resources a lot slower. instead of taking that alone into account, the computer should consider only the cell’s atp balance. as you know, the higher the cell’s atp production is than its usage, the more resources it is burning for it that it doesn’t need to. that way, the computer won’t necessarily be biased towards smaller cells. as long as the cell is capable of getting resources to keep up with the rate it burns them, then it shouldn’t impact the species during selection time.

edit: i know nobody has actually commented on this yet, but i feel the need to add a little more clarity to that last paragraph.
threev
the part highlighted in blue is the resources that the cell uses to keep itself up and running. the part highlighted in red is the resources which go straight down the shitter. basically, auto evo should focus on keeping the red part as small as possible instead of only thinking about the amount of resources burned in and of itself. the bottom bar represents the mechanical processes that the cell uses to actually attain resources, so the more complex your cell is, the easier it will be for it to get its hands on resources to burn in the first place.

4 Likes

Auto-evo doesn’t know anything about multicellular species, it doesn’t touch them at all. That’s why I call it a prototype as it is missing a ton of core features.

Processes don’t run at full speed if their output is not needed? So what do you mean? Also auto-evo has kind of a “bug” in that the higher the total production of a species the worse it performs. So I’m not really sure what you are saying here as to me these both seem to already be in the game.

i mean, yeah, that’s exactly what i meant. all i’m saying is that instead of trying to keep the overall burning of resources as low as possible, auto evo should focus on the size of the red bar in my epic graph, and whether or not the cell can get resources to keep up with the rate at which it burns them.

Auto-evo has the following parts in it:

  • Species that have negative ATP balance are massively penalized
  • The higher the ATP production capacity of a species, the more its individuals cost, meaning overall lower population

From these two, I think, it’s clear that auto-evo already does what you are asking.

1 Like

i see. well, i was kinda under the impression that auto evo also accounted for the actual capability of the cell to actually get resources in the first place, which is part of the driving factor of my whole argument. i.e. things like speed, health, size, behavior, what have you. i feel like maybe those things should be added to the list. if auto evo’s only concern is with the basic metabolism of the cell, then obviously it’s gonna favor small and simple fishies.

Coming from me, its true role should be to have a species fill any vacant niches.

1 Like

All of those properties you listed are also taken into account to varying degrees in the different parts of the population simulation.

Hello, I’m one of the dev actively working on the auto-evo algorithm.

What you propose is planned and for a part already implemented, however think that it is a delicate balance to achieve. As an example, incentizing speed would inevitably favor small cells (which is bound to happen, but we’ll need to implement counter effects as well). Similarly, the focus on the perfect ATP balance you advocate for will actually most likely prevent big cells from evolving: when you are short on balance, you have no excess energy to build further organelles without going into a deficit (ATP consuming organelles), or simply increasing the production inbalance (ATP producing organelles)

My current line of thought is that I want to be able to explain why AE outcomes happen. Otherwise we may just end up lost trying to optimize the algorithm locally to match our expectations. I’d add that I solely focus on the basics relationships in order not to limit the complex outcomes by what I deem valid or not.

All that being said, I will give a go at these size issues. For starters, predation score is actually linearly correlated with cell size. Limiting this bonus for cells big enough to engulf may actually buff predation for the remaining, bigger predators. Also, although much harder to implement, adding penalties for being a prey may incentize development of bigger producers trying to prevent death by engulfment.

Please understand, however, that this will ultimately need many theory crafting, programming efforts, and even further test and gameplay validation to plug this properly into the game, and we are short on many of these, including testers.

5 Likes

oh, cool to hear. and yeah, i understand. if it was easy, there wouldn’t be a big stupid argument about it in the comments of this post (and at that, literally everything that i post besides this). hopefully you guys can figure out a way to get the auto evo system up and running in one way or another. anyways, i’m just gonna respond to each paragraph of your response one by one like a robot now lol

i didn’t mean that the atp balance needed to be PERFECT, because obviously when you try to do that, the game tells you to shut up and that you’re not its real dad. i feel like it would work better to have the computer aim for an atp production a little higher than its consumption, probably scaling with the size of the cell. basically higher by enough that the cell won’t be left in the dark if it tries to heal an injury or duplicate a part, but not too high to where it is burning way more food than is necessary for it to survive. maybe if the cell needs extra parts to increase its atp production, it could start by adding some weak burners, like cytoplasm, unless the extra weight proves to detriment the cell more than it benefits it, in which case it would add things like metabolosomes or mitochondria instead.

i’m not a game dev, and i sure as hell don’t know what goes through the head of that crazy computer, but i still feel very strongly that food burning and speed are the 2 main factors in why it selects so heavily in favor of tiny cells. mostly cause, you know, those 2 are basically the only real benefits of having a smaller, simpler cell. not to mention that, as it stands, there really isn’t a whole lot of incentive for having a very big cell. you gain the ability to engulf at a relatively small size (which, by the way, is insufficient in itself for sustaining a newly added nucleus might i add), the difference in hit points between big and small cells is virtually nothing, and most of the parts reserved for big cells are either mere upgrades of more basic parts, or simply unusable by the AI.

some qualities of “prey” that the computer may want to look out for
1.) small enough to be swallowed whole by big cells
2.) lack of offensive parts like spitters or spikes around the front parts of the cell
3.) peaceful and flighty behavior

you obviously don’t have to listen to any of this if you know it’s not gonna work out. just trying to help out a little is all.

well in that case my friend, i don’t know what the issue is. maybe some numbers are just skewed in weird ways, idk. i’m just going off what i can observe from my time wasted fucking around in game.

Hello again. Some remarks and answers.

i feel like it would work better to have the computer aim for an atp production a little higher than its consumption, probably scaling with the size of the cell. basically higher by enough that the cell won’t be left in the dark if it tries to heal an injury or duplicate a part, but not too high to where it is burning way more food than is necessary for it to survive.

This is very unnatural as an aim, but this is however something I’d like to see emerge. Remember that we want to replicate natural pressure, and that we will thus try to make them be by bottom-up interactions from basic mechanics. So yes, but too complicated as such.

you gain the ability to engulf at a relatively small size (which, by the way, is insufficient in itself for sustaining a newly added nucleus might i add), the difference in hit points between big and small cells is virtually nothing, and most of the parts reserved for big cells are either mere upgrades of more basic parts, or simply unusable by the AI.

I agree with you on the nucleus part, some rework is needed and it is under discussion. But as I’m starting with the start, I’m currently working on early mechanics and thus prokaryotic evolution. Nucleus isn’t even a thing to me right now ! :see_no_evil:

there really isn’t a whole lot of incentive for having a very big cell.

Although not to that extent, natural selection does incentize small size overall as well. But I’m working on giving bigger cells a little push, as I said.

some qualities of “prey” that the computer may want to look out for
1.) small enough to be swallowed whole by big cells
2.) lack of offensive parts like spitters or spikes around the front parts of the cell
3.) peaceful and flighty behavior

These are very complicated things. It will be of relevance latter, but that’s a level of complexity too far away from what we have today (except engulf size which is already implemented).

you obviously don’t have to listen to any of this if you know it’s not gonna work out. just trying to help out a little is all.

I still try to do it, first because it is nice to engage with the community, but also because writing this helps me clarify things out. Last, some input can also be useful, and may also show misconceptions about the game from the community, which is always good to keep in mind.

Last but not least I appreciate your efforts, thank you. :slight_smile: Should you want to dwelve further into the matter, feel free to have a look to our dedicated files for auto-evo! Link here : Thrive/src/auto-evo/simulation at master · Revolutionary-Games/Thrive · GitHub

2 Likes

got it. this is probably gonna be my last response to this conversation because i think i’m starting to understand this game a lot better and i don’t feel the need to give any more input. feel free to write back though.

i feel like that’s less of a “pressure” thing and more of just a “being a viable organism” thing. i mean, it’s not like the current system of auto evo just crawling towards a more and more efficient cell (seemingly without regard for the outside environment) is that realistic anyways. not to be taken as offense. i do understand that the game is really REALLY unfinished and a lot of design decisions are yet to be made.

i see. mostly, i’m just not sure of the complexity floor of the game, as in what stuff is supposed to be hard wired into the game, and what is supposed to appear as emergent behaviors. i think i’m starting to get it though.

I find if i rush to the nucleus stage and cytoplasm at the surface auto-evo has nothing but nuclei cells to work with for a while. You can get to nucleus in just 3 stages if you focus on your ATP production. These cells have high ATP production but because it takes a while for the smaller cells to reach the surface they have time to grow in numbers.

1 Like

I think a good way to help promote more diversity in cell evolution would be to have a chance for cells to mutate separately from their parent cell. So if the player evolves a chloroplast, the species could split and a mutated cell could instead evolve mitochondria.

Not too sure if I did a decent job describing the idea, but having more chances for divergence in a species would definitely help.

2 Likes

I would love to see this implemented. It could also lead to the cells that split off from you developing into their own unique branch if they manage to survive and find a separate niche.

1 Like

Species splitting is implemented in the game. It can currently happen for two reasons:

  • Multiple mutations for a species are tested and they are good in different patches, in that case the species is split into two
  • A mutated copy of a species is created to fill a patch with only a few species in it, and if that new species copy does well, then it actually appears, otherwise the copy is discarded

It would definitely help if these mutations were more common, especially as cells become more specialized for certain areas. Currently feels as if the species you encounter when you enter an area are what you will encounter many generations later, maybe with some more spikes and such.

1 Like

one thing that i don’t know how hard it would be to do (like most coding things) is to implement strains of species so that for example if the player moves to a patch that has different resources than the previous patch (for example moving out of the hydrothermal vents and into a patch with sunlight) the player creates a different strain of the species and A. only modifies that strain or B. modifies each strain separately but after enough generations they will no longer to modify a strain as it is too distantly related. and for A and B once the stain is too distantly related auto evo determines what happens to it and auto evo can select multiple more successful mutations as different strains and test them in the real game world and a create new strain button would be preferable

I decided when implementing species splitting due to differing selection pressure to not split the player’s species. This is mostly because even now we get a bunch of people complaining auto-evo reducing their population of their species that to the player seems perfectly good. I’m the team member who (at least I feel like this) sees most player feedback, so I actually make surprisingly many design decisions to minimize the number of times people will complain or message me about it. So I specifically opted to not make it so that a player can lose like 50% population by moving to a new patch and making a change that’s only good in the new patch.

1 Like

ok then would A but they control the evolution of all the strains separately with different MP pools and they have to hit a button in the editor to split from their current strain and being able to attack a strain you split from more than 5 generations ago be better
edit: for how I’m thinking it would be if one strain went extinct it would say
STRAIN EXTINCTION please choose a strain to continue and there would be a dropdown selection menu containing all of the strains of their species someone please make some concept art for this as the most complex thing i can draw is a thicc sticc figure
edit 2:for population it would say strain population and under that say total population which would add up all strains from all patches