Compound Rebalancing

Interesting questions.

Re sprinting I was kind of imagining it similarly to how it works now. So atp is a compound and mitochondria slowly make it over time. When you move the flagella use the atp up. (That’s how it works now right?)

I think it’s sort of got sprinters vs marathon runners built in already. So if you have a lot of mitochondria and a few flagella then you can make enough atp to move continually and you are a marathon runner. However if you have a few mitochondria and lots of flagella then you can move really fast (because your cell is light and you have a lot of flagella) but you will quickly run out of atp and need to wait while your mitochondria make more so you can move again.

I think this is the way things work now, and I think it’s quite an interesting little bit of gameplay. For example I can imagine cool predator cells which sit still waiting for prey and then quickly jump on them when they are close.

The idea of a sprint mechanic on top of this is interesting. If it was a button that made you move faster then it would need some sort of drawback, like maybe it damages you a little? If it’s just a run button then I think people would hold it down all the time.

Re compound ejection I’ve been playing a bit of Thrive recently and one thing that happens is if I go in an oxygen cloud then I get a lot of oxygen but then if I swim into a glucose cloud my cell is full and I can’t pick any up. It’s interesting that finding ammonia first is kind of a death sentence, because if you swim through the cloud then you become full and it’s hard to pick any glucose up to help burn off the ammonia and then it’s easy to starve.

We could allow people to have control over ejecting compounds but that then is quite complicated. I think if we just gave a certain amount of storage per compound then it would be easier, just give 100 storage per compound or something. It then becomes obvious when you need to jettison a compound.

I’d be interested in anyone else’s experience with compound gathering though.

1 Like

Hm, an ejection mechanic could also come in handy if you want to lay a trap for other cells. As for a limit on storage it does make sense to have one for each compound that way the player doesn’t end up starving to death (me every game almost).
What if fatigue is a side effect of sprint? Everyone gets that feeling after running regardless if it’s a marathon or sprint. We could have them develop too much CO2 and they need to stop to vent it or risk killing the cell in a cell rupture death or toxin buildup from CO2 in the cell itself. Or a lighter one that goes with that is that CO2 could fill up your free storage until you stop to vent, creating a time when you are vulnerable while your cell essentially takes a rest like all runners after their distance run. It would be a good mechanic for escape but without a consequence we end up using it forever. Just look at some other games without a stamina type system. In Morrowind I ran and hopped around everywhere even though everyone doesn’t run around forever in the real world. That method could be expanded in later development, plants would use a different mechanic.
Too much oxygen and the plant could poop like a balloon too!

1 Like

That’s an interesting idea. One way of doing it would be to say “if you press the run button your flagella are 50% more powerful but you burn atp twice as fast.” In the current setup that would, as you say, make loads of extra CO2.

That means it’s a great boost in a dangerous situation but you really don’t want to hold it down all the time.

Precisely, and it would introduce a mechanic that would be needed when your creature goes into the aware stage. It wouldn’t be as bad as cell stage where co2 builds up too fast but the idea would be grounded in how you need to rest after a sprint or marathon. I’d think it would help with balance early on so you’re not abusing a sprint option. It’ll be there and usable but the side effect can be death, again with a real example you can die if you run too long without rest or sustenance.

I would agree that a sprint/run mechanic would be a great addition to the game. Increasing the power of your flagella at the cost of increased ATP consumption is a great bit of, well game, to add to the game. In response to tjwhale

I think there should be something in place to ensure that Z = 0 when ATP stores are below some value so that your cell doesn’t spend glucose on growth and wind up killing itself. This could be something that the player could manipulate in some way but that might complicate gameplay in an unnecessary way.

2 Likes

It wouldn’t be a compound but it would be a metric on your cell, I’ve been thinking about it recently because moopli was the one who had the solid concept for it but at the bottom of my reply I’ll put my idea on it.

That is a good topic for a thread. It’d ideally have to be based on some priority system of how much demand your cell has for the different compounds, with energy nutrients being higher priority than growth nutrients.

That’s an interesting idea but my ideas on it are a little irrelevant if we do adopt an ATP system like I’ll describe below, so I’ll explain that first and then we can see what we think.


Here’s an idea of how we could make ATP be just a balance and not a stored compound. Let me know what you think.

So currently ATP is a compound that is collected and stored just like the others. However realistically ATP is only created when needed and used up right away, and cannot be stored. ATP would be better represented as a balance than a collectible compound. For example, your cell will at rest use up a certain amount of ATP every second. This represents the basic energy needed to maintain the basic functions of staying alive, most important of which is maintaining the internal pressure of your membrane so you don’t explode. Certain organelles will also use up a certain amount of ATP every second as well. Some organelles, like flagella, will only use ATP when being used and otherwise will not use any.

On the other hand, your cell also produces a certain amount of ATP every second, using up your energy nutrients in the process. Cytoplasm performs fermentation (which I realize I have been incorrectly referring to as glycolysis all this time), which produces a small amount of ATP per second. Mitochondria perform aerobic respiration and produce a large amount of ATP per second.

Your cell can only use as much ATP per second as they are capable of producing. A good example of this is like a CPU, which can perform only a certain amount processing per second. It’ll rest usually at a low value such as 10% per second, but if you try to run many processes at once it will use up more and more until it caps at 100%.

Here’s an example with arbitrary numbers. Your cell has the following organelles which use the following amount of ATP:

  • Nucleic Core (Nulceus, ER, Golgi) -10 ATP/s
  • Lysosomes -15 ATP/s
  • Flagellum (I will explain this one later) Uses 5 ATP/s when active
  • Agent Secretor (I will explain this one later) Uses 5 ATP/s when active

And the cell has the following organelles/parts producing the following amount of ATP

  • Mitochondrion +32 ATP/s
  • Cytoplasm (1 hex) +2 ATP/s

So overall the cell produces 34 ATP and consumes 25 as its base rate, which is allowed (a cell designed in the editor with a negative balance cannot be saved/used). This leaves a remaining balance of 9 ATP. This means that the cell can use it’s flagellum to move, or secrete agents, but not both at the same time. This is since the cell cannot make that much ATP/s and the two of those would be -10, one more than the remaining balance of +9.

Here is an example of how we could display this to the player.

image
The right end of the bar would represent the total amount of ATP/s the cell is capable of producing. The filled area of the bar shows how much ATP/s the cell is currently using (just like CPU usage shown on a computer).
image
The bar would sit at a certain level when your cell is at rest (showing the base rate of ATP use) and increase as you do things like move or secrete agents. One way of thinking about what the bar is showing you is that its displaying how fast you are currently using up your energy nutrients (which could be glucose or iron or whatever).

This bar would then be shown somewhere on the HUD, as it is now. For example, in the UI draft I posted the other day…


…the green ATP bar would show what I explained above, with the filled portion showing the current ATP/s usage (ignore the text description of the ATP bar on the image).

2 Likes

This makes a lot of sense to me, you can’t force out more than is being produced in any kind of setting. If you push a computer too hard thermal issues set in or worse (first computer I build caught fire) so having it based on a production bases would give a more in depth limitation and similarity to a real cell’s function. But how would the player get ahead or beyond the barrier of only so much ATP produced? If it becomes a sort of fixed amount depending on the size of your cell we could end up seeing cells as big as the editor filled with mitochondria.

I think it would be a good incentive for the player to bypass that possible barrier by becoming multi-cellular and thus progressing the game past single cell. Sticking to as much realism as possible it might be as close a simulation as we can get to a multi-cell transition where it gets to the point where it makes sense to bond together with another cell in order to more easily survive and move around but the limiting factor could very well be cell size with certain compounds needed for cell cohesion or another key to unlock the figurative barrier.

3 Likes

@NickTheNick sorry just got round to reading this now.

This is an interesting idea. I like how it makes you choose between having a lot of power generation and being able to run everything all the time, or being lean and turning things on and off, it’s kind of like FTL.

I also think it might be a good foundation for a stamina system as an animal where you have to balance how much energy your muscles use vs how fast your bloodstream can circulate oxygen.

On the other side how different is it from having atp as a compound and then only allowing the player a small store of it? So if you are using more than you can produce your store will empty quite quickly and things will start shutting down, however you do get a bit of a stamina bar-like effect where you can sprint for a little bit.

Does this result in much the same gameplay? What do you think?

I’m glad you liked it, those were similar the advantages of it that I was considering.

We could have that as well. I’m not sure what it would be like but we could test it out.

I do see a problem with the ATP-as-CPU idea though: What if you have multiple flagella that altogether use more than your available amount of ATP/s? Should the player be able to activate specific flagella? (Or really any scenario where the same control activates multiple organelles that would use more ATP/s than you have available)

1 Like

When you try to run more than you can generate everything could just run less efficiently so that the end result would be the same as if you didn’t have those “extra” organelle

1 Like

Ah that’s a good idea! In that case I think this would be a good system to replace the current ATP approach.

So let’s summarize the points on this thread so far, as well as discussion on other threads and Slack about what gameplay changes to implement for 0.4.0 alongside the engine switch (though some of them may end up being in the update after it). Let’s gather them into one place so we can add it to the wiki and more easily refer to it in the future.

@tjwhale I remember you wrote a list on the slack of gameplay changes we could make in the next update. Could you post them again here? EDIT: Thanks added.

The list so far:

  • Remove O2 and CO2 as compounds and make them features of the environment. (Compound Rebalancing)
  • Add in additional environmental variables. Pressure, salinity, acidity, temperature, sunlight. (Differentiating Microbe Biomes)
  • Add in an “Ecology” page to the editor, where the player gets to see which biomes its species lives in and choose which one to spawn in. Some environmental variables will be shown here instead of in-game HUD.
  • Remove the ability to store agents and just have them be immediately produced and ejected when triggered, meaning we don’t have to track them as a compound in the UI.
  • Remove FAN acids (fatty, amino, nucleic) and add phosphate. (Compound Rebalancing)
  • Make ATP like CPU. (Compound Rebalancing)
  • Rebalance movement (Cellular Movement)
  • Change control scheme to potentially use just the keyboard and free up the mouse. (Control Scheme)

Let me know if I missed anything. If there are no objections to the above points, we’ll add them all in as final concept to the wiki.

3 Likes

I think the list of gameplay changes is here

I think this is a good list.

Re agents how would they be limited? Would it be with a cooldown (like you can only fire once every 3 seconds) or would it be that they use up ammonia and glucose or something else?

Re O2 and CO2 I agree removing them is a good idea. What would it mean if they were features of the environment? How would that change things?

Same question for pressure, salinity, acidity and temperature, are they just numbers for each patch and if so does it make any difference to the player? I think any feature is much more powerful if it’s rooted in the gameplay.

A few suggestions: I like the idea of sunspots a lot which are the only places where chloroplasts work, especially if all cells can move. I wonder also if we could have lava spots in the vent biome which are orange patches which damage you when you touch them.

I liked the idea of icing happening, not sure how that would work. Maybe ice spots which make you slow and damage you unless you have anti-freeze protein?

Re O2 one option would be to have “the great oxygenation event” which happens after some number of generations, maybe 5, which is just a message you get that unlocks mitochondria in the editor. It would then be quite a game changing moment and would be a big upgrade to the types of cell you could make. For example maybe if you rely on cytoplasm to produce power before this then you can’t make enough power to support a nucleus, however once the GOE happens you can use mitochondria and then you can have a nucleus. That way it’s very tied into gameplay and will be memorable and powerful.

For example:

if cytoplasm makes 5 atp/s, a flagella costs 25 atp/s and a nucleus costs 50 atp/s under your cpu style atp scheme.

then at the start of the game you can’t really afford a nucleus, you just have a small prokaryote which spends most of it’s power on a flagella and a couple of other organelles.

But then if mitochondria make 75 atp/s then once they are unlocked it rather changes things. Then you can make what is now the starter cell without too much difficulty using the new, much better, powerplants. On some googling it seems that mitochondria are pretty much required for being a eukaryote so it’s reasonably realistic and makes good use of O2 and the GOE.

“Most eukaryotes have mitochondria, while every multi-cellular eukaryote does. However, a few one-celled eukaryotes lack mitochondria. All of this type of eukaryote live as parasites.”

2 Likes

They would use up compounds. We could implement a cooldown as well if we find they are overpowered.

I’ll explain that at the bottom of this post.

I feel like lava spots would be too unrealistic, but I think something like patches of dangerously hot water would be a good alternative (near the vents).

On the point of mitochondria and aerobic (oxygen based) respiration, I fully agree. One of the major consequences of an Oxygenation event is the ability for organisms to aerobically respire which gives much larger amounts of energy.


There have been quite a few questions and confusions floating around slack and the dev forums on the many concept changes we’ve had recently. I think this is understandable because we’ve redesigned many aspects of the game and reached a state that I think is a LOT more fun AND realistic than what we had before. However, it’s vital we all get to the same page for moving forward.

Microbe Bioenergetics

First a quick explanation of the confusion between producing ATP, photosynthesis, and chemosynthesis.

The Basic Principle of Life
In the chemical world, multi-atomic molecules are held together by bonds between its atoms. These bonds have energy stored in them, and breaking these bonds will release that energy. Some molecules have bonds that have a lot of energy stored in them, and some very little. All life is based on the principle of finding molecules with energy rich bonds in nature, breaking those bonds (aka digestion), and harvesting the energy from those bonds. Many molecules are very hard to break apart and/or yield very little energy, which is why most life has evolved to harvest energy from the same set of chemicals.

ATP
In cells, the way they capture that released energy is through ATP. When a cell needs energy, it will break an energy rich bond from one of its food molecules and then “capture” that energy with ATP to be used immediately on moving or maintaining its membrane or what have you.

Energy Rich Molecules
Glucose is the most commonly used energy rich molecule in nature. In the absence of oxygen, cells will break apart 1 molecule of glucose to produce 2 ATP, as well as 2 ethanol and 6 carbon dioxide as waste. In the presence of oxygen, cells will use it to help break apart 1 molecule of glucose to produce 36 ATP, use up the 6 molecules of oxygen, and produce 6 molecules of water and 6 molecules of carbon dioxide as waste.

However, glucose is not the only energy rich molecule in nature. Some cells take Iron (III) and separate one of its electrons, forming Iron (II). This process releases a certain amount of energy which is then “captured” by ATP, just like with glucose. In this case, I believe 2 ATP is produced by the iron. Note that this doesn’t make the cell a chemosynthesizer, it simply uses iron instead of glucose for energy. I will explain chemosynthesizers later.

Other energy rich chemicals that can be used include manganese (IV), carbon dioxide, and sulfur. This process of breaking down energy rich molecules to harvest their energy in the form of ATP is called respiration. For example, aerobic (oxygen based) respiration, where oxygen is used to help break down glucose. Anaerobic respiration is breaking down energy rich compounds without the use/aid of oxygen, such as the iron example above.

Biosynthesis
Biosynthesis refers to the ability of a cell to create its own energy rich molecules, instead of having to search for them in the environment. Photosynthesis is a type of biosynthesis where a cell uses light (Photo-) to produce (-synthesis) glucose from chemicals, namely carbon dioxide and water, and producing oxygen as waste. It then breaks apart this glucose just like mentioned above to harvest the energy.

Wait a second Nick, doesn’t creating the glucose cost energy? Yes, yes it does, but not as much as harvesting the energy from it afterwards, so overall you actually make an energy profit. However, the energy profit is pretty slim, which is why most organisms that use photosynthesis to produce their own glucose don’t move (moving is very energy expensive).

Chemosynthesis
Chemosynthesis is the same principle. However, instead of using light AND chemicals to produce energy rich chemicals, it just uses chemicals. Chemosynthesis is actually an umbrella term for many different processes. For example, cells that use hydrogen sulfide chemosynthesis spend some energy to produce glucose from hydrogen sulfide and carbon dioxide. Water and sulfur are produced as waste. The cell then breaks apart the glucose for energy, making an energy profit. Remember, a chemosynthesizer might not necessarily produce glucose, it might produce some other energy rich molecule which will then be harvested for energy profit.

Microbe Biomes

Next a quick spiel on the environment and environmental variables.

Oxygen, Carbon Dioxide, and Other Gasses
The plan is to remove carbon dioxide and oxygen from the game as tracked compounds. We could potentially relegate other gaseous compounds to this position as well. This would mean these compounds are not shown as clouds, nor do they take up storage in the cell. They are still relevant in the processes that use them though. How can we model this? These are the options I can think of:

  • On/off. Ex. Aerobic respiration will run if oxygen is present, and stop if its not.
  • Above a threshold. Ex. Aerobic respiration will run only if oxygen is above a certain amount.
  • Scaling. Ex. Aerobic respiration’s reaction speed will scale with the presence of oxygen. More makes it run faster, less makes it run slower.

We should decide on one of these approaches to take. I’m leaning towards the third one.

Biome Differences

Some biomes may have more oxygen and some more carbon dioxide. What’s the point of this?

  1. It makes different survival strategies more or less “profitable” in different biomes.
  2. It limits your species to biomes that you can survive in, which is a big factor of real life ecology and evolution. If your species dies in the absence of oxygen, then you need to adapt to the biomes that do have it or adapt to live without it.

These are some of the big driving forces of evolution!

Other Environmental Variables

There’s also been mention of salinity, pressure, acidity, temperature, and sunlight. The arguments for the inclusion of these is basically the same as the two provided above.

Interface

Won’t all these environmental variables overwhelm the player? Ideally, no. Some of these variables will hardly fluctuate on the microbial level, so we can hide them from the in-game HUD and only display them on the Ecology page of the editor. Also note that some of these variables require senses to detect. If you don’t have thermoreception, you will not see a UI element displaying temperature (or it will just be blank or read “n/a”). Same with photoreception and sunlight. This means that a cell is unlikely to be able to detect all these variables at once.

Microbe Editor Ecology Page

Since I mentioned it, I’ll briefly explain that we’ve had some mentions here and there of having an additional “Ecology” page in the Microbe Editor where you can see what biomes your species is living and thriving in and choose which one to spawn into next. Here is one of the mentions (In-game encyclopedia - #14 by MirrorMonkey2).


Questions

If I forgot to explain anything or something is still unclear please bring it up. Once we finalize these concepts I will write up descriptions on these features and the theory behind them to the wiki.

2 Likes

I would agree with scaling.

I’m not too worried about overwhelming the player. It seems like our playerbase is expecting some complexity. Look at the relative success of Dwarf Fortress (arguably the most overwhelming game there is) for an example of how complexity can really distinguish a game if done in a way that still has the “fun” factor.

@NickTheNick This post is fantastic! It does a perfect job at what it wants to accomplish, that is bringing us all to the same page about these things. It‘s almost worthy of a mini-update entry in my opinion.
Regarding the content: I was sceptical of abolishing CO2 and oxygen as in-gameplay compounds at first, but now I‘m convinced, as it really is neither fun to die because you don‘t find oxygen nor realistic to have oxygen only in certain patches. I very strongly plead on having the oxygen levels scale per biome, however. It would be more realistic and would produce a greater variety of biomes.
The ecology page of the editor is a very good idea and something which we haven‘t discussed and thought out as much as we could have up until now. It also has some parallels to the ‚in-game encyclopedia‘ and because of that I‘ll mock up some concept images of how it could look like. I can‘t make them until after easter, however.

I worry about complexity a lot. I think this video does a good job of explaining the dangers of complexity.

And so I think it’s really important to use complexity in the right places to give the player a cool experience. I think a big part of that is cutting down on complexity in areas where it doesn’t make much sense. I think recently we’ve been doing a good job of trying to get the compound system to be simpler and that is great, I agree with Nick that is really strengthening the game.

I’m starting to come round to the idea of some sort of patchwide O2 value but I think it still needs more explanation. For example how much does O2 vary and how much impact does that have on your cell design? So is it that you just need to have larger ratio of cytoplasm / mitochondria to other organelles in patches with low oxygen? If so how much is the difference? Is it like doubling the amount you need or increasing by 5%?

In reference to non-oxygen based respiration this isn’t actually something we’ve discussed before so if people want these systems added they need to be designed. How does respiration work if you can’t use mitochdonria? Is there another organelle? Is it that cytoplasm will respirate in any environment and only mitochondria use oxygen?

Again with

“There’s also been mention of salinity, pressure, acidity, temperature, and sunlight. The arguments for the inclusion of these is basically the same as the two provided above.”

If you just want to make these into entries in an encyclopedia then I don’t mind at all what they are. If they’re going to have an impact on gameplay then we need to know, concretely and mechanically, how different ph affects a cell.

If it’s just that there’s some proteins you need to add in the editor to make your cell adapted to that ph level then I’m not sure that’s worth it, it doesn’t feel very interesting.

If it’s an effort to differentiate biomes then I think maybe it makes more sense to design mechanics per biome, rather than try to have high level variables, like ph or salinity, which vary between them. For example having ocean vents have heat spots and hydrogen sulfide, or abyss being dark, or coastal waters having some sunlight or tidepools having loads of sunlight which is so bright it damages you or arctic regions where there is ice.

I don’t know how many different biomes we need but I’d rather have 6-8 which feel really different and each have unique mechanics in them than 50 that all feel much the same. I think that would be a better experience.

2 Likes

I much prefer having heat/light spots to making them environment variables. For the same reason tjwhale mentioned

But everything else I’m all for especially since once compound absorbing works we need to get the process system working in the new engine so we might aswell move towards this.

1 Like

I want to try to get some numbers on Oxygen and other gas variance in biomes in this thread. We can start with realistic numbers and then tweak them to reach a balanced and fun state.

Anaerobic respiration would be done in the cytoplasm. It would consist of mutating your cytoplasm from being able to perform fermentation to being able to perform iron respiration instead, for example. A mitochondrion is only able to perform aerobic respiration.

For the time being, I think anaerobic respiration (other than fermentation) should not be a concern for us to implement, but it’s nice to keep in the back of the mind as an option and something we could add in the future that opens up some options for more exotic life.

The two main instances I can think of are accessibility to biomes and response to environmental change. Certain biomes could be restricted from the player if their species cannot tolerate those conditions (such as an acidic geyser/pool, or the ocean surface where water pressure drops dramatically). We could also have hazards appear in game, like bubbles of acid that if swum into will burst and damage the player. Lastly, there could be natural events like ocean acidification, in which case all life in the oceans needs to evolve some acid resistance or be forced to go onto land.

We could also diversify it a bit so there are a few ways to resist these factors. For example changing the internal pressure of your cell adapts you to a specific pressure. Mutating a contractile vacuole, on the other hand, uses up ATP/s but allows you to change your internal pressure and thus have your species exist in the deep and shallow ocean.

We could also cut salinity if need be, as I feel like it’s not as applicable to Microbial gameplay.

Interesting points.

I think on some level the game will be the average of all it’s parts. So including something strong will make the game stronger and dropping something weak will also make the game stronger.

There’s games like this http://pandemic3.com/ which have the mechanic of “click this button to adapt to a new environment” and it does work. It’s an interesting game to check out because it’s about editing microorganisms, feels a bit like how the patch system might work. For example we could have a button in the editor that makes you adapted to high pressure environments and you just click it and then it unlocks that biome. I think that works but I’m not sure that it’s very strong, it’s not really that interesting IMO.

One problem I have with the “click to unlock” system is that from a realism perspective I’m not sure that life evolves like that. I think it might make more sense to let people into a biome any time but make it really hard to survive there, because of it’s unique features. Then the player can adapt their cell over time while in the new biome. I think that’s quite a lot more realistic and would feel quite good to play, you conquer each area.

On the other hand I think the thing we’ve got developed really well is sunlight. So in the depths there’s low light so you can use bioluminescence to compensate. At the surface there are reasonable sunlight spots so you can adapt to that by using chloroplasts. Maybe in tide pools the sunlight spots are super strong and burn you and you can use pigments to try and adapt to that. We’ve even talked about having the type of star affect the colours of pigments that work best. I think that’s all really cool and makes up one of our strongest features.

So I think with this other stuff lets either design really good, interesting, systems which really strengthen the game or lets leave it out.

I think it’s possible we could do something with temperature, around the vents being very hot and an arctic / iceage biome that has ice / is very cold. I think there’s some potential there.

Pressure I’m not so convinced about, I think it only kind of makes sense if you change pressures a lot. Like an active organelle that lets you change pressure easily sounds great, if you could swim up and down, but you kind of can’t. The way the stage is sliced it’s kind of at constant pressure.

Salinity and ph need quite a lot more ideas if they were to become strong features. Acid bubbles do sound quite fun.

1 Like