Environmental Tolerance Adaptations

We’ve gotten a decent amount of progress in this topic, with discussion of a patch movement logic revamp in another thread (Player migration - #7 by Deus from this post downwards), I think we should start actually discussing how players will be able to adapt to different conditions. We’ll go environmental factor by environmental factor to make sure not too much information is being thrown out at a given time, starting with a general idea of how tolerances should act and a discussion of how organisms can adapt to Pressure.

How Will Organisms Adapt to Different Conditions?

There will largely be two ways…

  1. Specialized Parts/Upgrades. Most things will probably be upgrades, but some unique parts will exist to make it easier for players to adapt.
  2. Morphology. Different membranes can have different tolerance effects. More rigid membranes will be better at tolerating crushing atmospheric pressure, for example.

It is important to note that shifting your organism’s tolerances should be easy and straightforward. Environmental tolerance ranges serve as a constraint on the player, so we don’t want this constraint to be incredibly difficult to deal with.

Tolerance to extreme environments will reduce as organisms get more complex. This might occur either through the nucleus shifting ranges due to the introduction of more complex and selective enzymes or will occur naturally with increasing size.

Pressure

Membrane Type & Rigidity - More rigid membranes will universally allow greater tolerances to higher pressure environments. They won’t dramatically decrease tolerance to normal pressure environments, though the effect won’t be enough to make an organism tolerate the deepest layers of the ocean in larger organisms. Max rigidity in most organisms will allow tolerance to surface level patches and medium-level pressure zones.
Sulfur-Metabolism Adaptation/Slider - A common metabolism in deep-sea bacteria, changes in amino acid and protein structures can make enzymes more barotolerant. This will be a pretty significant boost to prokaryotic organism’s ability to survive high pressure environments, and in combination with rigidity should allow simple prokaryotes to survive in even the most demanding environments.
Contractile Vacoule - A eukaryotic unlocked variant of the vacuole which will allow a greater tolerance level for larger, more complex organisms.

1 Like

Shouldn’t this be the default situation (well at least when vents starting type is used)? Also I’m not looking forward to having to code different world initialization logic for it to be able to make viable species for each starting patch (thanks to panspermia being able to start with any patch). Also microbe freebuild starts the game off with the patches filled with life.

2 Likes

For playthroughs that start in hydrothermal vents, I would think that having the rigidity slider be at its default position should be enough tolerance for small prokaryotes. Hydrothermal vents, and especially alkaline vents which are predicted to be the origins of life as opposed to the black smokers, aren’t necessarily found in the deepest parts of the ocean all the time.

Unless we treat the original spawning patch as a one time exception and only begin applying environmental tolerances after the initial move or something, I don’t see many alternatives besides giving players tolerances at the start of the game.

That’s not really what I meant. I was raising the point that default microbes should be fully adapted to the starting patch of the player, which gets a bit complicated if the default microbe can’t survive in any patch (as the microbe would need to be automatically modified before the game starts).

2 Likes

Ah yes, you are correct. Apologies I misunderstood. There would indeed need to be some different logic depending on where a cell spawns in, which makes panspermia a bit of a design conundrum. Cells might have to spawn in with enzymes already or with certain physical traits.

I think it’s best to jot out the several adaptations players are able to take in response to environmental factors and then we can figure out what LUCA cells might look like depending on where they spawn. My hopes is that we can get away with placing down a simple enzyme or with having a certain membrane setting and have the lower mass of prokaryotes enable tolerance ranges to be more lenient. But if that turns out to be not optimal, we might have to look at another solution when it comes to the first patch.

1 Like

This is not my favoured solution as the species generation API interface will need to be changed so that it knows what the patch it is generating the species for is like. Right now freebuild and the game itself can just generate new species or species with a certain number of auto-evo steps already performed. With this change the code needs to be changed to require the calling piece of code to know the target patch the new species is for and then the species generation logic also needs quite a lot of extending to make it know how to make viable initial species based on the patch conditions. As can hopefully be seen, this feature would require a very significant increase to the complexity of the species creation code.

1 Like

Then it’s probably best to go the exception route, where players don’t have to worry about their first patch’s environmental tolerances (atleast at first).

That’ll be a pretty smooth solution but we would want to avoid players exploiting this by never moving patches and thus never having that element of evolution be applied to them. So perhaps players will have a 3 turn grace period where they would need to apply their adaptations before receiving consequences. Hopefully, auto-evo in the free-build editor can somewhat function under these terms too, where AI cells will start applying their tolerance adaptations before their grace period is up.

I would be wary of this as players might not understand what they need to do until it’s too late and they get swatted down by the sudden onset of overheating when they were otherwise fine. It would be a very jarring way to go extinct.

It’s that, or we make sure that tolerance is neglectable for tiny bacteria and begins to really matter when you’re a certain size.

The only other solution I could think of is the introduction of variance of temperature in a patch, where the vents would have really hot spots in an otherwise just relatively warm environment. I think this would be nice but very difficult to implement because it runs into the same issue as thermosynthesis because players cannot see or feel the temperature themselves. But that’s a new can of worms that I’ll leave unopened for now.

I guess we could do something wonky like setting whatever environment you start in as your “ideal” range and you have to evolve to adapt to anything different, but that would mean the player would have to constantly place warming parts to survive in any patch that isn’t the vents.

I suppose there’s no perfect solution…

3 Likes

I’m wary about that because it again reinforces the “one cytoplasm master build” phenomenon. Since the environment represents a threat that life must adapt to, I was thinking that environmental tolerances would be the thing that forces the player to place parts down, making the one cytoplasm build a lot less prevalent. Though of course the idea that smaller/less complex life is punished less for environmental tolerance ranges or atleast has more versatility in that regard is a good idea, I just don’t think it should ever be completely negligible.

And yeah, setting the spawning patch as your default tolerance range opens up a lot of weird design implications, like having to have warming adaptations in otherwise regular environmental conditions.

1 Like

Very wise, I think. If one more person attempts the heat gradient display and disappears from the team, we’ll have another cursed feature on our hands :laughing:

I wouldn’t consider this a really problem. Wanting to get to the rest of the stages should at some point be enough of an incentive for the player to make non-optimal choices like getting the nucleus or needing to move away from the safe starting patch.

I think this is actually fine. The player has to get the nucleus to advance in the game. I wouldn’t be too worried about this unless it is a really busted strategy to somehow wait a long time before evolving at all somehow. I can’t imagine such an exploit right off the top of my head.

This doesn’t solve the problem as AI needs to be able to start in any patch in freebuild mode.

1 Like

If we go down the exception route, I’m sure enough players would notice this as an exploit that it would become some sort of speed-running strategy. It also cheapens the implications of surviving in such an extreme environment should you spawn in a pool or near the hydrothermal vents; few bacteria are able to survive in such an environment, and the tolerance ranges decreasing with complexity/size wouldn’t be applied at all.

There are several environmental events which would represent huge evolutionary hurdles in early life’s development, such as snowball earth, oxygenation, etc. that I can imagine players deciding to completely circumvent those struggles by remaining a single cytoplasm until most events pass. Then it becomes much easier to reach the point of getting to a nucleus since a lot of the young planet’s volatility is sorted out by then.

1 Like

I just can’t get behind that idea, mainly because my mind is already melting from the amount of work that is already on the accepted microbe roadmap. I think for any additional features, the required programming time is a key consideration whether a feature should be accepted or not to be a required feature before we can move on from the microbe stage.

1 Like

Keep in mind that these events will destroy all of the other species and drastically reduce the overall biomass, making the scavenger strategy of the one-cytoplasm-hex species less viable. Furthermore, these things will happen when the abundance of naturally occuring free-floating glucose clouds has reached 0.
In general, that’s just how it is. The more specialized a species is, the more likely it is to die out in the event of crisis. But this is not only the case for crises which the experienced player knows will eventually come like the great oxygenation event. Other crises might happen at random times, so specialization always bears a risk, even after a metagamey player has waited out the predicable crises. Also, I agree that this

should be enough to compel the player to not always take the safest route and stay as simple as possible.
Also, the single-hex species will be significantly nerfed once autoevo will take the toll of being predated upon into account (I learned that it doesn’t do this right now thanks to Thims great new video^^).
This should probably combined with a boost to the speed flagella provide, making it easier for larger and more complex cells to predate upon single-hex microbes (getting a bit off track here but that’s just how it is when debating a game where all features are interconnected with one another.

Panspermia does make the implementation of environmental tolerance adaptions more complicated. Taking panspermia out of the equation would make things a lot easier, since vents and tide pools are both relatively warm. Without panspermia the benchmark could be that the single-hex LUCA species can do relatively well in warm patches, but wouldn’t be suited to cold ones. From there on we could make it increasingly hard to stay in the vents (the hottest patch) once you grow larger without any specific heat tolerance adaptions and make gameplay punishingly hard for small species in cold patches when they don’t have any specific adaptions.
I therefore suggest that we should consider removing panspermia as a possibility for the sake of the much larger and more central feature of environmental tolerance adaptions.

In general I’m not inclined to give the player any artificial exception from the evolutionary rules, That’s why I suggested earlier to implement a rework of the game over mechanic and speculation logic alongside environmental tolerance adaptions. But also excluding that option I’m in favor of any solution which would apply the same rules to the player as to the AI as far as possible.

1 Like

Considering the conversation above I guess it makes best sense to have LUCA be minimally impacted by environmental effects. Thinking about it more, players probably wouldn’t be wise to “exploit” this for too long since they eventually would need mass to perform endosymbiosis and otherwise unlock organelles, which would really slow down their progress to wait to initiate that (needing to reach certain sizes for unlock conditions and for enough mass to engulf candidates). And besides, as Mirror mentioned, auto-evo will hopefully have something to say about that strategy

I think the next course of action is to figure out how tolerances to different factors will shift with increased mass/complexity. Then finishing out the rest of the tolerance option list after that will give us a solid picture of what the mechanic will look like. Final kinks can be ironed out at that point.

3 Likes

Here is how environmental tolerances can interact with growing mass/complexity.

Temperature: As mass/complexity increases, tolerance ranges approach average (13-23 Celsius) relatively fast.

Pressure: As mass/complexity increases, tolerance range approaches lower pressure at an average pace.

Sunlight: As mass/complexity increases, tolerance range reduces tolerance to light relatively fast.

Salinity: As mass/complexity increases, tolerance to freshwater reduces at a fast pace.

Oxygen: No tolerance initially spawning. If needed at first before implementation of atmospheric changes, as mass/complexity increases, tolerance to oxygen decreases.


Editing this because I feel like the write up for salinity is short/simple enough to not have its own post for.

Salinity

Salinity tends to vary from sea to sea, though for the Microbe Stage we would mostly want to focus on the freshwater/saltwater divide. Realistically, there is only one patch that consists of freshwater in Thrive (river patches).

Though certain adaptations to salinity exist as macroscopic morphological structures, such as contractile vacuoles in eukaryotes, the majority of adaptations are focused on the membrane. Given how there is only one patch in the Microbe Stage which is freshwater, and given how the only meaningful differences in salinity are between two options, I honestly think it might be worth it to just have a freshwater/saltwater toggle in the membrane tab. We don’t need a very dynamic system since there is minimal variability, so it might be best to just make the adaptation simple and easy to manage, reducing the workload placed on the player to maintain their tolerance ranges.

We can involve a more detailed simulation of adaptations to salinity in the multicellular stage, where variance between patches won’t be as drastic.


Adding temperature tolerances to this post because of the consecutive reply limit.

Temperature

Probably the environmental condition which varies the most from patch to patch, it is important to nail down a player’s control over their tolerances to temperature.

Heat

Thermosynthase - Thermosynthase will inherently make a player favor high temperature environments, making them reliant on high temperature environments.
Thermosynthase Slider - A slider will be offered to organisms with thermosynthase allowing them to tolerate even the most stubbornly hot environments. This might be unnecessary if we don’t implement strong variances between extreme patches (there aren’t a large number of hydrothermal vents in the average playthrough anyways).
Sulfur Part Slider - A LAWK option for organisms who inhabit warmer environments. It will be harder for larger or more complex organisms to rely on this adaptation to survive in extreme environments, but prokaryotes and the simplest of eukaryotes will find them invaluable to life in warm ponds or hydrothermal vents.
Iron Part Slider - A LAWK option for organisms who inhabit warmer environments, analogous to the sulfur sliders.
More Fluid Membranes - Having a more fluid membrane will provide a slight boost to heat tolerance. This will allow complex organisms to ever so slightly adjust their tolerance ranges incase they inhabit slightly more heated oceans. The effects would be more dramatic in more simple organisms of course.

Cold

The biggest issue with cold adaptations relate to a snowball globe event or the frozen sea patches. Players can generally avoid both of these extremes by going to deeper patches, but even these environments will cool and the surface patches are very important hubs for various strategies (high oxygenation, sunlight, etc.) So it is important that these adaptations are relatively accessible for players.

Metabolosome/Mitochondria Slider - Since oxygenic respiration will likely be very common in the surface patches, this will help enhance accessibility.
Thylakoid/Chloroplast Slider - Similar to the above line of logic, photosynthetic organisms will inherently prefer surface environments which are more vulnerable to snowball earth events, so this helps those organisms.
More Rigid Membranes - More rigid membranes will serve as a slight boost to colder environments, allowing all organisms to finetune themselves. This will coincide with a greater tolerance to depths, which lines up nicely with the nature of deep-sea environments.


Attaching tolerances to the rigidity slider will allow a more universal capacity to adapt to non-extremophile environments, while attaching more dedicated upgrades to parts which relate to common compounds in patches will allow players to adapt to local extremophile conditions. I think it is important to emphasize the greater capacity of prokaryotes and simple organisms to adapt to temperature, so temperatures could be one of the more sensitive tolerance ranges to complexity and size.

——

Oxygen

Perhaps the most important compound in the game, oxygen should be an influential resource in the game, dramatically transforming the nature of a player’s niche. The inherent challenge of oxygen in the beginning is between a caution of jumping the gun too quick by adopting oxygen tolerance before the compound becomes widespread, and missing out on the heightened capacities oxygenic metabolism can give you.

Bioluminescence - As Buckly had brought up in prior posts, bioluminescence is theorized to have originated partially as a way for bacteria to neutralize oxygen. Bioluminescence can be a useful adaptation for bacterial players who do not want to transition to oxygenic-metabolism yet or photosynthesis. It can provide a moderate resistance to oxygen which can be rather strong for less complex organisms, but perhaps not worth the energy for larger complex organisms.

Metabolosomes/Mitochondria - Metabolosomes and mitochondria, and really, any other oxygenic process, will provide a strong boost to oxygen tolerance (the first two parts mentioned getting the strongest boost).

Thylakoids/Chloroplasts - Because they produce oxygen, these parts can receive a moderate tolerance boost to their oxygen tolerances.

——

Sunlight

Implementing a way to gain tolerance to sunlight can lead to interesting cases later, such as tidally locked planets. Adaptations to sunlight should be rather accessible.

Thylakoids/Chloroplasts - being dependent on sunlight, these parts will receive a strong tolerance boost to sunlight.

Non-Single Membranes - Providing a moderate boost to sunlight tolerance, this will incentivize players to transition away from single-layer membranes, which I think is important to encourage players to eventually move away from as they get more complex.

Melanin - A dedicated part to sunlight accessible to all cells, these can be a very accessible way to gain tolerance to sunlight.

1 Like

Alright so after reworking the GDD a little bit, I’ve decided I wanted to approach this concept once again, but this time my intent is less about bringing new ideas to the table, and more about narrowing down our scope in preperation for an initial implementation of the feature.

I find myself largely in agreement with the above write-up by Deus. Though I feel it could be taken in a different approach. So the following post assumes things will be roughly moving in that direction mechanically.

For sake of balance and prototyping, I think it best to start small and simple so we can get a feel for how environmental tolerance will play out for both the player and autoevo. Atmospheric gas tolerances should be left out until after dynamic compound changes are implemented and balanced. And adding too many environmental conditions at once may be a lot of work for a first prototype, especially if we decide to omit certain conditions.
As such, my focus will remain on two constant and stable conditions in the environment; Heat and Pressure.


Temperature:

Likely the most variable of abiotic conditions, temperature has a range of both extremes in Thrive. The larger a cell is, the more temperature can impact their livelihood, and thus living within extreme environments can be very difficult for anything but the simplest extremeophiles.

I am personally unsure what the basic ideal range without adaptations should be, so after some brief googlefu I am going to assume an ideal range of 5-30C for all non-adapted life. Once outside this range, penalties will begin to apply, which means that outside of a few surface patches, larger organisms may need to make a few special adaptations to truly Thrive.

In life, temperature plays a major role in the metabolic rate of species. So outside of your ideal temperature range, your processes should probably slow in Thrive too. This can be done by adding a modifier to the process speed value of processes. It will likely be best to start with increasing by 0.002 increments for every digit outside of ideal tolerance. Glycolysis would be running at 86% speed in the vents.

However, should this prove to be difficult to balance, or otherwise difficult to implement; We can always fall back on the standard of increased osmoregulation cost.

Pressure

Unlike other conditions, pressure is the least likely to change outside of moving between patches. It becomes less extreme the closer the player is to the surface, becoming an excellent motivator for pushing players to surface environments (And closer to where they need to be to progress) as they become more complex.

The basic ideal range shall be 1-30 bar, with any deviance outside of this range providing a 0.001 increase to the overall multiplier to what size contributes to osmoregulation.
Outside of the aqeous environment, I suppose it becomes inverse, with a range of 1-0.5 with similar extremes of scaling. But that’s a problem for later down the road.


Starting in the vents, these conditions might be substantially restrictive to cells any larger than a small little bacteria until they evolve the right adaptations, which is precisely what we want. To thrive in such a hostile environment is to adapt and specialize for it, otherwise you best make your way over to calmer climes.

Whatever the case may be, I think it best to prototype this feature and get a feel for it so we can better decide on it’s future.
Once we get a prototype going, or perhaps just later, I’ll need to get around to determining hints and identifiers for communicating to players the importance of conditions. I believe the editor helper will be of great assistance at this point, as well as additional conditional identifiers per patch.

To summarize:

Temperature:
A * (1 - B) = Final Process Rate
Where A = Initial Process Rate and B = additional 0.002 per value beyond range of 5-30.

Pressure:
Size * (1 + A) = Osmoregulation Modifier
Where A = additional 0.001 per value beyond range of 1-30.

Note that these values are not to be considered final, and are just to act as a starting point for initial implementation and testing.
I would like to hear everyone’s thoughts on this.

1 Like