Upgrades, Unlocks, & Endosymbiosis Master Thread

The difficulty doesn’t exist there, as you would just have like 5 pili, and maybe you update 2 or 3 of them to be toxic. That’s vastly different use case than assumingthe player has to modify each of their organelles of a certain type to do a basic thing.

No, this is easy. The hard part is how the editor works, it has a bunch of complex systems related to editing, with the most difficult being the dynamic MP remaining calculation. And it not supporting the concept at all of duplicating organelles or making a preset / applying a preset upgrades to an organelle.

2 Likes

Okay, I see. I think an immediate solution that doesn’t need a big rework of the editor (if we still want to maintain variants as being an upgrade rather than an individual part) is just to make certain variants cheap. I think for the metabolic parts especially, we don’t really need to make whatever variant or modifications very expensive. Most of them would be environmental or metabolic changes regardless; we wouldn’t want to make environmental tolerances very expensive to offer some flexibility, and changing your metabolism definitely comes with risks beyond just the costs which we would want to give the player an option of undoing. We could maintain expensive variants for external parts since they really aren’t as essential.

1 Like

Yeah, I’ve always had the idea in my mind that upgrades should be cheap, because the player needs to first get the part and then the upgrade so the cost would add up fast. I think the cilia pull upgrade which costs 30 MP and unlocks completely new gameplay options is an excellent example. Though, now that I’m thinking about it the upgrade is as expensive as the organelle. I think that should be rare so that most upgrades would be cheaper than the organelles.

1 Like

Here are some more upgrade proposals, this time focused on prokaryotic parts. Again, most of these aren’t my “new ideas”; they’re just a more finalized list of upgrades with a few newer ideas.


Metabolosomes

Environmental

Increased Cold Tolerance – Metabolosomes generate excess heat at the cost of total energy produced and heat tolerance.

Toxicity

Increased Toxin Resistance – Metabolosomes will assist in breaking down toxins at a cost of energy production.


Rusticyanin

Structural

Anaerobic Photolithotrophy (V) – The breakdown of iron is now based on sunlight instead of oxygen, resulting in more ATP generation. However, your species becomes much less tolerant to oxygen. Releases oxygen as a byproduct, so can require oxygen tolerance if your species has a significant impact on the environment.


Thermosynthase

Environmental

Hyperthermophilic Enzymes (M) - Insulation from heat, but less tolerance towards cold and normal conditions.


Chemosynthesizing Proteins

Structural

Photolithotrophy (V) – Your cell will breakdown hydrogen sulfide with the availability of sunlight instead of just carbon dioxide, producing more glucose. However, your species becomes less tolerant to oxygen and will become dependent on sunlight.

Environmental

Hyperthermophilic Enzymes (M) – Insulation from heat, but less tolerance towards cold and normal conditions.


Thylakoids

Structural

Red-Pigmented Thylakoids (V) – Increases photosynthetic efficiency in lower-lit environments, but decreases photosynthetic efficiency in higher-lit environments.

Environmental

Brown Pigments (M) – Greater protection from the cold, but less tolerance towards heat.


Cytoplasm

Structural

Storage Capacity v. Glycolysis (M) – Choose between either better storage capacity or better glycolysis.


Nitrogenase

Unsure. Perhaps something reflective of the nitrogen cycle.

These sound very interesting! I’m not qualified to comment on which ones are problematic in light of hhs earlier comments and which ones are okay, but I’ll add my thoughts regardless.

I’d like to open up some questions about the graphical depiction of these upgrades. The two upgraded organelles which we have in the game right now (chemoreceptor and pulling cilia) look the same as their base versions. I think this is fine for now as I wouldn’t know how to visually communicate which chemoreceptor searches for which object.
Some of the upgrades you suggest clearly indicate that the upgraded organelles would look different from the base version, such as the red and brown thylakoids. This makes a lot of sense, as their coloring impacts their functionality and it would be strange to upgrade a thylakoid to be brown without it changing its color.

Firstly, I’d like to ask the programmers: We already have a system which changes the organelle colors based on the color you choose for your cell in the appearance tab. How feasible would it be to modify this system to recolor some organelles depending on their upgrade? If this is possible at all, we could then talk about wether the red thylakoid would always have the same shade of red or wether it would just be pushed towards red in its rgb value from where it was when it had the base color of the cell… Anyways I’m curious to hear programmers views on the feasibility of this:)

Secondly, if we suppose that this recoloring of individual organelles is feasible, I’d like to propose to reuse this system to visually differentiate other upgrades which you have mentioned. Here are the examples which make sense in my mind:

  • Metabolosome with Increased Cold Tolerance - These metabolosomes could either look more reddish than the base metabolosome in order to show that they produce heat. Alternatively, it could have a turqouise/blueish tint to give the feeling that the microbe belongs in the cold environment. In this case, the metabolosome might look reminiscent of a sort of anti-cooling agent (which for some reason looks blueish in my mind)

  • Metabolosome with Increased Toxin Resistance - These metabolosomes would have a pink tint, as toxins seem to always be pink in Thrive.

  • Hyperthermophilic Thermosynthase and Hyperthermophilic Chemosynthesizing Proteins - These feel like they should have a reddish tint as the microbe should look like it fits hot environment and the red is a natural intensification of the yellow of the base organelles in terms of the warmth of the color. When taking this into account, we should probably give preference to the blueish tint for the Metabolosome with Increased Cold Tolerance which I discussed earlier as it would be strange for a reddish tint to represent both a preference for heat and a preference for the cold.

  • Storage Capacity v. Glycolysis Ideally, we would represent this as the cytoplasm being more transparent for the increased storage capacity and more opaque/whiteish for the increased glycolysis. This would make sense as this would clearly communicate that the standard cytoplasm being an intermediate between the two extremes. Increased transparency would represent the needed emptiness and increased opacity/whiteness would communicate a stronger connection to glucose, which is white. However, this sounds like a nightmare to implement, as it would surely be hard to render each hex with a different opacity. So this upgrade probably shouldn’t be represented graphcially at all!

1 Like

It’s totally feasible. Every individual organelles has a tint property, and as you said this property is just set to the color of the cell for every organelle. Of course we can change the color (granularly) but it would be in the same shade of red when done just like that, it probably would require extra small calculation to blend it with the color of the cell.

2 Likes

That’s great to hear!

This is right, though it would break the cell colour selection system. So relying on colour variants for upgraded organelles is not a good idea in my opinion. To not break the overall cell theme the colour change would need to be very slight so in the end I don’t see it as doing anything good.

In that case I’d suggest that we avoid naming upgrades after colors. As said, it would be strange to have a “brown chloroplasts” upgrade which doesn’t make the chloroplasts brown(er). So if we can’t/shouldn’t mess with the coloring of the cells/organelles I’d suggest going for more neutral upgrade names.
So the red-pigmented thylakoids could be named twilight thylakoids or penumbral thylakoids. THe brown pigments could be named cryophilic thylakoids.
This would solve another problem which was bugging me anyways: Stars other than the sun can have different wavelenghts and light colors, so the best chloroplast color for semi-lit environments on another planet might be something different than red. So upon rethinking I see multiple reasons for not naming upgrades after colors.

I think the colour based names are pretty good, because they actually indicate more scientifically what they do. I think. We have chloroplasts that aren’t required to be green so I don’t see that big of a problem here.

The difference to me is that we don’t call our normal chloroplasts “green chloroplasts”. Calling an upgrade specifically “brown” and then not making the organelle brown(er) feels weird to me. But if you guys like the color based names more nontheless then we will use those of course:)

I see, there’s an implicit assumption that the player knows that the “default” colour (due to Earth) of chloroplasts is green. It’s been talked about before that chloroplasts would be configurable and the player would need to match it to their star’s spectrum. I’ve not been keen on that idea as just unnecessary complexity that’s not needed (chloroplast colour is one thing I think we can pretty well handwave and say it just evolves to be whatever colour is needed). Before other parts of the microbe stage is complete I think reserving playing complexity for adjusting it is not a good idea.

I guess from that point of view naming the upgrades based on what they help with and not what they are, would be fine. Though, I won’t give a final conclusion before we have some kind of WIP implementation and can compare the options.

1 Like

Since implementing endosymbiosis lite is at the top of the release 0.6.4 milestones list on GitHub, I figured that it might be a good time to clarify one or two things about it.
The issues description reads that

endosymbiosis lite is a system whereby engulfing prokaryotes the player can unlock organelles based on what the eaten bacteria had.

I agree that it’s probably not worth the computing power to keep track of what all of the AI species engulf during gameplay. But if this system is only for the player, we have to ask ourselves what to do about the AI. In my mind it’s fine if we keep things a bit easier for the AI as it sometimes needs a bit of an edge over the player, given that it can’t profit from a humans intelligence. I would however find it strange if no limitations apply to what kinds of eukaryotic organelles the AI can evolve. If eukaryotic organelles evolve through endosymbiosis for the player, we can assume that “canonically” that’s also how it works for the AI. It would be unrealistic then if the AI evolved an eukaryotic organelle which it couldn’t evolve through endosymbiosis under the given circumstances.

My proposal is thus to add a check to auto-evo to determine which eukaryotic organelles can be evolved by which species. Species X can evolve a eukaryotic organelle when either all of the following criteria are met:

  • there is at least one species Y in at least one of the patches species X inhabits which is small enough that species X and which has the right prokaryotic organelle which would allow species X to unlock the corresponding eukaryotic organelle
  • species X has a membrane type which allows for engulfment
  • species X has a nucleus (I’ve also seen suggestions which would allow for non-eukaryote to also develop one endosymbiont, so I’m not 100% sure about this one but I would wager that right now the consensus is still to lock eukaryotic organelles behind the nucleus which I agree with btw)

or when species X already has a eukaryotic organelle of the kind in question.

I hope this system for the AI is simple enough and could be implemented along the player version of endosymbiosis lite.

2 Likes

I think that’s a pretty reasonable proposal. Still it’s a bit unlikely to come up immediately as the AI kind of first would need help to actually become eukaryotic (it’s very rare for the AI to get a nucleus)…

It’s pretty simple but it requires some code interlinkage. Right now the mutations generation doesn’t need to know anything else except what kind of species it is given. With this change the mutations generation would additionally need to be given a list of species that exist also in the same patch to perform the check if the mutated species is allowed to gain some eukaryotic part.

With the auto-evo exploration tool I’ve seen it pop up quite a few times I think. It’s also common for a AI species to split off the player once the player has evolved a nucleus. But you’re right, the AI has trouble evolving one in a regular playthrough if it can’t rely on the player to “help” it.

I’m glad the proposal is reasonable. And I agree, it doesn’t need to be implemented right away in tandem with endosymbiosis for the player. It can also be implemented a few updates later, and in the meantime people like me who are bugged by a “canonical” inconsistency in the game have to bite that bullet for some time. It would certainly help for immersion if the AI seems like it has the same logic applied to it as the player (even if the systems work differently), but it’s not like it would be an extremely jarring experience if the AI evolved eukaryotic organelles which it theoretically couldn’t for a few releases.

some rambling, feel free to ignore

I think this simple addition could lead to a few interesting emergent situations. It would mean that membranes which would block engulfing could be initially powerful, but would prevent a species from unlocking the powerful eukaryotic organelles. That way they might be dominant for a few generation, but would eventually face competition from species which first went for the eukaryotic organelles and only later evolved the engulfment-blocking membranes.
It’s exiting because other it adds a new kind of dependency of adaptions. The nucleus/eukaryotic organelles dependency is a positive one while this engulfment-blocking membrane/eukaryotic organelles dependency would be a negative one. Still, it feels like it wouldn’t be frustrating as it only takes one generation to switch to a membrane type which allows for engulfment.

1 Like

Alright, so a few days ago I was thinking about some new features of Thrive and suddenly came upon some ideas on how to revitalize an older concept for a pilus upgrade, the long awaited straw pilus.

From a gameplay perspective, designing the straw pilus can be challenging as it must contend with the very much capable and effective base perforating pilus. Why bother stealing a few resources from another cell when you can just slice them open like a visceral pinata? The solution; Making the straw pilus more resource efficient at the cost of only harming one creature at a time.

So, I’ve devised the following concept as an ideal for the straw pilus.


Hunting with Straws

A straw pilus works quite differently from the classic perforating form. Instead of slashing and poking several cells at once, the straw pilus can only target a single prey item at a time. When a straw pilus collides with valid prey, it will “bind” the user to the prey and begin transferring the contents to the user. All the while, the prey will begin taking gradual damage and potentially even risk starvation if enough resources are stolen. This allows a predator to efficiently drain resources straight from the source instead of mopping up the diluted remains from a popped cell. At any point, the predator can release their prey by using the unbind hotkey.

There is no restraint in relation to size, and even the tiniest straw pilus wielding cell can hunt the largest prey. If the predator has a larger mass than it’s prey, they will be able to drag them around, and the prey will be quite limited in their options to escape. This can be seen as a “game over” state similar to engulfed digestion. If the prey is heavier than the predator however, the predator will be dragged around with their prey instead.

This sound pretty rough for prey… So how can they defend themselves from this new threat?

Avoiding The Straws

There are two primary ways to disconnect a straw user from it’s prey. The most reliable is spinning rapidly and vigorously. High turning speeds will eventually dislodge the predator. The higher your turning speed, the faster you are able to potentially dislodge them. Otherwise, taking any form of damage will also dislodge a straw user. Those loose toxin clouds might have a user after all!

Silica and calcium carbonate membranes may be potentially resistant or outright immune to the dreaded straw.

Possessing stored toxins could potentially make you an unhealthy snack for predators, unless they have some means to safely store or process it.

The major catch here is that if the predator is larger than the prey, there may not be much the prey is able to do, effectively resulting in the aforementioned “game over” state should they not get lucky.


This concept would bring a new and exhilarating form of combat to Thrive, open up more predatory options for cells unable to engulf, and make hh really want to have my head for devising something that requires physics collision calls akin to the colony binding system disaster of 2021.

Now, as much fun as being able to latch onto prey is, my biggest fear is how this would interact with the binding system in general. What happens if multiple straw users stab the same prey? Form a conga line reminiscent of basic food chain diagrams? Worse still, straws being used in conjunction with colonies?? There is a lot that could go horribly wrong. But if done right, it would be a wonderful mechanic, at least in theory.

All feedback is welcome.

1 Like

The potential for dedicated parasite microbes with the straw pilus could lead to some interesting stuff down the line. Assuming the amount of resources you drain scales based on your size and you attach to a cell much larger than you that produces a lot of glucose through photosynthesis, you’d be able to survive forever bound to that one cell. Mabe someday there could even be a way for the “predator” to buff the “prey” and this could open the gate to symbiosis. Figuring out how to factor that into auto-evo sounds like a nightmare, though.

3 Likes

Bringing up endosymbiosis again, as implementation approaches. I will summarize the current concept which we can work on.

  1. Players will choose an endosymbiont from a list of priorly consumed organisms in the editor, represented by a + button in the organelle section. Endosymbionts can be transformed into an organelle based on their composition, and will be better or worse candidates to be transformed into an organelle based on their part count. Generally, the more parts of a specific type there are in a candidate, the quicker the candidate can be integrated into a specific part.
  2. When the player spawns in, they can consume the specified endosymbiont candidate, which gives the player abilities corresponding to the organelle they are attempting to unlock for that life. The player must successfully reproduce with that organelle candidate. If the player dies, they lose the endosymbiont, and must search for another of the candidate species to integrate. Engulfment does not penalize the engulfed specie’s population, and successful reproduction boosts the endosymbiont candidate’s population as well. This will help the endosymbiont stick around for long enough as long as the candidate species isn’t on the brink of extinction.
  3. After a certain number of successful reproductions, again specified by the number of parts within the candidate, the player fully unlocks the corresponding organelle. The number of generations needed to successfully integrate the endosymbiont is known to the player initially, so the player does not have to guess how many successful reproductions they need to unlock the organelle.

Players can only perform endosymbiosis once without the nucleus, meaning only one type of organelle can be unlocked. Placing down the nucleus allows for more organelles to be unlocked.


Potential Benefits

  • Active unlock process increases engagement, strategy, and decision-making considerations, allowing players to experiment. It provides a sort of “task” to the player that isn’t necessarily placing down parts in the pursuit of a nucleus and that isn’t necessarily “find food”.
  • Realistically represents the process of endosymbiosis.
  • When combined with the more “traditional” alternate unlock conditions, provides a reward and incentive for players to utilize endosymbiosis.

If properly synergized with traditional unlock conditions, endosymbiosis will serve a unique role in being able to give players access to parts that they otherwise probably wouldn’t achieve with their given morphology. For example, if a player really wants to utilize toxins but can’t otherwise afford to significantly devote their morphology to unlocking toxin vacuoles, then they can engulf a toxin candidate endosymbiont enough times to unlock it otherwise. When combined with traditional unlock conditions, players can naturally stumble upon organelles that make sense for the player to evolve eventually even without a proper endosymbiont, while devoting attention to more unique parts.

This gambit sort of creates a meta-strategy to unlocking organelles that is similar to the real world evolutionary incentives of endosymbiosis. Organisms may often develop symbiotic relationships with other organisms to take advantage of metabolisms that they otherwise would likely not be able to count on. For example, the chloroplast likely evolved in a symbiotic relationship between a non-photosynthetic eukaryote and a photosynthetic prokaryote. Modern day plants would likely not have evolved photosynthesis “by themselves”.

So essentially, we end up with two strategical facets of the game which are both accommodating to experienced and less-experienced players…

  1. Players who are intimidated by endosymbiosis will eventually end up getting the parts they need by just playing the game. Or, players who are confident with endosymbiosis can just choose to unlock certain parts passively, while actively pursuing other parts.
  2. Players who utilize endosymbiosis are rewarded by access to game-changing organelles potentially quicker, and the option to unlock organelles that they otherwise probably wouldn’t unlock unless they change their morphology.

Potential Drawbacks

  • Active process necessitates making sure the player knows that they have this option. If there are too many active processes going on at once without proper navigation, it could overwhelm newer players.
  • Might clutter editor with new button added.
  • Traditional unlock conditions for organelles must be balanced to ensure that endosymbiosis is viable; if players end up unlocking things easily without much action, then there is no reason to engage with endosymbiosis.

Making endosymbiosis an active process gives another decision for players to consider. More decisions are definitely needed currently in Thrive, but there are various features yet to be implemented that will provide decisions - we must seriously consider this while implementing new mechanics.

Furthermore, endosymbiosis is a complicated scientific process, and in game, will be a rather untraditional unlock mechanic. The mechanic itself might be easy to understand on paper, but when tasked with multiple things, we need a way to encourage the player so that they know they are engaging with the mechanic correctly.

Again, I do think that the alternative unlock conditions accommodate for players which have less experience, and I think that we have ways to affirm the player. But we cannot overlook the increase in Thrive’s complexity that is likely over the horizon.


Open to thoughts, as well as commentary on how feasible such mechanics are to implement, as well as potential alternatives.

3 Likes

Here’s my thoughts on what I’m going to try implement next week to get an endosymbiosis lite sufficiently implemented.

I guess this is fine but it’ll take a while for a player to notice this, so there would be a need for a tutorial at some point when there are endosymbiosis candidates. Also I’ll just put an “endosymbiosis” button at the bottom of the organelles tab in the editor.

This is going to be super complicated to implement, I’d say offhand that nearly 50% of the complexity of endosymbiosis feature would be in this one minor point. As such I’m going to skip adding this in the initial implementation. An issue can be opened to maybe at some point implement this.

This is going to be a tiny bit tricky but should be doable.

I think it should be made so that placing the endosymbiosised organelle would be free once so that the player gets the benefit of getting at least a free organelle out of it. This still keeps endosymbiosis as viable option for organelle types that are very easy to unlock or for a player who has already unlocked everything.


When initially reading your post this morning I was thinking there would be way more problems, but now that I’ve dissected and thought about it, there really isn’t that many problematic things that couldn’t be implemented like this.

3 Likes

Good to hear on the feasibility of the proposal. Surprised that the auto-evo handling of the endosymbiont is the most messy aspect of this, though I guess it is a pretty unique case.

I shall now unveil part 2 of this concept: editors within editors /s

2 Likes