Environmental Tolerance Adaptations

Oh that’s strange, because I could’ve sworn Light has been planned as an environmental variable/hazard for the Microbe Stage since the start of the project. Plus there’s actual scientific evidence of it as a hazard, which I covered in this thread:

Basically before the development of an ozone layer for your planet, the deep sea is the only place life can survive and evolve away from the deadly radiation of sunlight.

I was worried about that too, but I realized the other day that some of these variables don’t change much from patch to patch. For example, salinity will almost always be the same in all ocean patches (typical saltwater levels), and the same in all river/lake patches (freshwater levels). Then, the one exception to this would be rare patches like a salt sea / salt lake where it would be very high. pH / Acidity is another one that mostly won’t change except for rare examples.

I know very true, I know one of the aspects that added at least an hour to my latest Microbe Stage playthrough was trying to migrate from the Hydrothermal Vents to the Tidepool, and the challenge kept me hooked to keep playing every time I died trying.

1 Like

Wiki page updated!

If you look under “Habitability”, it shows the list of starting environmental tolerances for the original species on a typical Earth-like planet. Then below that it shows the penalties for each variable for being outside of your range.

Because of the progress we’ve made in the discussions in this thread and the Differentiating Microbe Biomes thread:

I will be able to update the Environmental Variables for all the game’s biomes soon, but this will be meaningless for now until we code in the penalties. We can also start discussing what the different editor adaptations will be that will allow cells to survive different environments. Here’s a list from the Differentiating Biomes thread:

Temperature

  • Heat Resistant Proteins
  • Antifreeze Proteins
  • Cell Wall (Cellulose, chitin, silicate, etc.)

Pressure

  • Higher/Lower Internal Osmotic Pressure
  • Contractile Vacuole
  • Cell Wall (Cellulose, chitin, silicate, etc.)

Light

  • Pigment Proteins
  • Cell Wall (Cellulose, chitin, silicate, etc.)

pH

  • Acid Neutralizing Proteins
  • Alkaline Neutralizing Proteins
  • Cell Wall (Cellulose, chitin, silicate, etc.)

Salinity

  • Halophilic Proteins
  • Cell Wall
2 Likes

It’s been a while since we last touched on this topic. I figured it would be a decent idea to go ahead and further this discussion by proposing more specific stats to start with for how parts will modify a cell’s tolerance. As well as to provide some insight on how the tolerance stats could be handled.

Organism Tolerance

Variables:
Most tolerance stats will possess two independent variables that will determine the organism’s range of tolerance. For example, a species could have a high heat tolerance, but a low cold tolerance. (5C/57C). Different parts could adjust either or both of these variables in different ways, ensuring a more dynamic approach to adaptation. We will have to think about how best to display this information to the player, as well as to properly communicate how parts will change specific parts of these ranges.

There are of course, some environmental variables that won’t fit within a tolerance range. Hazards such as radiation (I think simply replacing light with radiation as a hazard would fit better.) will just have one variable that represents a cell’s maximum tolerance. This should be relatively easy to understand and convey to the player compared to the range variables.

Efficiency:
Efficiency will be a new percentile value that determines a part’s current level of function in relation to a cell’s current environment. This variable should work much like the light and oxygen requirements many parts possess, but at 100% scaling. That way, if a cell is at 50% efficiency, their parts will be halved in function. Whenever a cell is outside one of their tolerance ranges, this value will be reduced, handicapping their processes as a result. This should also allow players to easily understand how well their cell is going to function when comparing patches they want to travel to.

Membrane Tolerance:
Membranes can have more situational value and use by having an effect on a cell’s tolerance. I will list my proposed values below. Note that the left number is minimal and right is max tolerance in the case of ranges. (Minimum/Maximum). Also note that I am entirely unsure of the accuracy of pH tolerance on the different membranes. (I do at least recall that diatoms are sensitive to pH so I intend to reflect that with the silica wall.) So I would like to request our theorists to help me out with this whenever possible.

Single Membrane:
Temp: -5C/+5C
Pressure: -50atm/+50atm
Radiation: +0
pH: +0/+0
Salinity: +0ppm/+0ppm

Double Membrane:
Temp: -10C/+5C
Pressure: -50atm/+50atm
Radiation: +5
pH: -0.1/+0.1
Salinity: -500ppm/+500ppm

Cellulose Wall:
Temp: +5C/+5C
Pressure: +150atm/+150atm
Radiation: +20
pH: -0.5/+0.8
Salinity: -500ppm/+500ppm

Chitin Wall:
Temp: +0C/+5C
Pressure: +150atm/+150atm
Radiation: +10
pH: -0.8/+0.5
Salinity: -500ppm/+500ppm

Calcium Carbonate Wall:
Temp: -15C/-5C
Pressure: -50atm/+100atm
Radiation: +15
pH: -0.1/+0.3
Salinity: -500ppm/+500ppm

Silica Wall:
Temp: +5C/+15C
Pressure: +200atm/+500atm
Radiation: +15
pH: +0.3/-0.1
Salinity: -500ppm/+500ppm

Parts and their effects:
Aside from specialized parts, some parts should be able to provide species with bonuses relating to their functions, such as chloroplasts providing some amount of radiation resistance.

Metabolosomes:
Temp: -0.5C/+0C

Mitochondria:
Temp: -1C/+0C

Thylakoid:
Radiation: +1

Chloroplast:
Radiation: +3

With that out of the way, Please remember that these values are simply something to start with should we choose to implement this feature. I am open to discussing them, and would like to hear what everyone thinks. The bulk of a species’ tolerance will likely mostly be determined by dedicated parts, which I intend to go into at a later time.
I am also considering that instead of certain parts having a set bonus as I listed above, that they could be modified via organelle customization to sacrifice main functions in return for tolerance. (Such as metabolosomes being less efficient in return for producing heat.)

Edit: I have chosen to go ahead and look into specific values for the environmental attributes for each patch. I did some miniscule research on the matter to make sure the values are at least somewhat within the realm of reason and not just conjured from nothing, but I would feel more comfortable once a Theorist has approved of them.

Edit: Turns out I am blind and completely failed to notice that Nick appears to have already worked out the biome stats of each patch type so just disregard everything below this. :l

Patch Conditions

Below is a list of average and initial values for the corresponding patch types.
For now, consider light level as synonymous with radiation level until we discuss how radiation should function in Thrive.

Vents:
I believe the average temp for vents should be a little lower. This is because the vents have a drastically different temperature compared to all other patches which would make it difficult for species to transition between the locales. We can still have high temperature zones localized within the patch, but overall I feel it should be more lenient.
Temp: 54C
Pressure: 300 Bar
Lux: 0%

Sea Floor:
Why are the depths of the vents and seafloor different? Rather awkward how the player must go deeper before reaching the ocean surface.That’s probably more of a connecting patch issue though.
Temp: 4C
Pressure: 500 Bar
Lux: 0%

Abyssopelagic:
Temp: 2C
Pressure: 550 Bar
Lux: 0%

Bathypelagic:
Temp: 4C
Pressure: 200 Bar
Lux: 0%

Mesopelagic:
Not sure why it is colder in this patch, I would personally keep the temperature at least matching the Bathypelagic or warmer. But I will leave it unchanged as I don’t know any better.
Temp: 2C
Pressure: 50 Bar
Lux: 5%

Cave:
Temp: 23C
Pressure: 50 Bar
Lux: 0%

Epipelagic:
Temp: 8C
Pressure: 10 Bar
Lux: 100%

Tidepool:
Temp: 23C
Pressure: 1 Bar
Lux: 100%

Coast:
Temp: 17C
Pressure: 10 Bar
Lux: 100%

Coast:
Temp: 17C
Pressure: 10 Bar
Lux: 100%

I would like to post an idea of @Maxonovien’s here for future reference.

Instead of the local oxygen level directly debilitating cells when they are present in the patch, oxygen would instead slowly seep into the cell and be “stored”. The oxygen would be of little concern to the player until it begins to reach critical levels in the cell, and so the mechanic effectively becomes a timer of how long the player can safely last within the patch before they begin to experience debilitation.

As Max put it, there would be two primary strategies available to avoid critical oxygen intake;

  1. absorb as little oxygen as possible (limiting your absorption for every compound, including oxygen)
  2. Use as much oxygen as possible (having organelles process it before it builds up, and requiring more osmoregulation).

This would provide further strategic emphasis for the various membrane types by giving absorption rates a more meaningful impact on gameplay.

However we still need to consider how this will effect photosynthetic species and how they will vent excess O2, as well as what debilitations players experience when at critical oxygen levels. As well as if the mechanic would be too much for players to worry about or not.

It would also be nice to receive input from our theorists in regards to how realistic this mechanism would be.

4 Likes

Okay although I had initially mentally classified this as a future feature to tackle, after discussing Auto-Evo performance on discord with some of the devs I realize that Environmental Tolerance is actually a critical system to get into the game as soon as possible. Here are the reasons why:

Without it, Auto-Evo has no natural reason to diverge new species and we have to do it randomly.

In real life, the reason species diverge is because of different geography and climate, that forces organisms in one biome to adapt to their local environment and change from their ancestors in the biome they came from. However, since we don’t have environmental conditions affect your cell currently, this does not occur in the cell. Instead, the game simply randomly splits species by just rolling some dice. This leads to species divergences that don’t make sense, and too many species in harsher environmentals (which reduces performance).

It is an important feature for all future stages literally until the end of the game, and is a necessary feature to complete before we can move to developing later stages.

Considering we want to wrap up the “bones” of the Microbe Stage as soon as possible to start working on later stages, it’s important to realize what are the remaining fundamental features we have remaining before we can refocus our main focus to later stages. Again, environmental conditions affecting different species differently is so important that we can’t build realistic future stages until this is implemented.

It adds an extra element of decision-making to migrating between patches.

Currently you can spawn in as the LUCA cell and just reproduce in 30 seconds, migrate, reproduce, migrate, until you get to the biome you want to get to. But real life doesn’t work like this, and migrating to new patches should be a tradeoff. Yes there are new and unexploited resources, but you will also be less adapted to living there. This is one of the fundamental problems of the game, even translating to the Spage Stage where you may want to colonize a new alien world with rich mineral reserves but a toxic atmosphere. So adding the Environmental Tolerances feature should also make planning your migrations and mutations more fun.

For these reasons, I want to finalize the concepts around Environmental Tolerance as soon as possible, document the design decisions on the wiki, and then queue it as a feature I will work on after I finish some smaller initial ones to become familiar with the codebase.

What I want to do in this thread

  1. Finalize the environmental stats of each biome. This is already mostly done and just needs to be documented on the wiki.
  2. Finalize the concept of how intolerance to environmental conditions will affect your cell.
  3. Finalize a list of organelles/mutations that cells can evolve to tolerate these different
  4. Create a roadmap for implementing the feature. The easiest is likely to start with implementing only a single condition, such as temperature, and its associated tolerance mutations, and then incrementally add the rest.

1. Finalizing the environmental stats of each biome

The stats are listed in the wiki page here: Microbe Biomes - Thrive Developer Wiki

I’ll do a look through and see what I think, and post any suggestions here. We can discuss them, and then create a final list and put it on the wiki.

2. Environmental intolerance effects

We put the initial tolerances here: Microbe Biomes - Thrive Developer Wiki

However, I think this is actually not accurate for LUCA. According to research that both Deus and I have done, it seems that the first organisms were thermophiles (adapted to higher than normal temperatures) and perhaps extremophilic (adapted to abnormal ranges for other variables too) in other ways as well. I’ll go through my sources and post what I think ought to be the most accurate starting tolerances for LUCA.

We also put the penalties a cell will suffer for how much out of its tolerance range it is in the same link. However, I think I now disagree with these suggestions. Although I initially felt that reducing the processing speed of all organelles was the most realistic, I don’t think it actually is. As far as I know, the membrane will work proportionally harder to keep the internal environment of the cell the same even if the external conditions are even more extreme, so it’s really only the membrane that bears the brunt of a hostile environment. As such, I think that the best thing to do is to just make hazardous environmental ranges increase ONLY your Osmoregulation Cost. This accomplishes a few things:

  • It is an easy penalty for the player to track. The player can easily calculate how much extra ATP cost they must sustain to move to a new patch, instead of trying to recalculate the new and reduced output of ALL of their organelles.
  • It allows for organisms to colonize environments that they are only somewhat adapted to. Since the only penalty is an increase to Osmoregulation Cost, it’s very possible that a cell migrating there will still have a net positive ATP balance even with the penalty, and as such will be able to colonize and exploit the patch. The species will have a big incentive to evolve tolerance to the local environment though if he wants to remove this penalty, but this will then make him less adapted to his home patch (which could lead to the two groups of cells diverging into different species).
  • It allows for two different strategies to environmental tolerance. One is to obviously evolve specific adaptations to whatever local hazard is in that patch (let’s say high temperature). This is easy to do but makes you specifically adapted for only high temperature patches. HOWEVER, another is to evolve to have a really efficient cell with a really high ATP balance. This is much harder to do, but allows your species to survive much more hazardous environments that they are not adapted to simply because they produce so much ATP that they can just constantly work their membrane to keep themselves protected from the environment. This allows for species adapted to several different biomes to emerge, but again it will be hard to do since you will need a large ATP surplus, so you will likely have to be dominant at the niche/energy source you consume.
3 Likes

This needs to depend on the starting patch. For warm pond it needs to be different and for panspermia the game needs to actually make it so the player doesn’t just immediately lose.

1 Like

I’ve since drifted to this same conclusion myself as of late. It’s simple, concise, easy to understand, and realistic.

I think it wise we just focus on a few basic conditions first as a way to dip our toes into the system. Temperature and perhaps oxygenation are both good conditions to start with. Parts that consume oxygen can potentially provide a measure of oxygen resistance, while certain upgrades to metabolic parts could provide more tolerance to lower temperatures.

In the future, this could be expanded upon depending on our finalization of concepts such as the passive proteins system which could have a huge bearing on this feature.

3 Likes

Good point. I’ll focus on defining the starting stats for the Hydrothermal Vents start first, then I can go back and fill out the others.

Actually I think oxygenation is so unique it warrants an entirely separate discussion. I have many thoughts on how that could be implemented, since it seems oxygenation in nature affects many aspects of life.

But yeah I think temperature is a good one to start with, since I think it’s one of the environmental variables with the most observed real-world data. I’m going to do some research and write up a list of all the biomes, what their temperatures should be, and also a list of temperature adaptations for cells.

Wait sorry, remind me what is the passive protein system again? I couldn’t find the thread on it.

EDIT: Oh nevermind found it. Could you clarify what you mean though? As in that environmental tolerance adaptations would be a good candidate for being passive proteins?

I was focusing a bit on summarizing, reviewing, and presenting a unified concept for environmental conditions when I realized something.

It honestly is a bit difficult to conceptualize things for the microbe stage because of the very abstract nature of the patch map. We have a pretty good concept for how we will be dealing with the patch map in the macroscopic stages so I am not worried long-term. But in the short-term, it can be a bit awkward balancing environmental tolerances. For example, look at this patch map:

There are some pretty dramatic shifts in environmental conditions displayed here. If you started at the hydrothermal vent at the bottom-right and transitioned out of it, you would have two, maybe 3 patches to interact with due to your adaptation to pressure. Transitioning to the Mesopelagic patch (below the ice shelves) would give you one habitable patch since you aren’t adapted to the cold, and aren’t adapted to the high pressures which you escaped. And then transitioning to the cold (which is the patch from which you are able to access different clusters of patches here btw) would then limit you to one patch again. If you make it to the shallow sea patch in the middle, you will then have a few more options to spread to since surface patches are more uniform. However, for other patches, you are very limited.

This limitation isn’t in itself necessarily a bad thing (geographical/environmental barriers are very important aspects of species divergence) but it complicates things in terms of balancing environmental tolerances. Small shifts in your habitable ranges via organelles, such as we have conceptualized in the upgrade/modification concept, are useless if we have such dramatic shifts in temperature and pressure; the player would need huge and instant changes in environmental tolerances to move anywhere. It also means patch migration would have to be thought over since you’d essentially be forsaking your older population to death once you switch patch types.

We can dramatically increase the number of patches to include a better “gradient” of environmental conditions, but that could make auto-evo take a very long while (which to be fair is something we’ll want to deal with in the long-term). We can also eventually implement Buckly’s more elaborate patch map concept:

But I would like to preserve the mental health of our programmers after having just so recently found a satisfying short-term conclusion to our patch generation questions.

What do you guys think? Am I overthinking things? I guess we could theoretically just bump up the modification values for what we have conceptualized so far. But would that be the ideal gameplay experience?

EDIT: not quite sure why two photos aren’t being displayed on my screen. Is this the same for you guys?

1 Like

I’m not sure if it has been mentioned yet, but environmental tolerance could be a slider like behaviors found within the editor. Also, I feel that a cell should have a lower health pool if it is in areas outside of its environment tolerances. While this isn’t totally accurate to science per say, it should be easier on the player to deal with and could even be a way for people to make games intentionally harder for themselves.

1 Like

Sorry for not replying to this sooner, I had forgotten about replying until now.

For both performance and simplicity reasons, the amount of regions and patches should remain fairly limited in number. A healthy quantity probably being about 1-3 per sizable continent, or ocean. On a small world, this would probably result in about 8-10 regions in total. Each region would probably contain about 4-5 patches. This would result in about 38 patches in total which is about the same amount as the current game, and can be fairly intensive to process for autoevo as is. With few exceptions, most patches within a region should also have a similar range of temperature.

This might not leave too much room for a particularly smooth gradient, so to deal with this problem it may be best to make environmental tolerance non-problematic for most species, and instead more of a factor of efficiency in all but the most extreme cases.

Being outside of your tolerant range should not out-right kill you (Unless the difference is very extreme), but instead increases the cost of osmoregulation. This means that as long as you aren’t very specially adapted to a specific environment you should be able to safely migrate to a new one. You may not be able to thrive as well as your previous home, but you can still survive to move on or further adapt to this new climate.

This means that as long as a species has sufficient excess ATP production, they should be able to survive in a non-ideal environment just fine, but may have trouble competing with the species already adapted to it.

I think that in theory, this method should work just fine as it encourages adaptation to an environment, but doesn’t prevent relocation when needed or desired.

2 Likes

I wonder, then, if we should rethink how we approach adapting to environmental ranges. For example - maybe instead of having a discrete continuous spectrum of temperatures ranging anywhere from 0 to 100, and having players match up their tolerance ranges to their preferred range of numbers, we should have more abstract “categories” of environmental spectrums. So for example, instead of having temperatures be 35-45 C for a very arid environment, we would just refer to that patch as “Very Hot” (we could have course add discrete temperatures as flair but the idea is balancing around categories rather than numbers). It sounds like a very subtle difference, but I think this line of thought could be easier for us to deal with.

For example, instead of temperatures ranging from something like -60 C to 40 C, we could just have broad categories on a spectrum:

Very Cold: Represent the coldest, frozen regions on a planet, like ice shelves and the poles
Cold: Represents colder regions like tundras and taigas
Average: Represents more temperate and common regions, like grasslands, forests, and certain coasts
Warm: Represents warmer regions like savannahs and tropical forests.
Very Warm: Represents the hottest regions on a planet, like deserts.

Then, instead of players (and ultimately us) worry about the gaps between patches, crunching all the numbers via very slight modifications, defining exactly what discrete temperature range you want, etc., they just have to make sure they are within their preferred ranges. This can also help us make a better modification system that is more cognizant of the wide gaps between patches.

For example, instead of having it so that the player must edge closer and closer to their preferred temperature number range and checking that preferred range every time a player makes a move, having these categories gives the player more options as long as they meet a basic threshold of matching their preferred habitats. Instead of the player having to reach, say, -5 C to enter the polar regions from their preferred range of 10-20 C, they just have to reach Cold/Very Cold and they’d be set.

A few other things I noticed: first, this can help us differentiate between marine and terrestrial temperatures, as there is much less extreme temperature fluctuations in water biomes (“Very Cold” water is different from “Very Cold” land, and that might have been an awkward thing to help the player understand purely via math). Second, discrete numbers might be generally be a bit unnecessary since overall, patches of the same kind have similar conditions, so the exact decimal value of temperature isn’t really essential as information to the player. And third, this lets us more easily deal with barriers and penalties for environmental conditions. For example, perhaps the player prefers very cold environments but makes it so they can do well in cold environments too. Perhaps the player wants to remain around average but have the option of entering warm environments. This I think is better to conceptualize and design around than “preferred range of 10-20 C, okay performance in 5 - 25 C, anything beyond that is blocked”.

Sorry if this isn’t exactly clear and a bit rambly, I didn’t explain the logic well because I’m a bit busy as of now (I can sound more articulate later if the discussion continues). But I hope others can see how a categorical approach to environmental tolerances could be much easier to deal with than a discrete approach.

1 Like

I think from a gameplay perspective this is about the right way to think about it. But for planet simulation I think we’ll have to have accurate numbers anyway for that to be possible so the game would still know the exact temperatures. But I agree that it’s probably much more productive to determine abstract gameplay value ranges in this kind of early discussion (before implementation is even close) and talk using those. Then when it is actually closer to being done mapping value ranges to the abstract categories can be done.

2 Likes

Let’s hash out a conversation using environmental tolerances categorically in accordance to the above logic. I say first order of business is agreeing upon some rough estimates for what environmental condition ranges should count for what categories by going through each one.

Then we might want to start a discussion regarding general principles for general principles regarding environmental conditions, which can help us answer questions like: how will the player have sufficient environmental tolerances as a single tile of cytoplasm? How will we be cognizant of the fact that different organism body plans require different coping mechanisms in face of the environment? How will we adequately balance patch movement if the player has to kill off their existing population to move into a different biome? That should then give us a pretty good understanding of how we can balance and integrate changing environmental tolerances within Thrive.


Some Environmental Factors to Consider

Question

  • Should we outright lock players off from moving to environments way out of their tolerance range? For example, should we block players adapted to temperate environments from going to extremely cold environments? Or should we make the player learn to organically avoid these areas? The latter would be a strong reinforcer of making the player be responsible for themselves, but it might be frustrating to spawn into the environment and have absolutely no chance of survival, quickly dying.

Pressure: Pressure will obviously differ depending on the depth at which your organism is adapted to live in.

I’d say pressure should have the following categories: Low, Medium, and High. Low pressure includes the Epipelagic and Mesopelagic Zones, which includes frozen shelves, estuaries, and tidepools. Medium Pressure includes the Pelagic Zone and Hydrothermal Vents. And High pressure includes the Abbysopelagic Zone. Caves will vary depending on their depths.

Eyeballing these estimates, perhaps adequate rough estimates of pressure ranges can be…

  • Light: 0-800 meters
  • Medium: 800-3000 meters
  • High: 3000+ meters

NOTE: we might introduce a “Very Low” pressure category if we implement high-elevation environments in the macroscopic stage, though this is very far away.

Temperature: Temperature can vary dramatically in an ocean across various depths. Seafloors can approach or even exceed freezing temperatures (a higher concentration of salt prevents deep seawater from freezing). Temperatures don’t vary too much in an ocean at the same depth as they might on land, though temperatures plummet as you approach the poles and increase as you approach the equator.

I’d say categories should include Very Cold, Cold, Temperate, Warm, Very Warm. Very Cold includes frozen regions, and perhaps some abyssopelagic zones. Cold includes the pelagic zones. Temperate can include epipelagic and mesopelagic patches. Warm includes shallow seas and estuaries. Very warm includes tidepools and hydrothermal vents.

With that in mind, these can be rough estimates…

  • Very Cold: Less or equal to 0 C.
  • Cold: Warmer than 0 C, colder than 13 C
  • Temperate: Warmer than 13 C, colder than 23 C
  • Warm: Warmer than 23 C, Colder than 33 C
  • Very Warm: Warmer than 33 C

Salinity: Salinity can vary across different regions of seawater. Though this variability is not enough to make certain regions of saltwater inaccessible to most aquatic animals, it can induce subtle osmoregulatory stressors on life. Surface waters are typically more salty than deeper waters due to evaporation - the same is true of cold, polar water and warm, equatorial/tropical waters.

We want to represent the switch between freshwater and saltwater. That can be pretty simple in the Microbe Stage, where we can just introduce a specific part or something which signifies a switch to freshwater.

Regarding this variability in saltwater bodies, I think it’s fine if salinity isn’t a huge constraining environmental factor for the Microbe Stage beyond the freshwater/saltwater divide. Salinity could just be represented by a value with some slight variation across different patches. A higher salinity can make osmoregulation more costly. However, this can be compensated by an increase in phosphate/ammonia within the patch, justified by the fact that a greater concentration of salt likely is paired by a greater concentration of other important nutrients. So it can be a choice for the player to make - is taking on more osmoregulatory costs worth the easier access to nutrients?

Oxygen: The evolution of oxygenic tolerance will be a very important phenomena to represent in our simulation; planets will begin anoxygenic, but photosynthesis will introduce oxygen, aerobic respiration, and thus, the need for oxygen tolerance.

I think oxygen is fine to represent numerically without diving into categories since I think it can be easier to keep track of. I also think that this oxygenation discussion should be its own thing since it will be so numerical and rather difficult to conceptualize without actually doing.

This is a list of currently described environmental conditions attached to different biomes. Note that a list of this can also be found in the Developer Wiki (Microbe Stage Appendices - Thrive Developer Wiki), but this list is more relevant to our current discussion. Also note that salinity isn’t described in every biome due to the fact that it will have some variance according to the above concept - I only mention salinity when I am noting which patches will likely have higher salinity on average.

  • Hydrothermal Vents: Very Warm. Medium to High Pressure. Average Salinity
  • Abyssopelagic (Ocean Floor): Cold. High Pressure. More Salty.
  • Bathypelagic (Mid-Ocean): Cold. Usually Medium, Sometimes High Pressure.
  • Mesopelagic (Sub-Surface): Temperate, Sometimes Cold. Light Pressure.
  • Epipelagic (Surface): Sometimes Warm, Sometimes Temperate. Light Pressure.
  • Coastal: Usually Warm, Sometimes Temperate. Light Pressure. More Salty.
  • Caves: Dependent on conditions of parent patch.
  • Shelves: Very Cold. Light Pressure. Less Salty
  • Estuary/River: Warm. Light Pressure. Freshwater or Minimal Salt.
  • Tidepool: Very Warm. Light Pressure. More Salty.

A question to consider: I previously thought that simulating sunlight tolerance would be a bit unnecessary since I felt that it would overlap a lot with pressure tolerance. But do you guys think we should include it? Looking at the list, I can see an argument for it.

Also, should we simulate acidity? It would probably be similar to how we deal with salinity if implemented.


General Principles

As Mass Increases, Environmental Tolerance Range Decreases

Many of the most extremophilic organisms are small and simple, such as Archaea and other prokaryotes. For example, the vast majority eukaryotes inhabit relatively “average” environments and are anaerobic. The latter fact is largely to do with the fact that oxygenic metabolism is the most powerful form of energy production available to life. As to the former, @Bird notes that for more complex organisms, it can become a lot harder to specialize around extreme temperatures with so many moving parts. For example, eukaryotes have various incredibly complex enzymes and proteins necessary for functioning which have very specific preferences in terms of environmental conditions. Imagine this compounding for multicellular organisms, who must ensure that every part of the colony survives.

In terms of gameplay, this can mean that as your organism increases in size, you will have less of an inherent tolerance to certain environmental factors, hence necessitating the placement of more dedicated parts. This can effectively mean that eukaryotes will have to spend more energy adapting to an extreme than a prokaryote might, and the same for larger eukaryotes/multicellular organisms and smaller eukaryotes. This can also slide into how we deal with the fact that LUCA will have to have extreme environmental tolerances despite lacking any specialized adaptations.

Surface Area and Volume

More on this here: Surface Area, Volume, and Ratios - #8 by Buckly

While surface area and volume are still being brainstormed about, they have strong effects on environmental tolerances. A higher surface area to volume ratio means less resilience in the face of environmental extremes. Think of a deciduous leaf vs a coniferous leaf - it’s skinnier, meaning less captured light but less of a chance for a flimsy structure to freeze over.

Conclusions…

What will this mean for Thrive?

We generally want smaller and more compact organisms to be a bit more resilient to environmental extremes. Organisms with less surface area in comparison to volume and organisms with less mass will do better in extreme environments, such as the depths, vents, and shelves than with higher surface area to volume ratios and larger organisms. In the Microbe Stage, this will effectively mean that prokaryotes will be more capable in adapting to the environment than eukaryotes. In the macroscopic stages, this will mean that players will have to adjust their morphology to live in their preferred habitats.

I think this can be simulated by just decreasing the “steepness” of the ATP debuff outside of a preferred environmental range for smaller, more compact organisms. For example, a tiny prokaryote slightly out of its preferred habitat will receive a +2 osmoregulation cost increase, while a large eukaryote would comparatively receive a +10 osmoregulation cost increase. This could part of how we address the Thrivian “LUCA having no adaptations yet being perfectly adapted to extreme environments” paradox.

This will probably mean that most players will drift towards the surface patches as they increase in complexity, which is completely okay. Complex macroscopic life probably started in shallow, oxygen-rich waters: Shallow Waters Allowed Early Fish-Like Creatures to Experiment With Evolution.

How Will We Deal With Patch Migration?

Here is an important question to answer: how will we address patch mobility when we begin simulating environmental tolerances? Right now, you move with a small population into a new patch, from which you can grow a new local population. If you die out in a local patch, you get to choose any of the patches your species currently inhabits.

How will this logic work with environmental tolerances? Wouldn’t the player basically be hurting their original population if they decide to change tolerances and biomes? I guess this would be balanced enough if you move between two similar patches, but what about transitioning from one extreme to another? For example, transitioning from a vent to an abyssal patch, or transitioning from a surface to a polar patch? Perhaps successfully reproducing in a new patch can give you the option of migrating the majority of your species in a former patch to the new one?


If we agree on things related to the above ideas discussed, then I think we will have a very solid understanding of how to simulate environmental tolerances for the rest of the “biology” part of Thrive. Then, we can focus specifically on exactly how players can adapt to these conditions. I think the question for that is considering whether or not we want to have environmental factors be completely dealt with via placing down parts, or have sliders in the membrane tab as well.

Once that is decided, I think we’ll finally have a cohesive plan for replicating a phenomenon as complex as simulating the ways in which life adapts to its environment.

Also, if it is possible to adapt to no longer being suitable for none of the environments the player is already in (by for example trying to adapt to a new environment which the player also isn’t fully yet adapted for), that one choice would result in game over.

I assume that is a typo and should be “temperate”

At least for the memes it would probably be quite popular with players if we include the phrase “the sun is a deadly lazer” somewhere.

Shouldn’t there be an extremophile temperature? I remember reading somewhere about some very special microbes that can live in boiling temperatures, and that made them very special.

2 Likes

I think we’re heading towards a patch migration logic revamp anyways with the introduction of environmental factors since that will be such a fundamental change to the constraints placed on players. Players will have to be a bit more deliberate and thoughtful with how they manage movement and population densities across their inhabited patches since they will be occupy far fewer patches than they do now.

So I think we’ll have to be a bit more deliberate in giving players the tools to deal with this management of population. Options like “move 50% of patch population to new patch” and the such will likely be ways players can better deal with moving to new environmental conditions.

If nothing else, I think it could be okay if we give a 1-turn “grace period” of sorts if the player has adjusted their environmental tolerance ranges and moves a patch, where the auto-evo effects of environmental conditions are slightly diminished in effecting the population of the patch you migrated from. This can allow a player to settle a new patch then decide in the next turn if they want to continue the move to that new patch/biome or revert changes and remain in their old environment.

Though that could theoretically lead to a player continuously moving between two different patches to exploit this grace period, if we make it so that environmental tolerance ranges are decently expensive to maintain, that could be minimized. Or if we do something like a cool-down for this grace period. This would be a pretty gamey abstraction, so if we can figure out a more “organic” solution then that should take priority.

Alright, I’m convinced for now.

That was what I was attempting with the “Very Warm” category, though I realize now that a threshold of 33+ isn’t really an extreme temperature at all. I guess then we should introduce an “Extremely Warm” category that includes temperatures of 50 C+. This would realistically only be allowed for prokaryotes and small enough eukaryotes, and thus would be a Microbe-specific environment.

2 Likes

I continue to stand by a simple increase in osmoregulation cost or something similar that scales increasingly larger the further you are from your ideal conditions.
This allows species to reach outside of their comfort zone and adapt to new environments as needed, providing the freedom of movement a species needs if they are for whatever reason pushed outside of their ideal habitat. Of course, extremes could still probably instantly kill a species, so we would need to issue a warning over patches the player cannot inhabit in any feasible way. (Hey going into this region will kill you, proceed?) This could be done by calculating if a player still produces enough ATP to sustain themselves in that patch, exactly how the balance bar operates.

Naturally, when a species moves from their original habitat to a new one and adapts to their new environment, this almost always leads to a speciation event in time. This would mean that if the player ended up doing this they would be leaving their original population behind… Which is problematic in Thrive due to how population is currently your survival score.

We could work around this by migrating the player’s population in other patches towards more hospitable regions when they can no longer survive them. The player’s total pop would still take a hit probably, but it wouldn’t make them start over!

Edit: I see you’ve already touched upon this conclusion in a reply to hh now, nice.

2 Likes

Oh yeah, I agree with this. I was just wondering if we should restrict players from environments where they would instantly start dying from this mechanic and such.

I wonder if we could color code patches a bit. Patches with a red overlay on them indicate patches where your metabolism doesn’t allow you to survive in them, and patches with an orange overlay on them indicate patches where your metabolism is effected, but you still could feasibly survive?

1 Like

I think something like a glowing border would be pretty nifty to help players quickly find habitable zones.

Hard to say if we would want to restrict players from uninhabitable zones though… You never know if we might add a mechanic where players can seek refuge or utilize the environment in some way to survive (if just barely) enough to at the very least pass through a patch in their way.
That might be pushing it though…

It’s also worth noting that we already allow players to exit the editor despite having a build 100% likely to die…

I think that’s starting to be a bit too many borders, as we already have the actively selected, player is currently here, and “you can move to this patch from the selected patch” borders. Something like an icon saying the player can’t survive in a patch or a colour filter on the patch icon, would be better to avoid adding one more border colour which players will ignore (I’ve noticed the “you can move to this patch from the selected one” is very easily ignored).

2 Likes