Slime

I’d like to add slime, a new agent, to the upcoming release. This thread is for discussing how it should function from a gameplay perspective.

My proposal is that the player or AI can evolve a new organelle, a slime secretor. This would be available to prokaryotes as well as eukaryotes, since smaller cells will be most in need of it, and there is apparently scientific basis for bacteria producing slime.

Much like the oxytoxy vacuole, if a cell has a slime secretor, it will generate a new agent compound, slime. I’m not sure what slime should be created from. Looks like bacterial slimes are generally polysaccharides which are a type of carbohydrate, so perhaps the main ingredient should be glucose? Input is very welcome here.

Slime secretors would be an external organelle. I’m imagining some kind of tube or jet thing. Players can hold down a hotkey to use ATP to release slime clouds into the environment at a steady rate, at a location dependent on how the external organelle is positioned, until their slime storage is empty.

Slime could have three main functions:

  • Cells moving through slime have reduced movement speed.
  • Cells moving through slime can’t engulf. In the player’s case, I’m imagining the engulf hotkey button would turn red while they’re moving through slime as a visual indicator.
  • Cells expelling slime could gain a speed boost opposite to the direction of expulsion. This is based on an article posted on the forum some time ago.

One difficulty here is deciding which of the cells moving through slime are actually affected. By far the simplest implementation (I’ve already made a crude version) is to affect every cell: the cell that expelled it, cells of the same species, and others. This way, we can treat slime just like every other cloud since it affects all cells the same way.

One alternative would be to have slime only affect other species. This is significantly harder to code and could be quite confusing for the player, but would mean cells aren’t slowed immediately as they produce slime, and could lead to the start of the more involved agents system we’ve envisiged for some time. I tried implementing this by attaching a species’ hash to clouds they produce, but ran into several problems. Even more complex would be to have slime affect all cells except the individual which created the cloud.

I think on balance it’s best to have slime affect everything, but I’m willing to hear other opinions. There are acceptable workarounds to cells being affected immediately by their own slime trail (secreting further away or adding a counter-balancing speed boost when secreting, for instance).

There are two more open questions about how this should function:

  • Do species moving through slime clouds collect nutrients from them? Again, this would be quite hard to implement, since either the slime compound will count as an agent once collected, or we’d need to add a special case to convert the collected compound into something else.
  • What balancing effect does this have on engulfment? I initially saw this as a way to nerf engulfment, but the engulfment revamp in 0.5.9 did that pretty well (perhaps too well…) so I’m worried this could go too far. At the same time, I think this will be a very fun feature, so if necessary, it’s probably worth looking at other ways to buff engulfment to compensate.
5 Likes

Species ID has to be unique, there’s various bits in the game making sure it is so. So association the species ID should work. Fired toxins work by storing the Species that shot them in them, which works, but if there’s a really large amount of slime, that might not be an usable approach.

Fired toxins also store the entity that fired it so it can register a collision exception with it. My point above the suitability of this when there’s a ton of something also applies here.

I don’t see why not. Would make sense from a gameplay perspective at least to make it more different compared to oxytoxy.

We could start off with this. Gameplay testing is needed to know how the mechanics will actually feel like when playing.

I think it’s fine to not get anything from the slime. Simpler initial implementation is better after all in my opinion.

True, species ID would work. The issue isn’t so much what the identifier is, but what to attach it to. As clouds diffuse and disperse, their identifiers need to as well, and what happens when clouds mix? Do their identifiers stack or do we choose whichever has the higher amount? Depending on the implementation, these may be very difficult to figure out.

This is the same issue as with making toxins into clouds. I think basically some kind of approach where each species’ slime would need to be a different compound, would be the way to solve it. Though for your changes if we can do without that, it would be a vastly simpler thing to implement.

Great idea! It’s always exciting to have more options for interacting with other microbes in any sort of way.

I think glucose is the best option for an ingredient, as out of all the base compounds available to the player, glucose seems the most reasonably likely to produce something sticky.

All of the features of slime you have proposed sound good to me.

Personally, I’m rather averse to the idea of adding compounds with very specific uses such as “slime”. My preference would be either to merge it with oxytoxy as a generic “agents” compound, or to tap directly into a cell’s glucose stores to convert to slime when activated.

Personally, I would say that a decent approach would be for cells possessing slime jets would be unaffected by slime, or atleast not as effected, as they would presumably have the same mechanisms for moving through it as other slime cells. This gives players an option to adapt to any situation where slimy cells are very common, and presumably makes it easier to handle code-wise as well.

This is a rather funny idea, but not without merit.

I think we could either have some manner of specialized adaptation that allows cells to feed off of the slime, or slime could perhaps decay over-time, becoming glucose. (I’m not mis-interpreting this question am I?)

Personally, I would leave out the disabled engulfment feature, at least in it’s initial implementation. Being able to thwart a predator’s path towards you is already a pretty powerful ability that lessens the danger you might face. I feel like it makes the feature more unique too, rather than being “another” method of disabling engulfment.

1 Like

I don’t think I follow your reasoning here. Why are you averse to it? Combining with oxytoxy makes no sense to me, since the two serve very different purposes and may be made in completely different ways. It would get even more confusing if oxytoxy is replaced by a cloud too, since then you’ll have two clouds acting in different ways (damage vs speed reduction).

I’m all for an expanded roster of agents, since we have the whole UI element in place but only one thing currently filling it.

That’s a fair idea.

That could work, although maybe best left to the future in my opinion.

I suppose I see that point. My thinking was that this could be quite useful for sessile organisms, but yeah, there are other options for them.

Asking Oliver, or someone else to do the general agents system right now seems a bit unwieldy. I can see slime being enough of its own thing that even with a toxin rework it wouldn’t necessarily make sense to combine the features into the same system.

I think Buckly is referring to the agents system talk where, basically all projectiles would be removed and replaced with clouds. There was a visual proposal image in this issue as to what could be used to have dozens of different toxins represented to the user (as we’ll run out of colours):

Here’s one of the images which I’ll directly embed here just in case the github link doesn’t stay working:

I just want to avoid having too many “resources” for the player to keep up with. If everyone else feels it’s fine, I’m okay with the slime storage, we can always remove it later if it does turn out to be a bit much I suppose.

No not really, I was basically just saying it might be better to use the “oxytoxy” agents compound or to directly use glucose.

I should probably elaborate that I did not intend for that idea to be required. I was just throwing out ideas in response to your question.

Very interesting suggestion, I was actually reading about this a few weeks ago. I think the real-world analogue to what you are thinking of Oliver is Glycocalyx or Mucilage.

Few things from what I read on the subject:

  • Due to the laws of chemistry, glycocalyx must be sugar based to be sticky and viscous. So I think the best way to represent it would be to make it a substance a cell can produce but at the cost of a lot of glucose.
  • Because it is heavily sugar based, it gives a strong odour to cells who have them. This could tie in if we allow chemoreception to detect cells based on how strong of an odour they have.
  • It performs several functions in nature and would be a cool addition for gameplay.
    • A cell can produce it to coat themselves and make engulfment harder (but not impossible).
    • It does not necessarily coat the entire cell. Some cells only produce it on one particular region of their membrane.
    • It can shield a cell from environmental conditions they are not adapted to.
    • It allows cells to adhere to other cells or to surfaces. However I think glycocalyx is too thick and sticky to allow cells that stick together with it to communicate, so cells binding in this way could not form coordinated colonies. They can simply bind together to resist engulfment, or to stay together in the face of strong currents.
    • It can be evolved to be ejected in a certain direction to propel the cell in another direction (basically a glycocalyx jet or a mucilage jet)

Based off of that, we could create two different organelles/parts. I would recommend not using the name “Slime” since it is a little colloquial haha and can refer to many things. Perhaps Glycocalyx? Or Mucilage? Let’s say we called it Glycocalyx, here’s one way we could implement it.

Glycocalyx Coat

  • Requirements: Must be placed on the edge of the cell.
  • Description: Produces a sticky and viscous substance called Glycocalyx that coats the cell’s membrane. Consumes a steady rate of glucose from the cell. Can be evolved into a Glycocalyx Jet.
  • Effects:
    • Increases the weight of the cell (aka slows them down).
    • Reduces environmental penalties to the cell by up to 25% (if completely encased, it will be proportionally less for each hex of exposed membrane). This would require some way of calculating how much of the cell’s membrane is covered by mucilage coat hexes.
    • Delays engulfment by 5 seconds on any attempts to engulf this cell. If this cell is able to escape during that time, engulfment is terminated.
    • Enables the cell to adhere to surfaces (not implemented in the game yet) or other cells.

Glycocalyx Jet

  • Requirements: Must be placed on the edge of the cell.
  • Description: Produces a sticky and viscous substance called Glycocalyx, that can be ejected from the cell to propel in the opposite direction. Consumes glucose directly whenever the cell moves. Can be evolved into a Glycocalyx Coat.
  • Effects:
    • Increases speed in a certain direction, but consumes glucose directly when propelling in that direction. Leaves a trail of glycocalyx behind as the cell propels, which then slowly decays.
    • Secreted glycocalyx can be consumed for glucose by other cells. Glycocalyx slows down cells that move through it.

The strategy behind these adaptations is that it is useful for cells that produce an abundance of glucose. Any cell that is highly adapted to producing a lot of glucose can basically convert their excess glucose into protection from engulfment and the environment, or a boost to speed. However most cells will not produce an abundance of glucose and for them this mutation will often not be worth it.

EDIT: On further thought it seems like Mucilage is the most accurate name we can choose from what I am reading. Mucilage can be used to refer to the secretion produced by BOTH microorganisms and macroorganisms (like plants). So mucilage would be present as a possible adaptation (and a harvestable compound) even in multicellular and beyond. In fact even in the strategy stages, civilizations could harvest plants for mucilage as it can be used to make glue or gel or medicine.

Slime doesn’t make microbes slower, it actually makes them faster I think. Most bacteria have a thin layer of slime to aid in mobility, adhere to surfaces, and to offer protection. Some like E. Coli have an extremely thick layer of slime to nullify Acid attacks (which does slow microbes down much like cold)

I think slime jets are not correct, i think usually cells use oscillations in their slime layer to move in absence of cilia / flagellum.

Actually there is a detected form of motility amongst cells caused by the ejection of polysaccharides (aka slime/glycocalyx/mucilage, all different names for a sugar rich substance). It’s often just referred to as gliding, but one of the means by which you can “glide” is through a “jet” where you eject that substance.

Also do you know where you found that Glycocalyx makes cells faster? I think you’re just thinking about the fact that bacteria often have a glycocalyx outer layer, and are also quite fast, but I don’t think it’s the Glycocalyx that is necessarily making them faster (unless they’re ejecting it for propulsion in jet form). From what I know, if they are not physically ejecting it, its net effect would actually be to slow them down, since it’s a heavy, sticky, and viscous substance. So Oliver is correct in that it would slow down cells that move through a trail of excreted Glycocalyx.

https://www.cell.com/current-biology/fulltext/S0960-9822(07)00487-3?_returnURL=https%3A%2F%2Flinkinghub.elsevier.com%2Fretrieve%2Fpii%2FS0960982207004873%3Fshowall%3Dtrue

Hmm interesting. I just remember reading a paper explaining how many cells use waves on their slime layer to move in absence of motors, and the slime plays a big part. In that case then, i fully support this idea

1 Like

Sure, I imagined the name would have to change to something more scientific. So are we going for mucilage as the compound name?

Given the difficulties with balancing any changes to engulfment as it stands, I’m leaning quite strongly to implementing only the “jet” organelle for now - which acts as a speed boost for the cell using it and leaves a trail of mucilage that slows down all cells which move through it - and leaving the coating until later. I think it would make sense from multiple gameplay perspectives to have the jet active only when the player presses a hotkey, making this akin to a sprint button.

I’ll consolidate the implementation on my branch with this information and see what people think once it’s ready.

2 Likes

Sounds good! The only thing I would say is that many cells rely solely on mucilage jets as a form of locomotion, so I’m not sure it would be good to make it a sprint only feature. Is there a way to make jets only activate when you propel in the opposite direction to the way its placed, kind of like how flagella animate when you swim opposite to the direction they face?

From what I understand the sprint feature is meant to increase the speed of all forms of locomotion the cell has but at an increased energy cost. So like for example if a cell has a jet and flagella, sprinting would increase the speed granted by both of those while active.

Getting that closer to implementation kind of fizzled out, so unless someone picks up spearheading that feature, I doubt it will get done.

Ah okay, could help out with the design and implementation of that (once I’ve had a chance to make some progress on the MP Modifier and the Microbe Biome Ambience). My main point though is that I think it would be better to not tie the “sprint” feature to a single part, but instead make it a mode that affects all locomotion parts, something consistent with how it would likely operate in later stages.

Having slime jets and sprinting features both doesn’t seem like it would be problematic. Though the effects probably shouldn’t stack if a cell is doing both at the same time.

By the way forgot to respond in terms of Mucilage as a compound. Yeah I feel like “Mucilage” is the most accurate name to what we want, and the most comprehensive in that we can use it again in later stages.

Since mucilage is predominantly just made of complex sugar chains, I don’t think we need to create a new compound for it. We could simply make consumption of it yield glucose, and vice versa a Mucilage Jet would directly consume glucose. Also, since it’s a thick gooey complex sugar, it cannot be digested by non-adapted cells, so we could make Cellulase (from Lysosomes) a requirement to digest Mucilage (a large part of mucilage is comprised of cellulose). Which means though most cells will see mucilage trails as a nuisance, some cells can adapt towards a niche of feeding off of the mucilage trails.

In terms of representing it visually, mucilage appears as a clear gel:

It’s what you see coating the insect that has been trapped and the stalks of the plant. Would it be too much effort to implement it as a clear, viscous, gel-like trail that comes out behind the cell in game? Something like the fluid seen moving in this video?

If that would be too much effort that we don’t have the manpower to produce right now, would probably be easier to represent it via repurposing compound cloud code or the toxin cloud code for now.

I’m not really a fan of this to be honest. As a player I just like the idea of having a separate store for agents, and I can see it getting very confusing for people to constantly translate between two compounds in the environment that aren’t two compounds inside cells.

That being said, I have noticed it’s annoying that producing mucilage can sap quite a bit of glucose when you don’t want it to. I think that might be covered by a more general feature for turning agent production on and off in the environment, since oxytoxy sometimes causes the same issue (albeit with ATP instead of glucose).

I like the sound of that. The world has filled with a lot of unusable green goo in my testing so far, so a way to evolve mucilage harvesting makes sense.

While I agree it would look better as clear gel, that’s way beyond our capabilities right now. At least, it certainly is for me, and I don’t want this feature to creep up in scope until it spirals out of my control.

I think I have functionality mostly there. There are a few holes that I’ve listed in the WIP PR, most notably ejection based on slime jet orientation and integration with Auto-Evo. But as it stands, I’m having a lot of fun with it already, especially now I’ve told the AI how to use it.

I’ve discovered slime jets are just as useful for predators as they are for prey, since they open up the possibility of ambush predators that lie in wait, building up stores of mucilage, then pounce. Watch below some examples of the AI and myself fleeing and chasing.

3 Likes

Doing this off my phone so will take a better look once I have my laptop later today, but wow man looks really good so far in the demo video nice work.

Yeah I totally understand we have limited graphical manpower as of now, better to just put that on the back burner and implement it using existing textures for now.

Also yeah since you implemented it as a compound cloud I can see why it might create some confusion for players if it directly converted into glucose, though I think that would be minor. What you mentioned about it unintentionally using a lot of glucose is one reason why I was thinking it would be easier to have glucose directly translate into mucilage and vice versa. It also potentially could make it easier to design the AI to use mucilage if it can simply refer directly to its glucose level. But yeah ultimately depends on what makes gameplay feel better.