Patch Dynamic Environment

I think we should exclude direct population changes from the events as then we’ll need protections for the player as it is going to really suck to lose the game due to a random event…

I think we should avoid these kind of trigger conditions for now as I foresee quite extreme difficulty in balancing the triggering conditions to make sense.

Well we don’t really have currents in the game and even if they were flipped it wouldn’t actually really impact anything whatsoever, just the direction the currents would push objects. So I don’t see it worth the effort at all to add this.

Patch type changes is also something not really supported by the game architecture.

Also very difficult from programming side.


Here’s my adapted concept with anything that is hard to program stripped away:

  • Surface volcano eruption that increases co2 on surface patches and some other compounds more locally
  • Meteor Impact - Decreases sunlight over a certain area, and causes temporary dramatic shake up of compound availability. Population impact depending on proximity. Increase in CO2, but not to same extent as volcanoes. Can be small, affecting local patches, medium, effecting a patch cluster, or large, affecting multiple patch clusters.
  • Glaciation / snowball Earth / Cooling: reduces temperature and sunlight in surface patches.
  • Warming: increases temperature in surface patches and makes ice shelf patches have more sunlight
  • Irradiation: I guess we can technically have this as this isn’t too difficult to program but doesn’t really add new gameplay potential as temporary radiation won’t help much, but does add some extra environmental hazards. Radiation chunk spawning increase. Occurs rarely in shallow oceans or the ocean floor.

So that’s my adjusted list of 6 events we could add and, I think then be perfectly happy with the patch events system.

Understand the rest, but I will say that I think the community would be disappointed by having a snowball Earth event without any actual presence of ice beyond a dip of sunlight and temperature.

Maybe the entire patch changing isn’t necessary, but perhaps having a cooler light be applied and the spawning of ice chunks akin to those in the frozen seas during those turns I think would be easier while still demonstrating the frozen nature of a surface patch during glaciation.

2 Likes

Well I won’t know for sure without actually implementing both options, but I think that even that is almost as difficult as implementing support for patches changing type (and then changing back).

I agree with Deus that patches not changing type when major changes happen would be quiet the bummer. It kind of clashes with the axiom that if something should scientifically happen under certain circumstances, then Thrives world should reflect that. If photosynthesizers produce a lot of oxygen and temperatures drop below 0, then the oceans should freeze over. How exactly would we handle that? Will we just not allow the simulation to drop temperatures of patches below 0 degrees which were above it at the start of the game? Or would we just let patches drop below 0 without freezing them over? Both options seem to equally contradict Thrives core design philosophy…
Some ideas to circumvent this:

  • Does the architecture support adding patches and taking them away (again)? In that case ice shelf patches might spawn “on top of” epipelagic patches instead of replacing them? If an epipelagic patches temperature drops below 0 degrees a ice shelf patch would spawn over it and its sunlight would suddenly reduce drastically. Then, when temperatures thaw again, the ice patch could just disappear. All the species which lived in it would then be instantaneously migrated to the epipelagic patch below.
  • Alternatively, is there a way to keep a patch as a epipelagic patch internally (in the hidden internal architecture so to speak) and superficially present it as a ice shelf to the player? Then a script which temporarily “camouflages” an epipelagic patch as an ice shelf might suffice.
    If none of this is doable, then we might have to stick with his proposed “dynamic environment light”. But if it’s somehow possible I feel like the switch between frozen-over and non-frozen-over surface patches would be the one instance which would be worth the additional effort of a special solution. It’s really a big change which happened often and is really impactful. The Great Oxygenation event could really be an exiting milestone of each earth like playthrough and it would be a shame if it couldn’t be executed at least somewhat spectacularly.
1 Like

Sadly no, and this seems even more hard to fit into the code architecture than patches just changing type.

There’s no difference between the two: the patch type is shown in the GUI and used in the “backend” code so to speak. So again an architecture change would be needed to separate things.

I mean this is the only thing that can be currently fit in due to the existing architecture: the available max sunlight can be recalculated by patch events and later reset to the original value after the event is over.

1 Like

What about this? Is this possible with the current setup or not? If this might be possible I‘ll suggest a workaround involving this which aims to simulate the „surface patch freezing over“.

It’s again the same case: it needs extra code handling for it.

The reason why compound and chunk densities don’t need is that we have the biome template easily accessible for each patch.

So that’s why that’s the only thing that is easy to do, anything else requires extra logic to store information on what connections or patch types have been changed and will need to be reset back to what they were before.

I think that should be doable. I’ll try to tackle it this release to see what needs to been done and how much work it would require.

2 Likes

If it’s possible to enable and disable patch connections, then maybe every epipelagic patch could have a ice shelf patch above it and this ice patch would only be accessible if the temperature of the surface in this region is below 0. If it gets warmer, the patch connection could be disabled and all species living in the ice patch could be migrated to the epipelagic, simulating the disappearance of that ice patch. The ice patch which “no longer exists” could then be hidden in the patch map if that’s somehow possible.
I will stop now with hurling suggestions at this topic and leave it to the programming and design teams:)

I was trying to code the patch change for the oxyganation event. Would we allow manually setting Biome’s class properties (after doing a deep copy) like “Icon”, “Sunlight” etc. like that:

private Biome createSnowyPatchTemplate(Biome biomeTemplate)
    {
        // Biome biome = new Biome();
        biomeTemplate.Background = "iceshelf";
        biomeTemplate.Sunlight.Colour = new Color(1, 1, 1, 1);
        biomeTemplate.Icon = "res://assets/textures/gui/bevel/PatchIceShelf.svg";
        biomeTemplate.Panorama = "res://assets/textures/background/panoramas/PolarSea.png";
        biomeTemplate.untranslatedName = "ICESHELF";
        biomeTemplate.Resolve(null);
        return biomeTemplate;
    }

and saving the old ones in order to reset them later after few generations? I know it might be a little bit tricky but I got it working.
If that is allowed I would also change things like allowed chunk types etc.

There should be no need for this as this event should only affect compounds. And for compounds they can be easily reset to the biome template values, if needed.

Any change should need to be put into the patch snapshot system so that historical data viewing works. And II think rather than creating full new templates, it would be better to just have all templates hardcoded but allow patches to switch between templates if they so desire.

Since I’m currently working on the Global Glaciation event (aka snowball earth) I will present my approach:

The event would have a chance to be triggered after 70% of surface patches contain at least 7% oxygen and would last from 2 to 5 generations. So once these conditions are met there would be, let’s say, 50% chance every generation that the event would trigger. It can be triggered only once in one playthrough. Of course these numbers will be adjusted for the balancing purposes.

When the event is active, the following happens in the surface patches:

  • light level is reduced to 50%,
  • temperature is reduced to a value from range [-1, 4],
  • light’s color is slightly blue,
  • background is the same as for the ice shelf patch,
  • ice chunks can spawn but at a higher rate than in ice shelf patch
1 Like

Sorry if I missed it, but what’s the reason why snowball event requires oxygen to trigger? Other than that, that seems reasonable approach as long as the balancing is done properly.

Based on this quote. In the history of earth there was a massive glaciation triggered by the introduction of oxygen into the atmosphere which reduced methane levels and caused snowball earth

2 Likes

I will sum up the today’s discussion from discord and the progress I have already done regarding the meteor impact event.

The event would have 7% chance of being triggered every generation and would have 3 possible sizes:

  • small: 1 surface patch,
  • medium: all surface patches from 1 region,
  • large: all surface patches from 2 connected regions.

Types of meteors and their probabilties:

  • Plain: 25%,
  • Iron: 25%,
  • Phosphate: 20%,
  • Radioactive: 10%,
  • Sulfur: 10%,
  • Glucose: 10%.

All meteors will increase CO2 level and decrease light level. Iron, phosphate, radioactive and sulfur meteors will also add chunks to the patches that will disappear after the event finishes the next generation.
There was also a proposal for non-LAWK meteor that would introduce new species, but that is something that I would not be implementing for now as that seems much harder to do.
It was also mentioned that there should be meteors that would shake up the compounds more but I think that requires more discussion as to what it would exactly do.

2 Likes

In searching for ways to mix up compounds, especially in the beginning of a playthrough, I have more concepts for environmental events.

  • Runoff - Occurring near coastal regions, such as shallow seas, tidal pools, and estuaries, this implies the release of sediments from land into water. Increases either phosphates/ammonia, iron, sulfur, or nitrogen in a given region. Multiple can be effected, but not necessarily true. This dramatically increases the rate at which compounds get added. Lasts for a given amount of generations.
  • Upwelling - Occurring in the open ocean, such as for the epipelagic, mesopelagic, and anything in the water column above the ocean floor, it essentially operates the same as a runoff in introducing more of a given compound. Multiple can be effected, but not necessarily true. This dramatically increases the rate at which compounds get added. Lasts for a given amount of generations.
  • Current Dilution - Occurring in any region, this indicates a shifting of currents to reduce a given or multiple compounds. Essentially the opposite of the above two. This dramatically increases the rate at which given compounds get removed. Lasts for a given amount of generations.
  • Turbid Waters - Indicating a cluttering of the water in a patch, this lowers the amount of light available in a given region, capping it to a certain amount (perhaps anywhere from 50-80%). Lasts for up to three generations. Bonus points if in the future this includes more spawning of floating chunks, but obviously as of now, we don’t have the art assets for that yet.
  • Increased Stratification - Whether due to mineral composition, current activity, or other reasons, oxygen is increasingly stratified in this patch. Oxygen is rapidly removed in a patch over a number of generations. Requires a minimum amount of oxygen in a given patch to have a chance of occurring - maybe 10%. Lasts for a given amount of generations.

These provide ways of increasing how volatile conditions can be. The rate at which these events occur can be incredibly common at the beginning of a game, representing the immaturity of your planet’s biogeochemical processes. This increases randomness, incentivizing players to respond to their environment as certain compounds rapidly increase or decrease in a given patch. After a while, the intensity and frequency of these events can subside, giving players a more steady rhythm and a baseline for how given regions in an environment behave in terms of their resource distribution.

This presents an alternative to introducing volatile conditions as opposed to just having compounds dramatically vary, which is a bit less realistic and a bit less predictable. This way, atleast players have an understanding of why certain compounds are scarce/abundant.

Ultimately, I think the ideal is - starting conditions, major flux, then your planet sets in on the result of this flux, with natural processes taking over to create a more standard experience later in the stage to expand on.

Beyond that, including events like glaciation that isn’t necessarily Snowball Earth, or volcanic events on surface patches, is also desirable.

1 Like

I think that these enviromental events are a good idea to make the enviroment more dynamic. But since some of them increases compounds and the other ones decrease them I think that they would need to be added at the same time to make the game balanced. There are also few more issues that need to be discussed:

  • Would the enviromental events be treated as a different thing that patch events? If so, would they be shown the same way as patch events? I’m asking because these seem like a light version of events that only mix up densities and amounts of compounds.
  • Would these events be able to introduce compound that are not available in the patch or not? And would the dillution be able to get rid of a compound if there was only small amount of it before?
2 Likes

In response to the two points:

  • I don’t know if I fully understand what you are pointing out with the first bullet, so forgive me if this isn’t that informative. But I think think these can be treated as environmental events because of their chance to effect multiple patches, and because of how influential they can be for player strategy. If you are referring to another aspect, do let me know.
  • Yes for both the potential to completely get rid of a compound, or introduce a new compound. I think especially in the beginning of a playthrough, these subtractive and additive events should be balanced so that there’s a sizable chance of certain compounds seriously diminishing, or suddenly becoming more prominent in a given patch. Then after this initial period of chaotic swings, things settle and more natural processes take place, such as sulfur and iron reacting to oxygen, oxygen filling environments via photosynthesis, ocean floor and vents naturally having more sulfur through inputs, cave naturally having more iron, etc. As the Microbe Stage goes on, the intensity of these additive or reductive events would ideally reduce so that, though influential, it’s not like an entire region can be stripped or completely irritated with a strange compound.

Overall, this is an avenue for ways we can mix up things in the Microbe Stage. Similar to that discussion we had in the developer chat room, where we discussed that mixing up what processes the player gravitates towards in the beginning can be varied by varying the underlying compounds available to them.

1 Like

Sorry for not being clear enough. I wanted to ask if we want to represent these events with the icons on the patches just like we do with glaciation/meteors/vent eruption. And if so, would they be exactly in the same place that these do or maybe at the bottom of the patch icon instead of top.

1 Like

Ah okay, understood! I think maybe we can investigate either the icons flashing in the same spot, or having the icon be on the top right. Having it in the same spot could be good for not overpacking the screen with information, but if it isn’t clear enough, the top right can be used more specifically for the more minor sorts of environmental events. It would be useful regardless to have icons, as we do want to make sure players are told “hey, compounds can wildly shift in your environment”.

1 Like