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.
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.
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 ! ![]()
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.
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
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.
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.
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.
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.
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.
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
You’d be playing more and more species at once then, and it would make the playing experience a lot more complicated and slower, not to mention all the extra development work to make the editor work. I don’t see this as good game design at all.
for the first part you would have to manually split from your current strain so unless someone thought the button didn’t work or the were purposefully doing a 20 strain run they likely wouldn’t be overwhelmed. for the second part i will try to learn C# as soon as possible
I’ve been wondering whether an adapted design could be used here: run the same kind of splitting algorithm as AI species on player species when they make a mutation that creates such a split in fitness (adding thylakoids for example). At that point, rather than actually splitting the player species, it would create a low population of the “new” species splitting off in all the patches where it has a higher fitness than the new player designed species.
This should have similar effects on species ancestry/tree of life as actual species splitting in the long term, without confusing some players with unexpected population loss. Of course, since the tree-of-life is not visible yet in normal playthroughs, I can’t really tell if such a system is necessary to make sure enough species branch off from the player (since I know there are other mechanics for branching).
Species splitting to fill in biodiversity works almost exactly like that, but it also considers AI species as potentials to create a new species from. That was added to help fill in the empty worlds from the initial species.
Magically spawning copies of the player species code is actually still in the game but it is disabled and can’t be enabled by the player.