Environmental Tolerance Adaptations

We actually did have an enzyme slot system concept a loooong time ago and I was actually a big proponent of it, but concerns over how it would connect to the rest of the stages and level of control offered to the player through this system were concerns that prevented us from considering it further. What game were you playing though?


Another question, this time related to sunlight. It would probably be something best represented as a toggleable button outside of tolerance inherently given by photosynthesizing parts, since the jump in sunlight level go from 0-1%, then 50%, then 100%, then 200% at peak. With a toggle like this, it would probably best to have it be absolute to reduce the management burden on the player - either you are tolerant of sunlight, or not.

I can easily foresee an issue occurring that, since this isn’t a very dynamic tolerance, a player could easily forget to toggle the button on-or-off depending on their migration, which then results in a frustrating spawn and death. I guess there can be an alert, but we already do throw a lot of information at the player in the editor, so another pop-up could be annoying or easily ignored.

Considering that, and considering how flat sunlight tolerance as an environmental factor would be, do you think it’s worth it to have sunlight as an environmental factor in this current stage? I know you mentioned the sun is a deadly lazer easter-egg, but that can easily be fit into the macroscopic stages since sunlight would be more dynamic in those stages (sunlight at different equatorial lines, more refined depth, etc).

Another note: Previous posts had salinity as an environmental factor, but I since then realized what exactly an estuary is (brackish water, mixed with saltwater and freshwater). So in my opinion we don’t need to represent the saltwater-freshwater divide in this stage.

Thus, we could potentially be looking at oxygen, pressure, and temperature as the only environmental tolerance factors to be mindful of in the Microbe Stage. This could benefit us in several ways:

  • Less burden on the player, as they just have to worry about three proxies instead of five or so initially.
  • Easier to manage and balance.
  • Allows us to focus on making those three environmental factors a bit more engaging and polished rather than having several factors serving as very similar.

Exactly why I put that in the toggles category and not the sliders.

Well, this is kind of the most important part of environmental tolerances: how we are going to show the tolerance status of the player to the current environment.

I’m thinking we need constantly on-screen text in the top middle of the cell editor that shows any tolerance adaptation issues. That way the player shouldn’t be able to miss them. We’ll also need a tutorial that points out the feature when the player first experiences it.

I’d throw in the UV protection checkbox to have 2 toggles and 2 sliders as that would be nice looking in the GUI.

Ah yes… This really brings me back. My first official concept for this was the idea of having a separate “gene” tab where you had limited capacity to throw assorted gene of various sizes to grant your cell tolerance.


Yeah, five years ago I used MSpaint for my concepts still. Crazy to think that my earliest multicellular concepts were done in MSpaint as well.

The biggest problem with this concept is defining the exact difference between proteins that would be in the “genome” and what would be in the parts list. As you can likely see from the discussion back then, it got a little… derailed.

These days I am rather hesitant to pick up the idea again as I do not like having to approach defining this distinction again, and would prefer to avoid having too many complex menus for players to need to sort through.

In my mind, players should need only place a couple parts that better allow their organism to survive in an environment. Maybe customize other pre-existing parts to further maximize their tolerance if they want to go further than that.
Just think about how quickly the environment in Thrive can change. Not just over time, but from traveling patches as well.

Think of it this way: When it gets cold, some people want to redesign their house to be better insulated, tap into some kind of solar or geothermal heat pump system, and replace their windows with solid wall. Others just want to throw an electric heater in the corner and call it a day.

In Thrive I intend to cater to these hypothetical archetypes; Basic tolerance increasing parts for the heater people that just want to be done with it, and part modifications for the designer people who want to go the extra mile.

I recognize that this may not be a perfect solution, but it should be a viable basis to start with by using what we already have and avoiding further menu bloat if we can.

I am fully in favor of starting small. Both for the benefit of the players as you have stated so well, and for our own benefit to take things more gradually for sake of better testing.
Later on we can add something like salinity as a factor, but anything more than that might just be unnecessary tedium for the sake of gameplay. Whichever the case, we make that choice when we implement these first three and can then decide if it feels complex enough or not.

I will once again shamelessly plug my editor helper tool concept.
I do agree that having a decent tolerance summary somewhere would be nice. The statistics panel is getting awfully crowded these days… But so is the editor UI overall.

1 Like

Let me post what I was writing as a summary/revision of existing concepts which made me think of those questions - understanding where prior concepts overextended themselves will help us understand what is realistic to include, and allow us to pivot our approach. This was among the messiest of concepts discussed in Thrive’s history, so it’s difficult narrowing it down and finding the ideas that really stick out.


ENVIRONMENTAL TOLERANCE RANGES FUNDAMENTALS

Environmental tolerances work in ranges, indicating a bottom and top amount of tolerance to specific factors. These ranges are bound across a central value, determined by the parts and characteristics of your organism. For example, if you are an organism adapted towards warmer environments, your value would be reflected in a warm temperature, say 30 celsius. Then, if your organism has a range of tolerances represented by plus and minus 5 celsius, your tolerance range is anywhere from 25 to 35 celsius.

Note the difference in terms in the below concept between “shifting ranges” and “increasing/decreasing ranges”. Shifting ranges means the bounds of your tolerance range stay the same, but the average/center value shifts. An increase/decrease to the range means the average stays the same, but the range changes. So if you start out with a tolerance of 5 Celsius with a range of 3 degrees ( 2 - 8 C), a “shift” of +3 would result in an average of 8 C with (5 - 11 C) ranges, while a range increase of 3 would result in an average of 5 C with (-1 - 11 C).

Mass

Players will begin the game generally unbound by environmental tolerances due to the tendency of early forms of life to prefer extreme environments, and to smoothly allow various start positions.

But as mass increases, tolerance ranges will shrink, and will move towards certain values across the environmental factors. This will make adapting to preferred or extreme environments easier as a prokaryote, and harder as a eukaryote. It will also make prokaryotes more frequent and adaptable across different patches, and will smoothly introduce environmental tolerances to the player.

General Expectations

  • Most players will probably be living closer to the surface.
  • The majority of variance in environmental factors will probably be present in temperature.
  • The Microbe Stage will have the most simple environmental tolerance mechanic, reflecting the abstraction of the world, ability of microbes to adapt to various conditions, rapidly shifting environment, and a gradual introduction of game mechanics in the first stage.

ESTIMATES ON PATCH CONDITIONS

I am providing these as a rough estimate for patch map environmental values, providing us some frame of reference. These represent values on a standard planet, which is Earth-like. In the future, our planet generator should handle this smoothly, but for now, these are conditions we should try to shoot for. And, until then, we should probably try to ensure that surface patches within the same cluster don’t have super-dramatic shifts in temperature

Temperature

  • Vents - 80 to 99 C
  • Sea Floor - 3 to -2 C
  • Abyssopelagic - 2 -to -2 C
  • Bathypelagic - 3 to 8 C
  • Mesopelagic - 4 to 10 C
  • Underwater Cave - -1 to 3 C
  • Epipelagic - -20 to 20 C, temperatures below 0 will spawn frozen chunks like those in the ice shelf. Caps shift depending on planet customization.
  • Coastal - 1 to 30 C. Customizing your planet to be warmer will result in the higher cap being higher, and will make averages higher.
  • Tidepool - 1 to 30 C. Customizing your planet to be warmer will result in the higher cap being higher, and will make averages higher.
  • Estuary - 1 to 30 C. Customizing your planet to be warmer will result in the higher cap being higher, and will make averages higher.
  • Ice Shelf - -0 to -50 C. Customizing your planet to be cooler will result in the lower cap being colder, and will make averages lower.

THE FACTORS

Temperature

Temperature will vary and fluctuate on the surface patches, and will be generally stable in deeper waters or in high-temperature environments. Temperature tolerances will shift towards the average temperature of the planet as mass increases, resulting in reduced tolerance to heat and cold.

Oxygen

Oxygen is unique in that its tolerance is represented by a more traditional cap rather than a range, as the “bottom range” would be reinforced by your metabolism anyways.

Pressure

Pressure will only be relevant in deeper patches. As mass increases, pressure tolerance will shift towards 0 bar.

Sunlight

Sunlight will be relatively easy to deal with for most organisms, and will generally be the most avoidable factor.


METHODS OF ADAPTATION

There will generally be two methods of adaptation provided:

  1. Physiological - Through upgrades, membrane choices, and part stats, players will be able to alter their preferences by altering their cellular functions. These represent the most impactful ways to manipulate tolerance ranges.
  2. Environmental Tab - Along with an overview of the player’s tolerance ranges, the player will be offered some controls to allow fine-tuning. These represent options that will be accessible for prokaryotes and less-experienced players, but will become less effective with increased mass, allowing a gradual transition to more intentional design changes.

Dissecting Physiological Adaptations

Inherent Part Characteristics

These will be limited to parts which generally revolve around specific environmental tolerances, and the most commonly-used parts, to reduce the micromanagement burden placed on the player.

  • Thylakoids and Chloroplasts - Shift environmental ranges towards sunlight strongly, and to oxygen weakly. One or two should generally cover sunlit patches for even the largest eukaryotes, though one or two more might be needed to cover tidepools at a larger mass. Thylakoid-bearing organisms will weakly gain tolerance to oxygen, though smaller organisms with chloroplasts might be able to get away with just having chloroplasts.
  • Metabolosomes and Mitochondria - Both boost tolerance to oxygen, though metabolosomes to a lesser extent. Players possessing mitochondria should tolerate most oxygenic conditions.
  • Thermosynthase - Strongly boost tolerance to extreme heat. These boosts will be relatively strong, to allow players to inhabit the very patches in which thermosynthase will be actually useful.

Membrane Slider

The rigidity slider will allow players control over tolerance to temperature and pressure. Tighter membranes will increase the overall tolerance range for pressure, and will shift tolerance towards cold and away from heat. More fluid membranes will decrease the overall tolerance range for pressure, and will shift tolerance toward warm temperatures and away from the cold.

This is so that more rigid membranes don’t necessitate living in the depths - allowing players to use membrane rigidity without being forced out of ice-shelves - but do help with high pressure regardless.

ENVIRONMENTAL TOLERANCE TAB

The environmental tolerance tab will provide descriptions of the environmental ranges your organism can inhabit. This could be represented visually, or through flat-out stating the different preferences across different factors (Temperature = 5 C to 15 C, etc.)

It will also contain some tabs and sliders allowing for fine-tuning. Some basal tabs will be provided, but others are unlocked through the placement of certain parts.

Sunlight

Represented as a toggle, which will allow tolerance to sunlight levels above 1% at a bonus ATP cost. This will be the most simple tolerance, and will be used as an introduction to the system to new players.

Temperature

All organisms will be given a slider, which will allow shifting of your habitable range. It will represent your enzymes’ preferred temperature range. This basal slider will become less effective with more mass.

Metabolosomes or Mitochondria will present an additional slider representing “Heat Generated”. Players will be able to increase tolerance to cold conditions, though the osmoregulation costs of mitochondria will be slightly increased. This will be more effective, providing higher mass organisms a slider as an option.

Pressure

Pressure will have a slider available to all organisms, representing increased the amount of barotolerant enzymes in your organism. These will be less effective with mass at a more rapid pace than that of temperature, meaning the player will more quickly look towards their physiological options (membranes at first, vacuoles later).

Placing a vacuole down provides a “Contractile Vacuole” toggle as an option, shifting preferred depth ranges towards deeper areas depending on the number of vacuoles you have placed.

Oxygen

All organisms will be given a toggle, allowing tolerance of oxygen of up to 5% levels at a flat ATP cost. Additional adaptations will require the placement of additional mitochondria/metabolosomes, or thylakoids/chloroplasts, and - when eventually added - bioluminescent vacuoles.


Tolerance Penalties

Being outside your preferred environmental tolerances will generally increase osmoregulation costs. Thus, another adaptation measure is presented - outperform whatever increase to osmoregulation is encountered.


This is something that can definitely be simplified if needed, so do let me know if there are parts that would really bloat development time. I am trying to balance between “simple and approachable in development and player accessibility” and “variety in creations between worlds that have different conditions”. There are ways to make this much more simple, but I do think it should be just a bit more than “move slider here” at a baseline to ensure some variety across worlds. We can introduce a lot more complexity behind this mechanic in the macroscopic stage, so complexity for the sake of depth isn’t needed here.

That’s a lot more complex than just the basic idea of a few sliders and some checkboxes.

Here’s a recap of the basic idea:

  • Check / adjust patch properties to be correct in terms of pressure, temperature etc.
  • Add environmental adaptation properties to species that can be controlled by sliders. These would be: temperature, pressure, and a slider to balance between wider tolerance or more benefit from being at optimal conditions. And then checkboxes for UV protection and oxygen protection
  • Species that are outside their adapted environment get an osmoregulation / process speed penalty. At optimal conditions you get a bonus instead.
  • The player species is automatically configured based on the starting patch
  • There needs to be a very visible warning in the editor and a tutorial when not adjusted correctly
  • Auto-evo needs a new (probably close to root pressure) about being well adapted to the patch it is in so that it can do those correctly. Also the bonus / penalty from environment needs to be applied for auto-evo calculations.
  • And finally the cherry on top would be to have certain organelles imply different modifiers on top of the environmental sliders.
  • If that final thing is done then we definitely need some kind of summary in the editor about what affects the environmental tolerances

That would be my idea of a simple implementation of environmental tolerances that I think would be doable for me in a week. That idea about the system kicking in slowly I think will make it quite a bit harder to make the system. Though now that I wrote out that simple list I realize that I basically included everything from your post but used slightly simpler terms (and I didn’t include the idea about renaming the tolerance tab).

1 Like

Was this concept from a prior discussion somewhere? I don’t recall seeing it.

Your explanation does sound solid. My only thing is that we should include some sort of process in this that is defined by more than just moving a slider or pressing a toggle to completely fix everything instantly. Environmental tolerances at this stage shouldn’t be difficult by any means, but having everything be address by simple solutions gets rid of a lot of dynamics in a stage of a planet’s life which sticks out for the co-evolution of a celestial body and the life which inhabits it. So having sliders be immensely powerful makes things like Snowball Earth, Oxygenation, and more toothless. Your simple explanation of the concept contains this dynamic, but it is something we should generally be aware of through balancing if possible.

The relationship between mass and environmental tolerances ranges was a solution back then for us wanting to avoid altering starting tolerances across different starts, though now that doesn’t seem to be an issue since we moved away from placing tolerance enzymes. It also allowed us to represent greater prokaryotic capacity to adapt to environmental conditions, which was something we wanted to represent.

If having ranges be altered dynamically by mass is an issue, another way to represent this is for eukaryotes/placing the nucleus to inherently have their tolerance range reduced by a notable amount to represent the effect of having more complex enzyme pathways. This would make it easier to balance for sure. The same thing can be done for reaching multicellularity/placing a binding agent, representing the additional sensitivity of multicellular enzymes.

Some other notes:

  • if possible, could be ideal to have the cold slow down processes. Other penalties can be represented by increased osmoregulation costs, with heat having that cost be more noted.
  • I do like the ranges vs bonuses dynamic you mention
  • If needed, we can represent shifting environmental tolerances by having more parts impact to tolerance ranges. For example, nitrogen-fixing parts can reduce tolerance to oxygen, and the same with sulfur.

Are you referring to:

? If so then I was simply referring to:

And in my mind I apparently added sliders to the list of GUI controls you were talking about.

I mean, such events need the player be able to manage them, and not lose the game if they don’t respond quickly and appropriately (though maybe in hard mode they could be more punishing). This isn’t specifically about this concept, but I feel like lately all suggestions have been ones that will increase the game difficulty significantly by introducing a lot more situations the player needs to read correctly in order to play effectively, which I think needs to be really carefully considered as we are close to microbe stage completion so the total amount of new player feedback we can still receive before calling microbe stage is complete is quite limited. And that’s why I want to go really conservatively on any ideas that increase the gameplay difficulty or learnability of the game for new players. But at the same time I’m totally in favour of systems that add depth, don’t need to be introduced to the player at the start, and where not interacting with the system doesn’t majorly screw over the player.

I think implementation-wise both are as difficult but there is a difference in how these can be explained to the players. At least the nucleus approach could probably just be in the tooltip, whereas the other one might need a tutorial for players to realize it. Kind of similar situation is how the organelle placement affects mass and thus speed, which isn’t really explained anywhere so some advanced players have recently discovered this and I’ve had to explain it to them.

1 Like

I think with this update mucocyst could play a more significant role, potentially even being able to develop into specific form that protects against Sunlight or Heat introducing more unique (night based) gameplay and allowing a simplier transition between different biomes.

1 Like

So dwelling on this more, I think it’s fine if we don’t have any inherent mass-related impact on tolerance ranges. Since some parts will have an inherent effect on tolerance ranges, more complex organisms will naturally progress towards specific ranges.

I think it would be nice to have certain parts, like nitrogen-fixing plastids and hydrogenase, work negatively with oxygen, necessitating more adaptations or actually incentivizing certain playstyles to seek anaerobic conditions as long as possible. So if that isn’t too difficult of a mechanic to implement, it could be a nice way to introduce a level of depth.

As to mucocyst, that could be interesting in relation to sunlight, as encasing yourself would protect yourself from inadequate conditions. However, beyond that since things like temperature and such don’t vary in a single life, I think such a thing would best be represented through auto-evo if implemented.