Agents Discussion

I might get around to that sometime this weekend. Having an editor window to adjust the properties of a specific organelle is worth doing though because we can use the same template if we want players to be able to specialize other things as well.

Edit: Pushed a basic prototype for 3D toxins. since we force magnitude to equal 1 it’s easily represented in 2D space.

1 Like

I was thinking a bit more about this.

Having agents be a protein the player designs is a cool feature. I think microbes predominantly communicate and interact with the world via proteins so if we can model that then it could be a powerful, realistic feature.

I wondered if, as a player, if what you would really want is to be able to specify what the agent does and not what it’s code is. So I might want to say “this cell is too fast to catch, give me an agent that powers down it’s flagella” rather than saying “I want an agent with code 01001010, let me know what that does”.

So here’s a diagram for a possible menu system where you select which agent to program, which cell it will primarily effect and which organelle it would primarily effect and then the game tells you what the code of that protein would be and what other effects it would have. I feel like that’s reasonably straightforward to operate, but it does mean you can’t make an agent that’s 50% targeted to one organelle and 50% to another. Can you imagine using it? Does it make sense?

The lock on the left would let you spend MP to reset your locks on your organelles to reduce the effectiveness of other cells agents.

What do you think about “alien base pairs”? So instead of “ACGT” we could pick 2,4 or 6 random letters to be that planets basecode and then display the agents to the player in that code. Whatever is happening under the hood (like bit strings / code distances etc) may not be of much interest to the player and we could hash it in to an alien dna string.

I like the idea of having players decide what they want things to do and then the game doing all of the rest behind the scenes. However, there are likely to eventually be hundreds or even thousands of species so I think that the agents shouldn’t target “Species 1 mitochondria” but instead it should target mitochondria in general. Using a 6 digit string for instance we can say mitochondria damaging is the first element. If a cell has agent [1,0,0,0,0,0] then they specialize entirely in shutting down the mitochondria and trying to paralyze their prey by preventing ATP production so that they can then approach and kill it via engulfment or a straw. However, being so specialized, all a cell needs to defend against such a thing is some [1,0,0,0,0,0] proteins of their own. On the other hand say a cell wants an extremely general agent that has many effects but doesn’t do any of them particularly well. Their code would be [1,1,1,1,1,1]/sqrt(6) and this would be effective at damaging any specialist (against the first cell I mentioned only 1/6 could be resisted) or undefended cell while having the added benefit of providing the cell with a general antitoxin to defend against anything thrown at it albeit not extremely well. The effectiveness of your agent will still vary from cell to cell due to the potential presence of an agent of their own or due to their organelles. If you specifically target mitochondria then you will have no effect on cells that only have chloroplasts, if you generalize then some of your agents effects are useless against a cell without flagella, etc.

This is the idea I had in mind when I said

Interesting.

If we had one agent per organelle, one that shuts down flagella and one which shuts down chloroplasts etc. And you could choose whether to fill your agent gland completely with one of them or with a mixture of several of them. Would that be equivalent to the system you’re proposing?

Like [1,0,0,0,0,0] would be an agent gland completely filled with mitochondria agent and [1,1,0,0,0,0]/sqrt(2) would be half and half mitochondria and flagella agents?

That’s one of the options that was mentioned in the op. I think it’s clearer than a bit string approach and easier to operate, however I think it’s less deep.

Also with anti-toxins would it ever really be worth developing them? If species 1 has a good agent that kills me would I not be better getting an agent that kills species 1 rather than trying to stop them killing me? In the sense that a good offence is the best defence.

I’m proposing that the “anti-toxin” for species 1 is to copy species 1’s toxin. That way you’ve improved your offensive capabilities against all species that don’t have that toxin and are now immune to species 1’s toxin.

that’s exactly the thought I had.

1 Like

I was reading a bit about viruses. Something I didn’t know before from wikipedia:

“Some viruses cause no apparent changes to the infected cell. Cells in which the virus is latent and inactive show few signs of infection and often function normally. This causes persistent infections and the virus is often dormant for many months or years.” (1)

and

“Viruses also leave cells through exocytosis, in which the host cell is not destroyed.” (2)

And that gave me an idea. If each organelle has a code / lock associated with it what if we had a type of virus that could hack agent glands to make more of itself?

So it’s a free floating cloud in the environment and if you absorb some of it then it will hack one or more of your agent glands so they no longer produce what you want but they produce more of the virus and constantly spew it out. If you want to defend against it you can change the code of your agent glands but the virus can also adapt over time.

What do you think? Is that reasonably realistic? I feel like losing control of one of your agent glands means you still might be able to unlock the editor so it doesn’t end your run, it’s just a handicap.

better off simulating viruses as small particles i think if we want to be realistic but it doenst need to be.

1 Like

I had a go at a super simple lock and key style agent system. Code is in the prototypes repo.

Each organelle has a lock, in this case 9 digits long. The first 6 digits are the same between all species (so every mitochondria in all species has the same first 6 digits) and then the last 3 are customized by the species.

Here is a readout of the effectiveness of a random agent (key) and an agent which has been specifically tailored to attack species 0 mitochondrion. As you can see the random agent doesn’t have much effect on anything. The tailored agent is 100% against it’s target, reasonably good against the mitochondria of other species and not much use against other stuff.

I’d be interested if anyone has opinions about things like:

how much should an agent aimed at a mitochondrion of species 0 effect the mitochondrion of species 1? How much should an agent aimed at a mitochondrion effect a chloroplast?

Code Output

Basic Agent Simulator

Picking a Random Agent
My agent has code:
[0.6588051443708589, 0.8336697452742982, 0.37737886318665415, 0.9657502448263748, 0.6793901307535771, 0.4191261415580064, 0.5972539823703953, 0.9343545271389039, 0.2671055965430258]
and will have effect
Species: 0 , organelle: m , strength: 14 %
Species: 3 , organelle: m , strength: 14 %
Species: 1 , organelle: m , strength: 11 %
Species: 2 , organelle: m , strength: 10 %
Species: 0 , organelle: y , strength: 10 %
Species: 4 , organelle: y , strength: 10 %
Species: 3 , organelle: y , strength: 10 %
Species: 4 , organelle: f , strength: 10 %
Species: 2 , organelle: v , strength: 9 %
Species: 1 , organelle: f , strength: 9 %
Species: 1 , organelle: y , strength: 8 %
Species: 1 , organelle: v , strength: 8 %
Species: 3 , organelle: f , strength: 8 %
Species: 4 , organelle: v , strength: 8 %
Species: 2 , organelle: c , strength: 7 %
Species: 2 , organelle: y , strength: 6 %
Species: 4 , organelle: m , strength: 6 %
Species: 2 , organelle: f , strength: 5 %
Species: 0 , organelle: c , strength: 5 %
Species: 0 , organelle: f , strength: 4 %
Species: 0 , organelle: v , strength: 4 %
Species: 3 , organelle: v , strength: 4 %
Species: 1 , organelle: n , strength: 4 %
Species: 4 , organelle: c , strength: 3 %
Species: 1 , organelle: c , strength: 3 %
Species: 3 , organelle: c , strength: 2 %
Species: 2 , organelle: n , strength: 2 %
Species: 4 , organelle: n , strength: 2 %
Species: 3 , organelle: n , strength: 2 %
Species: 0 , organelle: n , strength: 1 %

Targeting species 0 mitochondrion
My agent has code:
[0, 1, 0, 1, 0, 0, 0.7293874831919958, 0.5984416999416611, 0.3679633868455632]
and will have effect
Species: 0 , organelle: m , strength: 100 %
Species: 2 , organelle: m , strength: 84 %
Species: 3 , organelle: m , strength: 78 %
Species: 1 , organelle: m , strength: 72 %
Species: 4 , organelle: m , strength: 57 %
Species: 0 , organelle: y , strength: 25 %
Species: 2 , organelle: c , strength: 22 %
Species: 2 , organelle: v , strength: 22 %
Species: 1 , organelle: v , strength: 21 %
Species: 0 , organelle: c , strength: 20 %
Species: 1 , organelle: y , strength: 18 %
Species: 4 , organelle: y , strength: 18 %
Species: 0 , organelle: v , strength: 17 %
Species: 4 , organelle: v , strength: 16 %
Species: 4 , organelle: c , strength: 15 %
Species: 3 , organelle: y , strength: 14 %
Species: 3 , organelle: c , strength: 14 %
Species: 2 , organelle: y , strength: 13 %
Species: 3 , organelle: v , strength: 13 %
Species: 1 , organelle: c , strength: 10 %
Species: 3 , organelle: f , strength: 8 %
Species: 1 , organelle: f , strength: 8 %
Species: 4 , organelle: f , strength: 6 %
Species: 2 , organelle: f , strength: 5 %
Species: 0 , organelle: f , strength: 5 %
Species: 1 , organelle: n , strength: 0 %
Species: 2 , organelle: n , strength: 0 %
Species: 4 , organelle: n , strength: 0 %
Species: 3 , organelle: n , strength: 0 %
Species: 0 , organelle: n , strength: 0 %

Why are there some 0% values? Is the specialized toxin perpendicular to all “organelle n” locks?

1 Like

Here’s the function that compares two codes. I put the result to the 5th power so if an overlap is not very high then it gets squashed pretty hard. Those 0%'s are roundings of numbers less than 1.

def compare(s1, s2):
	score = 0
	for i in range(len(s1)):
		score += 1 - abs(s1[i] - s2[i])
	return (score/bitstring_length)**5

As of now, toxins in Thrive merely act as a ranged weapon for the celluar stage. The various ideas I have aggregated here are intended to address the various complaints from players and the simplicity of the toxins. I have presented this to provide materials for discussion on the subject, and would like to hear what anyone would like to share or criticize.

Toxins and Customization
To begin, we all know that in reality there are hundreds of various unique toxins and compositions with different targets and effects. However, in Thrive we will either have to collapse these endless varieties into a select few representative toxins, or lend the player the creative freedom of designing a toxin with unique traits. I have elaborated on the two proposed methods below. Keep in mind that toxin customization would likely need a new UI element, perhaps attached to the oxytoxisome.

  1. Basic premade toxins categorized into types like A, B, and C (letters replaced with names once included). alongside basic protein complexes or metabolosomes to combat them.
    Having atleast 3 varieties of premade toxins that behave differently would grant cells diverse methods of hunting and defense. For example A could act as the current toxin and simply deal damage, while B could act as a motile inhibitor, slowing afflicted cells enough to be caught.

  2. Customizable toxins. (Could still be categorized based on effect.)
    Toxins would be customizable in how deadly, persistent, or iresistable they are, as well as what functions they target in the afflicted cell. With the sheer amount of potential toxin types that could arise from this, the toxins would likely still need to be categorized based on how they effect the cells for the sake of resistance and simplicity (EX: all toxins that deal flat damage are considered A type).

Now I’m sure everyone will immediately favor option 2 as more customization is always favorable. However, the most immediate problem with such vast customization is going to be the amount of unique editors and menus required for being able to customize anything. Having too many menus and editors could force the game to develop a steep learning curve and a generally overwelming depth that could confuse many players. That doesnt mean we can’t have it however, as we could have both versions of this idea, basic and advanced for the player to choose. But that is a discussion for another time.

Toxin Behavior
As of now, toxins in thrive simply inflict damage on cells when they collide. The idea I proposed below is intended to turn toxins into a more dynamic and unique threat from basic physical damage.

Instead of an immediate effect on the cell, toxins could instead collect inside the target, remaining harmless until the critical limit is reached. Once this limit is surpassed, the cell will be afflicted with the detremental effects of the toxin until the build-up is reduced back to safe levels. Toxic buildup will gradually decrease over time, and could potentially be hastened by specialized metabolic processes. Additionally, certain cell walls and membranes could increase the build-up limit, allowing the cell to contain more toxins without harm.
This method greatly appeals to me, but it could potentially be difficult to code, along with potential complications in how the build-up could be effectively represented to the player.

Toxin Delivery
Alongside how toxins effect cells, introducing new and alternative ways to deliver them is just as important to making toxins a diverse threat. Below are methods I have proposed on how to implement such features.

  1. Organelle upgrades:
    The oxytoxisome could be upgraded into different forms that will deliver toxins in new ways. This would be a simpler method once organelle upgrades are implemented.

  2. Toxin delivery tied into behavior:
    The method that cells deliver their toxins could be included in the behavior editor. This could make it easier to switch between delivery methods as you wouldn’t need to mess with upgrading or downgrading specific parts. However, we would need to see about how to handle choosing multiple delivery methods in the options.

  3. Toxins tied to parts:
    Similar to concept 1, toxin delivery could be tied to specialized or altered parts rather than the oxytoxisome. An example would be a pilus being upgraded to deliver toxins.

Toxin Resistance
With toxins already being a considerable threat to cells, it makes sense that defending yourself from them must be reworked alongside the new features to keep the game balanced and fun. Just like how it works in the game now, toxin resistance could be a percent decrease to the effectiveness of the toxins, whether it be decreasing amount of build-up or amount of damage. However with there being three or more types of toxins, toxic resistance may need to be split into several individual values relating to each type. Doing this will ensure that it will be very expensive, if not nearly impossible to build complete immunity to all toxins.
If we choose to use the build-up system for toxins, it may be suitable to allow the cell’s own toxins to harm them should they not be immune, or otherwise unable to dispose of it quickly enough. This could be problematic with AI toxic cells however, so keep that in mind. Otherwise with the immediate effect system it might be best to leave cells invulnerable to their own toxins.

  1. Specialized Organelles:
    Toxic resistance could be increased by the use of specialized metabolosomes that break down the toxins faster, or membranes that provide a net resistance to all toxic intake. Oxytoxisomes could also provide an amount of resistance to the cell’s own toxin, but not as much as specialized organelles.

  2. Enzyme/Protein slots:
    This idea has been discussed before, and still remains as a potential option for toxic protection. The proteins and enzymes utilized for this feature are free-floating in the cytoplasm rather than being centered in an organelle complex. So they do not take up space in the cell, or are tied to a placed part by traditional means. My take on this idea would be that all cells have atleast 2 slots that they can place any component from a list into these slots. Placing the same compound into multiple slots would increase the effectiveness of said compound. The size of your cell could potentially provide more slots for this, as well as the presence of a nucleus.
    Toxic resistance could be tied into this mechanic by allowing cells to have free-floating enzymes that neutralize a specific toxin when encountered. The problem with this method is that the location of the slots is still a subject of discussion, along with complaints that this feature is “too gamey”.

I hope that what I have posted here sparks constructive discussion on the matter of toxins and how they could work. My own preferences are point 2 for customization, Point 2 for toxic delivery, and both 1 and 2 for toxic resistance. I look forward to what others think about what I have brought to the table, as well as any provided ideas of their own.

3 Likes

Now that we can make particle effects easily i think it’s time to get rid of the X projectiles and change the way toxins work. As i said on discord, i want toxins to be clouds that damage cells inside them, but there have been other proposals, like flamethrower-like projectiles, toxins that explode in an area and even an editor that lets the player make anything in between.

Concepts

CE3F83F3-8494-48EF-AC3E-0E67F3591576 shot 1

I suppose using a simple projectile is good enough for this release (i even made the particle effect already) but since we have all these new proposals i think we need to discuss how would they work and their impact on gameplay.

EDIT: I think is better to move this to this thread, since last message already mentions customization

I think all of these ideas for how toxins work would be great to have. maybe its something that should be added to the behavior editor whenever we are doing work on that?

To me this sounds way more like organelle upgrades. As the behaviour is the behaviour of the AI members of your species, and not how your toxins “behave”.

1 Like

Recently, I had an idea to increase the depth of the toxin system. Right now, it’s as surface level as it gets. My idea is to have toxins that can specifically target different functions of the cell, or just a generally bad toxin.

Each toxin can affect components of each cell, like disabling flagella, ATP production, of membrane integrity. When a toxin specifies a component to attack, it loses the effectiveness to attack other components, which enforces specialization. Then, each cell would also come with an antibody system. If a cell produces some toxin, it would also have to produce the antibodies for that toxin, which would require energy. The amount of energy each antibody requires is based on the disruptiveness of the toxin. So, a toxin which shuts down the flagella would not require much energy, but a toxin that destroys the cytoplasm would need a lot of energy to maintain.
This would cause more interesting prey/ predator relationships. A prey microbe might develop a toxin that disables the flagella of their predator, and allow them to get away easier. But the predator would probably develop cytoplasm toxin to damage their prey, without needing to be right next to them.

Here are the values I think would work well:
flagella toxin: 1 atp/s to make the toxin, 0.1 atp/s to make the antibodies.
Glycolysis toxin: 1.15 atp/s to make the toxin, 0.15 atp/s to make the antibodies.
ATP toxin: 1.3 atp/s to make the toxin, 0.2 atp/s to make the antibodies.
membrane toxin: 1.6 atp/s to make the toxin, 0.3 atp/s to make the antibodies.

In addition, a microbe who doesn’t make the toxin, can also create antibodies, but it requires the amount specified above.

What do you think? I remember seeing some stuff a while ago about adding better toxin mechanics, do you think this fits?

1 Like

I hope you don’t mind, I moved your post to the thread where various possible different agents have been discussed (the general term we use for toxins).

I don’t mind. By the way, do you know where the agent actually harms the microbe? I’ve spent about an hour and a half looking for it, but I just don’t know the codebase well enough yet. I’m trying to see if I can make a fledgling prototype of my idea, but can’t really do anything until I can change how the microbe is harmed.

Look in the AgentProjectile class. Specifically AgentProjectile.OnContactBegin calls Microbe.Damage.

I’ve been proceeding through the roadmap and have been attempting to generate discussions to finally nail down concepts which have yet to be fully concluded. Discussion has started for combat (Comprehensive Combat Revamp) and the upgrade system (Upgrades, Unlocks, & Endosymbiosis Master Thread) so up next is the Toxin/Agent discussion.

I’ll kick things off by listing pre-established ideas, providing some commentary, and noting where things are less established. I’ll propose a baseline idea to get the ball rolling.

Delivery Methods

Discussion of the methods of agent delivery have been pretty productive recently, and is probably the most finalized part of this concept. The combat thread provides more details, but generally, there are three ways of using toxins…

  • Spewing toxin clouds. This will be the only way prokaryotes will be able to use agents. In Discord, @Buckly mentioned the idea of not necessarily having this toxin be a “cloud” but more like an “aura effect”, where cells in a certain proximity to a toxin-spewing organism get a poisoned effect and take damage. I was skeptical at first, but I think this accurately reflects how bacteria use agents – not necessarily “predatorily” like shooting it at something to eat it, but rather, passively in an attempt to carve out more ecological space in accessing a nutrient. This paper (Bacterial competition: surviving and thriving in the microbial jungle - PMC) provides a very good overview. I like the aura idea, but we should make sure that, firstly, players aren’t constantly boxed in by a toxic prokaryote, and secondly, that players are able to see where exactly an aura begins and ends.
  • Utilizing it in a specialized combative organelle. There are various organelle concepts laid out in the combat thread listed at the beginning of the thread, but the basic idea is that certain eukaryotic organelles will utilize toxins to inflict direct damage on another cell. For example, the most well-developed of these organelles is the nematocyst, which essentially is a poisonous spike which rapidly thrusts forward and is discarded. This will represent the more predatory and direct method with which eukaryotes utilize agents.
  • Endotoxins. Essentially toxins which aren’t spewed, but are instead kept within a cell as a means to deter predation. These are defensive, and are able to be utilized by both eukaryotes and prokaryotes.

Agent Customization

I went down a huge rabbit hole of thought, trying to make a decently customizable “lock-and-key” method of toxicology and immunology. But I couldn’t settle on system that was easy to comprehend and without major flaws. These concepts included:

  • Having preset types of toxins which are more or less effective depending on the player’s morphology. So Toxin A would be more effective against cellulose aerobic organisms but less effective against chitinous iron-respiring cells, toxin B would be different, etc. But I figured that, firstly, this would mean the player wouldn’t have much of a capacity to build immunity if we made these buffs and debuffs mean anything (they’d always be weak to something), and secondly, most players will realistically go either with a purely aerobic organism or a photosynthetic organism as they transition to the multicellular stage.
  • Having toxins be either A, B, or C toxins and having immunology be focused on splitting three sliders in the nucleus between investment against A, B, or C toxins. Then there was the question of what stopped a player from just rapidly shifting between toxin A, B, or C to make sure nothing could adapt to them, or how much attention the player would give to immunology after figuring out an optimal blend of resistance.
  • Having X types of toxins and X amount of immune system patterns, with each immune system pattern having different resistances and weaknesses. It was too rigid in my opinion.

Ultimately, I began to ask myself: as cool as a constantly changing immunology landscape sounded, would it really be necessary considering the presence toxicology has in the gameplay loop? Ultimately, the only thing we need from a toxin system is an ensurance that…

  • The various toxin-parts we have conceptualized are viable, and
  • That cells have atleast some measure of shielding themselves against toxins.

We don’t need a constantly adapting network of locks and keys between toxins and immune systems in the cell stage; in-fact, it would probably be too much to pack in, considering the fact that players would also have to manage their environmental tolerance ranges, their upgrades, endosymbiosis, etc., and considering the fact that we would have to refactor this system for the macroscopic stage continuously. If the toxin and immunology system was the major focus of combat in the Microbe Stage, then such a system would be warranted; again however, toxins are simply an avenue of the combat system in Thrive, used by, at the most, 4 parts.

I think we’d want a slightly more complicated toxin system for the macroscopic stage. First, there actually are more things we can play around with in regards to agent-warfare in the Aware stage (certain toxins target certain systems for example). And second, we understand toxicology in that regard better. We have more room to create an easily-comprehend system there I feel.

Baseline Proposal

You will be able to customize the effect of a toxin. Each delivery method will deliver a base amount of damage, but additional effect damage (and, well, effect) is customizable by the player. There are various effects available depending on the nature of the part:

  • Pure Damage: Increases damage. The default, so it isn’t a specified toggle; it’s just what is applied if another effect isn’t specified.
  • Damage-per-Second: Akin to the more traditional poison effect in most games. Lasts up to 10 seconds. (Isn’t an option for toxin clouds/auras because that part is inherently DPS).
  • Disable Movement Parts: Disables cilia and flagella. Without resistance, lasts up to 15 seconds.
  • Obscure Vision: Constricts how far you can see. For AI, this would stop threat detection and scramble movement. Lasts up to 20 seconds.

Of course, more ideas for effects are welcome. I would like to note now that toxins still apply damage if another effect is chosen, just not as much as the default “pure damage”.

There are two methods of immunology:

  • Modification of certain organelles: For example, the mitochondria will have an anti-toxicity slider which will slightly boost generalized resistance to all effects. This will take away from the energy-production capabilities of said parts, however. You can get up to a 2% generalized resistance, at a cost of 30% of the organelle’s total energy production (obviously we should rebalance if inadequate).
  • Peroxisomes: Peroxisomes are essentially small organelles containing enzymes which assist with metabolism. Also relevant to this concept, they can breakdown toxins. Peroxisomes can be placed down like lysosomes and will provide 5% resistance to a specific toxin effect for 3 ATP. You can select what toxin effect is targeted in the Modify tab.

Note that immunology nullifies the total damage (base+effect) and the actual effect itself. So, damage gets reduced, and, for example, vision gets obscured for 15 instead of 20 seconds.

I think it is important to ensure that a toxin can never fully be nullified. Even the most resilient animals we can think of, such as the mongoose and honey-badger, aren’t completely immune to venom, for example. And in cases where animals are able to completely ignore a toxin, such as in clownfish or in sea turtles, the resistance is more due to morphology rather than some innate immunity in the blood; leatherback sea turtles have tough skin and a digestive system finetuned to eating jellyfish, while clownfish secrete mucous which prevents their skin from coming in contact with sea anemone stingers.

Concluding Thoughts

There’s a minimally viable system I feel can serve as a good baseline for toxins in Thrive. It’s pretty easy to understand while still offering some customization options.

If there were concluding thoughts I would like you guys to think of after reading this proposal, it would be a few things.

First, there is room for a more elaborate toxin system in the future, since, again, there is a good amount of easily accessible information out there regarding the use of venom, poison, and other toxins in multicellular life. However, perhaps we would infact benefit from a lock-and-key method in the Microbe Stage. If you feel so, don’t hesitate in bringing it up.

Second, I’m starting to wonder if an idea like the enzyme concept menu from a bit ago is becoming more necessary. We have lysosomes and now potentially peroxisomes implemented; though they aren’t exactly enzymes, those are rather small and abstract organelles which might not cohesively be represented by the traditional part-placement for other components in the Microbe Stage. Honestly, I forsee us potentially using a similar solution for environmental tolerances in the future, which would mean three very small and abstract types of parts that can clutter the editor.

A whole other tab in the editor or something like that is unnecessary, but I wonder if we can put a Modify button on the nucleus which would essentially compartmentalize things down and provide the same effect. A nucleus Modify menu could essentially condense everything, showing the enzymes/microcomponents as a graphical list of sorts and providing options for the player to add or subtract to the number of each component present.

One thing is that prokaryotes obviously don’t have a nucleus. So perhaps the origin cytoplasm is treated as a plasmid until the nucleus is placed, which allows you to tweak your enzymes.


Otherwise, maybe it is time to more seriously consider a passive protein/enzyme system. A previous concern I had was related to how many proteins we could come up with and how far down the macroscopic stage we could make it a relevant system. Perhaps the protein system can have perks which are the closest thing to an outright flat upgrade in Thrive, and perhaps that can open the door for more customization and gameplay.

2 Likes

This is a good overview of our current concepts for everything agent related!

I must admit I have always been apprehensive of the lock and key concept. In any form of implementation it introduces a nice amount of depth that encourages players to adapt against new threats or specialize towards familiar ones, but at the cost of greater complexity and steeper learning curve for players to surmount. Thrive is already a pretty complex game, and any player with a shaky understanding of biology tends to have a lot of trouble figuring things out.

My biggest concern being that players might easily be stumped by their toxin resistance not working against species, not realizing their resistance is not effective to the toxins they encounter.
The biggest thing that would cause this is identification. How would players be able to recognize one toxin from another? Different colors?
Would cells have a clear indication of what form of toxin they possess? Normally players would be able to learn what is safe or not through trial and error, but when your reliable source of food is suddenly using a different toxin, you’re in for some unforeseeable trouble.

My only idea at the moment to remedy this, should we decide to implement this feature, is to lock additional toxin types behind a game setting as part of difficulty settings. That way, players would be able to play with just a single toxin type, and not worry about being overwhelmed by additional types until they are ready to take it on. Perhaps a part of hard mode?

The history behind the enzymes system is a messy one; It was hotly debated on what parts should remain as parts, or be transitioned into the passive slots concepts. On the extreme end, prokaryotes were proposed to not have any parts outside of external and cytoplasm. In a way, it represented a sort of crossroads for Thrive’s development, and a potential paradigm shift on how editor gameplay would play out.

In the end, we decided that keeping enzymes/proteins as placable parts was the better option, as that provides a more visual and interactive way for players to design their cell. Hh personally compares the building of your cell to that of a factory such as in games like Factorio, which is the sort of constructive sensation we decided to preserve.

Personally I think the enzymes system as it was originally envisioned should be laid to rest. If we do indeed have need for something like it, I would consider a revisioning of the membrane tab as a home for all adaptations cell-wide.

Cell-wide features such as protein temperature tolerance, internal osmotic concentration (salinity control), toxin characteristics, etc, could be fine tuned from this tab in a similar way to selecting a membrane or using a slider. This would eliminate the need for a new tab, while still keeping things sensibly ordered. These wouldn’t be enzymes or proteins, because they are traits unspecific to any part.


Now’s a good time to remind everyone that with each new layer to the editor, there is a steeper learning curve for new players, so simplicity is a major factor to consider at all times. It’s always important to review what we already have and consider if more is yet needed.

New players will always want very little on their plate, so that they can get a tentative taste for what is to come, old players will want more and more, as they’ve already enjoyed much of what is available.
With new features, you must consider this balance, and try your best to uphold it. This is why many games gradually introduce new features and forms of customization as you progress, and is a big reason behind my designs for the unlocking system. Difficulty options too, can serve well for this purpose.

Thank you for taking the time to dig through these concepts! It’s always excellent to review what we’ve gone over, and further solidify our concepts as a result.

2 Likes