Game Balancing

Here is a copy of a post from slack about balancing the speed of different cells. I’m happy to discuss or explain more any time, all feedback welcome.

  1. Specific example of movement speed.

I downloaded the most recent Thrive release, 0.3.4 and in scripts/microbe_stage/microbe.lua I changed

line 20: self.movementFactor = 4.0 – Multiplied on the movement speed of the microbe.

and

line 291: rigidBody.properties.linearDamping = 0.75

  1. Balancing speed for all possible microbes.

Regarding movement here is a concrete suggestion for how to calculate the top speed of any microbe. It’s just a suggestion.

first calculate x = number of flagella / total number of organelles

using this means that scaling your cell doesn’t make a difference to it’s speed, if it’s 10 flagella + 10 other organelles that will move the same as 5 flagella + 5 other organelles

then compute

max_speed_for_the_cell = global_top_speed*(0.5*sigmoid(15*(x - 0.33)) + 0.5)

where sigmoid(y) = 1/(1 + exp(-y)) and global_top_speed is balanced to be the fastest theoretical speed for any microbe (we can set it so it feels good).

The 0.33 appears because that is the x for the starter cell (2 flagella / 2 flagella + nuclues + endo + mitochondria + vacuole = 2/6 = 0.33) and so I’ve used that as a balance point.

I think then once you have max speed for the cell when the player presses w their speed can just be linearly interpolated between 0 and their top speed reasonably fast (I think acceleration isn’t a big deal in high friction environments and fast acceleration feels good).

What this would mean in practice is that the most flagella you would ever really want is x = 0.6 (so for example 6 flagella and 4 non-flagella, which is a bit of a crazy cell) and getting a higher fraction than that would basically accomplish nothing. Also if you have even 1 flagella on a massive cell you can still move at 50% global_top_speed so no one is left grinding along at a super slow rate. The starter cell would then move at 75% of the global_top_speed

Any and all feedback welcome. I think this would balance all possible flagella powered microbes in such a way that we can fine tune the numbers as we progress.

Here is a plot of the curve produced

With a code snippet in c++ for computing these values:

Code Snippet

#include
#include <math.h>

using namespace std;

//compute the sigmoid function
float sigmoid (float x)
{
return 1 / (1 + exp(-x));
}

//given a percentage of flagella compute the percentage of top_speed
float movement_percentage(float f)
{
return 0.5*sigmoid(15*(f - 0.33)) + 0.5;
}

int
main ()
{
cout << “Thrive Movement Speed Calculator” << endl;
cout << “With 2 flagella and 4 other organelles you move at " << movement_percentage(0.333) << " of the top possible speed.” << endl;
cout << “With 1 flagella and 4 other organelles you move at " << movement_percentage(0.2) << " of the top possible speed.” << endl;
cout << “With 0 flagella and 4 other organelles you move at " << movement_percentage(0) << " of the top possible speed.” << endl;
cout << “With 4 flagella and 4 other organelles you move at " << movement_percentage(0.5) << " of the top possible speed.” << endl;
cout << “With 8 flagella and 4 other organelles you move at " << movement_percentage(0.666) << " of the top possible speed.” << endl;

return 0;
}

Code Output

Thrive Movement Speed Calculator
With 0 flagella and 4 other organelles you move at 0.503517 of the top possible speed.
With 1 flagella and 4 other organelles you move at 0.562277 of the top possible speed.
With 2 flagella and 4 other organelles you move at 0.755624 of the top possible speed.
With 4 flagella and 4 other organelles you move at 0.963787 of the top possible speed.
With 8 flagella and 4 other organelles you move at 0.996784 of the top possible speed.

1 Like

Another discussion we were having was about how health and reproduction are related. Personally I find it frustrating to lose reproduction progress each time I am damaged, Here is an experiment to try, decoupling health and progress so that health never regens and all compounds absorbed are put into reproduction, regardless of the level of health.

To perform the experiment, in microbe.lua, comment out lines 897 - 910 (by using --, there are lots of examples in the file) and then changing 912 to

if self.microbe.hitpoints > 0 then

If you have done the experiment what do you think? Was it a different experience? Did you feel more vulnerable knowing your health wouldn’t return? Did you feel different when you were damaged?

I tinkered more with the self.movementFactor and linearDamping and I think those are good changes, and they definitely did make the swimming feel more fun (though I think 4.0 felt like too much, I changed it to 2.5).

If we try this speed system, one thing I’d suggest is that we use coefficients for the organelles instead of the number of the organelles themselves. Then we could make certain organelles “heavier” or “lighter”, and it would be possible to upgrade the speed boosts from flagella and cilia (downside being increased ATP usage).

I haven’t had a chance to experiment with the healing change yet, I’ll get to that soon.

2 Likes

I was trying to come up with alternative methods for healing like organelles splitting before healing themselves. But I think the best choice is to allow ammonia to be spent twice, first on healing and then again on reproduction. I think that could be the most satisfying thing (maybe to offset this double spending the healing could a bit slower to make predators more dangerous).

Interesting. So would that mean that you would heal and reproduce in parallel? If so I think that is a good idea, it would be much less punishing.

I just tested out the change to healing and I think there is a case that could be made for it. It does help to not have the feeling of progress towards reproduction taken away as you are getting closer to it. On the flip side it is very elegant to have the health/healing and reproduction system be the same, and I think it is good to have regen, so I’m thinking about how we could balance these.

What if we made healing change priorities at a certain threshold? For example if you are above 50% health, your cell will not refund any of your reproduction progress. It will simply spend new compounds to heal until you are back to 100% again, and then continue reproduction. However, if you fall below 50%, it will refund reproduction progress to bring you back up to 50%. Nevermind just realized this leads to the exact same outcome.

@hhyyrylainen: That’s an interesting idea, but does that mess up CPA balance in any way? Having one compound be used twice?

When I last chatted with the theory team they said they want to have a simple to reason about simulation for auto-evo to make it possible to give predictions etc. in the editor to help the player. So the actual gameplay wouldn’t affect auto-evo at all. I think a good middle ground is having the gameplay slightly change the effectiveness of your species.

This way we can separately tweak the auto-evo and gameplay to make both understandable and fun. So allowing the player (or maybe all cells) to double spend their ammonia for healing and reproduction won’t affect anything other than the fun of playing.

I don’t think this would have much effect as most of the time when I’m playing I’m above 50% health and waiting for my health to regen to be able to start splitting organelles again. See my point above about making gameplay fun.

Yes this is what I think (I think seregon might feel differently, I am not sure).

I tried to make a massive, complex, CPA prototype and basically it becomes impossible to control or predict. There’s just too much oscillation and too many systems interacting. I think it’s only fun for the player if they can reasonably predict the effect of changing their cell, otherwise it will just feel random.

So personally, as far as CPA goes, I think it would be good to work on it iteratively. So lets get a really good, solid, fun game working with the swimming around with lots of cool organelles in the editor to play with. Then when we have that we can build more of the population dynamics on top in a limited way. If it’s going great then we can build up to these full scale, planet sized, non-linear models if we like, we’re not stopping ourselves from doing that. I just think it makes sense to approach them using a smooth path where we can be sure we will get something reasonable from it.

I agree with you Nick that the health + reproduction being the same thing is quite a nice idea. However I think it’s a great example of something that sounds great but doesn’t actually feel good to play with. The big CPA system is another good example, it sounds like a great idea, I was it’s biggest cheerleader, but it doesn’t feel good to interact with.

I would love it if we could get into an experimental / trial and error approach to making the game, where we test things out and see if they feel good and if they don’t we try something else until it does feel great. I think that’s a great strategy for game dev in general.

1 Like

Ever since I joined the Revolutionary Studios team, I have been at work on attempting to balance the rates of consumption and production in all the cell parts in an attempt to solve the issues with cell gluttony, minimal builds, and etc. It is only recently that I have come to the realization that I have been getting no where in this effort, an effort that has been rather narrow in scope as I simply tried to adjust values to make the game “feel right”. I now realize that the primary cause of my lack of progress, is entirely due to an utter lack of true direction. In order to balance a game it is imperative that you have a clear vision of how exactly you want the play to feel, run, and play.

I am posting this with the intention of engaging in cooperative discussion with our team’s game designers and theorists in hopes of creating a plan for how we intend Thrive to be played. The goal is to narrow everyone’s ideas down to precise plans rather than general ideas in order to make balancing Thrive easier and more purposeful. There is inevitably going to be some trial and error with values and specifics, but we will be fine as long as we know where we want to go with this.

Here is a list of important questions regarding the gameplay, I would like to see everyone’s response to these questions so we can see what everybody has in mind, then we can work on narrowing things down to a unified plan.

Questions of interest:
1 How difficult do we want Thrive to be overall? How fast should the microbe stage be completed?
2 How different should membrane types be from each other, how impactful?
3 How much better should eukaryotic parts be compared to prokaryotes?
4 How hard should it be to get the nucleus? How should it be done?
5 How fast should the cell consume resources?
6 How different should the various diets be?
7 How costly should parts be to acquire?
8 How aggressive should other cells be?
9 How common should resources be?
10 How fast should cells be?

To start us off, I’ll cite my own general ideas of how Thrive should feel.

  1. By my own preferences, the baseline difficulty of Thrive would not be without challenge. Danger will be ever present in the player’s mind as they work to avoid aggressive predators and competition, ward off starvation, and endure inhospitable environments. That is not to say the player should truely always be in danger however! There should be plenty of times where the player can take a breath and relax, just a little bit, and prepare for whatever comes for them next.

  2. We have a pretty decent selection of different membrane and cell wall types for players to choose from. As of now, they are essentially set up as a linear scale of speed versus health and resistance, with minor deviations. I would like for players to strategically choose their membrane depending on their environment and local predators, rather than whatever is fastest. The current stats of the membranes somewhat reflect that desire, but predators are hardly a threat at all.

  3. I would like to see producing eukaryotic parts be more efficient, while other parts are more costly in order to help prevent gluttony. This would ideally make the nucleus rewarding to obtain, while unlocking a new tier of powerful tools that are too costly to abuse.

  4. I would prefer if the nucleus really felt like an achievement to acquire, and not for it to be obtained too soon. I would say that you would ideally need atleast about 12 hexes of parts in order to support the nucleus. Preferably it would be a struggle to get any bigger without the help of eukaryotic parts.

  5. This depend’s heavily on the availability of resources, so I would prefer to balance this after we settle on a balance of resources, rather than the other way around. That being said, I would prefer the player to consume common resources faster than they would more rare resources, but otherwise they should feel comfortable so long as food is nearby. (Don’t want them to be starving constantly even when food is in sight! Unless it is their fault of course.)

  6. It would be no fun if all of the diets are roughly the same, as that would be a huge limit to replayability, and would take away from the strategic weight of choosing what you eat. This question probably answers itself atleast, as most diets are naturally going to be different anyhow. But for diets are are similar, I would personally prefer to try injecting atleast subtle differences in how they play.

  7. I think the general cost of only being able to place up to two parts is perfectly fine as it is for now. But as we include more things to spend precious MP on, such as new parts, organelle upgrades, or things like sliders, we might have to think of some new values to keep things forgiving. However, I would not be against increasing the initial cost of particularly powerful parts.

  8. I would like predatory cells to be pretty aggressive, but not suffocating. Ideally, they would pursue any nearby cells, but switch targets or give up if pursuit proves fruitless or dangerous. I would also think that competing with other cells for the same food source could be dangerous as well, but they would not actively pursue you at all.

  9. Overall, I would prefer most resources to be evenly distributed to keep the player moving, but not critically starving all the time or just bored. There could be some exceptions of course! I’ll go ahead and list my thoughts of each resource under this.

  • Hydrogen sulfide could be found in irregularly distributed large patches spread thin. Since cells can store excess food into glucose, they could spend some time stocking up in search of other compounds they need. This could create competitive zones around the sulfide, as well as attract prey for predators.
  • Glucose should be evenly distributed in small patches that can keep the player going. The player would be at little risk of starvation until the glucose in the environment is inevitably depleted.
  • Iron Could be a little less common than glucose in distribution, being in the form of chunks instead of true clouds, but otherwise generally the same.
  • Phosphate could be found uncommonly with dense clouds, this would encourage players to keep moving but hopefully not be frustrated by rarity.
  • Ammonia could be commonly found in rather low density clouds to encourage the player to move. Ideally the player could have a relatively steady increase in ammonia as they move without having to seek it out.
  1. I would like cells to be fast, speed just feels great to me even if everything else is just as fast. But of course, speed really makes the distance between things pretty trivial, so we dont want things to be too fast. I’m somewhat happy with the general speed of cells right now, but feel that we need to work on leveling out the extremes of how slow and fast a cell can get.

Edit: I accidentally skipped over question 5, and messed up the order. That is fixed now.

2 Likes

The microbe stage should be the shortest stage, I think something like max 3 hours on a first playthrough is good. I think a full first playthrough of thrive should be about 20-25 hours max (subsequent playthroughs should be faster), depending a bit on how much the player gets stuck. This is mainly because I don’t want the game to be so long that players don’t finish it. Something like this:

  • microbe: 3
  • multicellular: 4
  • aware: 2
  • awakening: 3
  • society: 2
  • industrial: 2
  • space: 3
  • ascension: how ever long the player wants to mess about

That’s just quickly throwing some numbers out there. Once the content is planned in more detail, I think it’ll become more obvious which stages will have more planned content than others, and how long the player can be engaged in it before wanting to move forward.

As for difficulty, I think the default difficulty should be reasonably challenging. We can later add easy mode as well as hard mode. Though those should wait as the balancing effort is tripled.

1 Like

I think you are totally right you need an overarching vision from which to derive the answers to the small questions, sounds great.

A few points in case they are useful:

One possibility for difficulty and length is to make the microbe stage “rectangular”. Meaning if you want to stay in the vent and just quickly build a eukaryote that can bind then maybe that’s quite quick (10-20 editor sessions) and maybe the AI is set to be a little easier.

However you can then make the other areas harder and more varied. So if people want to explore and try to really get all they can out of the stage then there’s a lot of content. You could make the ice shelf or cave or whatever extra hard in terms of AI and hazards so people could voluntarily test themselves without needing difficulty modes. This is sort of how kerbal works, it lets you go wherever you like and makes some of the places hard to get to.

Re ammonia and phosphates one issue is that all cells need them so if you spread them out a lot getting back to the editor could be a real chore for a large, slow, cell. Though as you say if you make everything reasonably mobile that helps and also the nitrogen fixing plastid helps.

I think you are totally right that the AI is a really key part of getting the feel right. For example it needs also to preserve it’s resources well, which means recognising when the player might attack and running away. Moreover I believe at the moment it continues to move even when it has 0 atp which causes cells with a lot of glucose to just randomly die and drop a lot of compounds for the player. Having the AI keep resources away from the player efficiently will increase difficulty and is the other side of the coin to making the AI aggressive, which is also important.

The current AI has a lot of interesting complexity however I do wonder sometimes if some simpler rules (like run from the player, stop if out of atp) would produce interesting and easier to understand dynamics.

1 Like

So while I’m waiting for everybody to come back from their breaks, I decided it would be a good idea to go ahead and make a sort of rough draft of a balance plan that we can then modify and expand how everyone wants. This should hopefully be easier than building a plan from scratch after alot of feedback and discussion.

Original Rambling

Time and difficulty
The microbe stage will ideally last around 3 hours on average should the player continously aim for reaching the next stage. Overall Difficulty will generally be mild, relaxing when not in the presence of immediate danger. AI will occasionally target the player but lose interest if the player proves to be too much trouble.
Difficulty may be heightened in patches that present a hazardous environment to the player, giving players an optional challenge to surmount should they choose so.

Membrane balance
I would like for the player’s choices in membrane styles to be more impactful with larger pros and cons, and so I have listed some stats to reflect that below. (One thing in particular that bothers me about current stats is the osmoregularion differences are not impactful at all.)

Single membrane:
Quick to move, quick to eat, quick to die. Players who like to live dangerously will stick with this one.
+0.1 Mobility
+2 Osmoregulation cost
+0.3 Absorption speed
-50 HP

Double membrane:
This is the basic membrane that features no alterations, and I believe it aught to stay that way.

Cellulose wall:
A great general choice for nonpredators that would still like to move freely.
-0.1 mobility
-2 Osmoregulation cost
-0.2 Absorption speed
+10 HP
+0.4 Physical resistance
Can no longer engulf normally

Chitin wall:
An alternative to cellulose, a great choice in toxin-rich environments.
-0.1 mobility
-2 Osmoregulation cost
-0.2 Absorption speed
+10 HP
+0.4 Toxin resistance
Can no longer engulf normally

I’m honestly unsure how to make these last two unique but I tried anyhow, these stats should suffice for now, but I would really like to make a second pass at it sometime if we ever come up with better ideas or new features. Edit: I was talking with Tjwhale in discord and he mentioned that healing rates could be a potential variable to help make these more unique.

Calcium carbonate:
-0.2 mobility
-3 Osmoregulation cost
-0.3 Absorption speed
+20 HP
+0.2 Physical resistance
+0.5 Toxin resistance
Can no longer engulf normally

Silica:
-0.2 mobility
-3 Osmoregulation cost
-0.3 Absorption speed
+20 HP
+0.5 Physical resistance
+0.2 Toxin resistance
Can no longer engulf normally

Rigidity/Fluidity slider:
I’ve noticed that players generally just immediately throw this slider to the left to get to maximum speed, including myself. This is likely because players presently do not face any significant dangers so I think we should leave it unchanged for now, until we improve predator AI. If it is particularly pressing, we could try decreasing the speed change from 0.01 to 0.005.

Eukaryote and Prokaryote balance
As I mentioned before, I would like for the player to be able to successfully support a nucleus once they have around 10 hexes and are built properly with surplus energy production, I am unsure what stats would be needed between the prokaryotic parts and the nucleus to maintain this vision so I would like to see what others think. Otherwise, we could at the very least find it through a little experimentation.
As for the eukaryotic parts unlocked by the nucleus, they are undoubtedly going to be more powerful than the prokaryotic parts, but how exactly? In my own vision I see eukaryotic metabolic organelles being more efficient than their prokaryotic counterparts, while producing parts like oxytoxy vacuoles will be more powerful but costly.
I would like for prokaryotic parts to be quite limited in what they can support in size and function, so a prokaryote would struggle to support itself beyond a certain amount of hexes. It has been suggested before (By Zarki I think?) that we could make osmoregulation cost scale with size rather than being a flat increase, I would like to try that but am open to other ideas.
Below is a quick example statsheet for what I am speaking of. Note that these were quickly thrown together and the actual stats would require some more discussion and playtesting to perfect.

Metabolosome:
100% scaling with oxygen
0.15 glucose consumed
10 ATP produced

Mitochondrion:
100% scaling with oxygen
0.12 glucose consumed
24 ATP produced

Oxytoxisome:
30% scaling with oxygen
5 ATP consumed
0.10 oxytoxy produced

Toxin Vacuole:
50% scaling with oxygen
8 ATP consumed
0.24 oxytoxy produced

As you can see, the mitochondrion is a little more effective than two metabolosomes as well as less demanding, while the Toxin vacuole is more productive but more costly.

Resources and consumption
As I stated previously, I would like for compounds to vary in occurrence and distribution depending on what they are. However since reproduction makes up a large portion of the time players spend in Thrive, we don’t want it to be largely time consuming to find the compounds they need to divide. It could possibly help to introduce new ways of acquiring these compounds to make gameplay more enjoyable and varied as well.

Phosphates and Ammonia:
A nice thing about ammonia is that it’s currently accessible by both finding it in the environment, or producing it with specialized parts. This makes me wonder if there is a realistic way to give players a secondary method of obtaining phosphate. A quick google search seems to imply that phosphates can come from erosion, so perhaps we could have mineral chunks similar to iron, but I dont know about that. My only solid suggestion here is to make phosphates fairly common and accessible, with ammonia being a little less so.

Glucose:
Glucose is a little different from other compounds in that it currently reduces in concentration as time goes on. I’m content with this from a gameplay perspective, but I wonder if it would be more suitable to make glucose concentration change or scale with population. That is that higher populations would result in lower glucose, and vice versa. I am also curious as to how enjoyable the game would be if other compounds scaled in the same way.

Iron:
I am content with how common iron is at the moment, but it would be nice to see the iron chunks drifting about instead of being as stationary as they currently are. This would make it easier to get at the loose iron coming from the chunks as you currently need to push them out of the way or wait for them to decay.

Hydrogen Sulfide:
Hydrogen sulfide is a really nice compound to rely on currently, as it effectively serves as a second layer of ATP storage as opposed to just having glucose; Well built cells can run off of a good dose of sulfide for a long while so I would like to have hydrogen sulfide be somewhat less common than other compounds and be found in large but not dense “hotspots”.

So with all of that said and done, I think it would be best if we balanced things from the bottom up. That is we focus on balancing the prokaryotes around having a maximum size, then moving on to balancing the nucleus to be supportable with that, and so forth.

It has been some time now, but I have created a more structured plan for rebalancing Thrive from the ground up as displayed below. This is only part 1 however, and I will be planning out the next parts later.

  1. Set compound spawn rates to a balanced medium reflecting what we want to see. We need to do this first so we can balance everything else around how often these appear.
  • Glucose should be very common at first, but diminish quickly as population increases.
  • Hydrogen sulfide will be found uncommonly in large quantities.
  • Phosphates will be found somewhat often in small patches.
  • Ammonia will be found slightly less often than phosphate, but in larger patches.
  • Iron will be found in chunks regularly in patches located around the ocean floor and sediments. Rarely in open oceans.
  1. Rebalance our prokaryotic parts to reflect the changes made to compounds. Note that these stats will likely need to be perfected through testing to align with compound rates. Photosynthesis will be excluded until part 3
  • Cytoplasm: [0.012 Glucose --> 2 ATP] My intent is for glucose to be a viable energy storage medium, as predators will mostly rely on glucose stores to hunt down prey.
  • Glycolysis: [0.010 Glucose --> 1 ATP] This is the subprocess that many prokaryotic parts has, It’s pretty much a slightly less efficient cytoplasm. Would like to discuss rates for this one.
  • Metabolosome: [1 Oxygen, 0.15 glucose --> 10 ATP] Much more productive, but also consumes much more glucose and cannot store compounds.
  • Chemosynthesis: [0.5 CO2, 0.1 H2S --> 0.05 Glucose] Chemosynthesis currently effectively doubles energy storage for cells. I believe it would now be better if we changed it to more rapidly convert to glucose instead.
  • Oxytoxysome: [0.3 Oxygen, 5 ATP --> 0.10 Oxytoxy] Prokaryotic toxins will be slow and costly to reduce the amount of toxic bacterial swarms. Will likely be more beneficial as a deterrent until it’s upgraded/replaced.
  • Rustycyanin: [0.5 Oxygen, 0.3 CO2, 0.015 Iron --> 4 ATP] My idea for iron is to be a slow but constant source of ATP similar to glucose. However it does not have as much potential in exchange for being readily available in most environments. Would like a theorist to fact check this though.
  • Anaerobic Nitrogen Fixation: [1 Nitrogen, 3 ATP --> 0.08 Ammonia] I’m actually rather content with nitrogen fixation, though it could probably be faster. Here I increased the cost to a whole number, and products by 0.02.
  1. Rebalance membrane types to be more unique and viable. I mentioned my thoughts on this prior, and they havent really changed but I will still list them below.

Single membrane:
Quick to move, quick to eat, quick to die. Players who like to live dangerously will stick with this one.
+0.1 Mobility
+0.1 Osmoregulation cost
+0.3 Absorption speed
-50 HP

Double membrane:
This is the basic membrane that features no alterations, and I believe it aught to stay that way.

Cellulose wall:
A great general choice for nonpredators that would still like to move freely.
-0.1 mobility
-0.2 Osmoregulation cost
-0.2 Absorption speed
+10 HP
+0.4 Physical resistance
Can no longer engulf normally

Chitin wall:
An alternative to cellulose, a great choice in toxin-rich environments.
-0.1 mobility
-0.2 Osmoregulation cost
-0.2 Absorption speed
+10 HP
+0.4 Toxin resistance
Can no longer engulf normally

I’m honestly unsure how to make these last two unique but I tried anyhow, these stats should suffice for now, but I would really like to make a second pass at it sometime if we ever come up with better ideas or new features.

Calcium carbonate:
-0.2 mobility
-0.3 Osmoregulation cost
-0.3 Absorption speed
+20 HP
+0.2 Phsyical resistance
+0.5 Toxin resistance
Can no longer engulf normally

Silica:
-0.2 mobility
-0.3 Osmoregulation cost
-0.3 Absorption speed
+20 HP
+0.5 Phsyical resistance
+0.2 Toxin resistance
Can no longer engulf normally

Rigidity/Fluidity slider:
I’ve noticed that players generally just immediately throw this slider to the left to get to maximum speed, including myself. This is likely because players presently do not face any significant dangers so I think we should leave it unchanged for now, until we improve predator AI. If it is particularly pressing, we could try decreasing the speed change from 0.01 to 0.005.

I was original going to try to wrap up my light system rework here, but it turned out to be much more difficult than I anticipated, and so I have pushed that to a later time and instead will focus on membrane rebalance.

7 Likes

Unfortunately this will be blocked until the spawn system gets the overhaul it needs.

If I remember correctly there was a realism aspect here that it didn’t make sense to make glucose instead of energy directly. So I’m a bit hesitant to accept this kind of change.

What is not included here that I’ve seen a lot, is that the prokaryotic photosynthesis needs balancing so that chloroplasts are better. Maybe just nerfing the thylakoids would be enough.

1 Like

I’m fine with the changes being blocked for now, the spawn issues are undoubtedly pretty important and a big part of these plans so, yeah.

Chemosynthesis already directly produces glucose in the current version of the game, so I assumed that’s how it works realistically. I haven’t changed any of the reactants or products in any of the processes ever, I have only tweaked specific rates so far. I’m fine with changing it to produce ATP directly, if that is what happens in reality though!

1 Like

Okay, I just probably misremembered things, please ignore.

I’m sure if it wasn’t fine we would hear more about it from biologists etc.
I just remembered that the alternative energy sources also made ATP directly. Maybe it was that there was no way to explain why iron metabolism would make glucose…

1 Like

Im pretty sure chemosynthesis (Specifically involving hydrogen sulfide) produces glucose from c02 and hydrogen sulfide, but i could be wrong its been awhile since i looked at the process and they vary. Iron, directly making ATP is an oversimplification, it makes a equivalent chemical irl im pretty sure like ADH.

edit:
Yeah, it makes glucose i remember looking into this alot before adding it
18 H 2 S + 6CO2 + 3 O 2 → C6 H 12O6 (Glucose)+ 12 H 2 O + 18 S

5 Likes

@Buckly Amazing work in this thread, it’s great to get discussions like this going to really establish a consistent vision of what we want the gameplay to feel like.

Going back to some of your questions of interest from your July 7th post, I agree with most of your ideas on that. I just wanted to pitch in my two cents on some of those questions.

6 How different should the various diets be?
7 How costly should parts be to acquire?

Regarding these two questions, I agree that our current rate of evolution feels good. However, I think one thing we could add would be some rarity and progression between parts that grant unique abilities to your cell, such as changing your diet. I went over this in the recent Organelle Unlocks thread I posted. I think some Organelles are unique enough that it’s not good enough to just make them cost a lot of MP, rather, there should be a system where they first have to be unlocked before they can even be placed.

9 How common should resources be?
10 How fast should cells be?

I agree both with your ideas on compound abundance and on cell speed. I think the best way to create the sense of survival and of competition we want is to make compound clouds relatively common, but to make other cells pretty competitive (either by being fast, aggressive, etc). This way it’s less a question of “Did the RNG spawn compound clouds for me to survive this generation” and more a question of “Did I plan my cell well and play well to get enough food to reproduce”.

4 Likes

There is one thing that I hadn’t read there about Cell’s speed and balancing :
Maybe you can make ressources collected have some weigh that can slow cells when they got too much.

I don’t really have any value but to me it seems plausible and there would be different strategies that can be planned about ressource gestion and cells interactivity :
Either you are well defended and can stock ressources while being slow, or you can be fast and aggressive to make your ressources relieve on your preys.

1 Like

I’m so happy I found this thread! Since finding Thrive a month ago, I’ve been thinking ALOT about the biochemical pathways in the cells and how they should be implemented in order to make sense in the logic of the game but also be realistic enough. I’ve been working on a both graphic model and a python model of carbon metabolism inside cells. It’s kinda relevant to this and was spawned by my frustration with not being able to use rustycyanine well. I started wondering why it didnt just create glucose from carbon dioxide which would make more sense and looking this up, this is indeed what chemolithoautotrophs using iron and H2S do.

I don’t know whether or not anyone here has tried making a comprehensive map of the biochemical pathways that we need to think about for the little cells, but here’s my crack at it. This is by no means perfectly accurate since I’m trying to avoid complicating the system by having as few substrates going into and out of the reactions as possible. This means I’ve excluded ADP, inorganic phosphate pyruvate etc and only included the chemicals needed to control the balance of the different substrates.

I’m trying to model a simple enough system that is still accurate for glucose, glyconeogenesis and photosynthesis (with separated thylakoids and calvin cycle (RuBisCo)). This same system could hopefully be used for any form of light-capture. The cinch here is making it work without the system going haywire, using ATP for glucose and then using the same glucose for ATP again. I think I’ve fixed it, but now the reaction rates need to be modelled to control the process. I’m working on this which involves a bunch of differential equations that I barely knew at some point 5 years ago. Anyways, here’s a very rough draft of what I’m trying to do if anyone has any feedback or spare braincells for it!

Here’s a very very messy mock up of the python module I’m trying to make.

1 Like

It’s nice to have some simplified reactions on hand that have been made more contextually friendly to the current mechanics of Thrive. I appreciate that.

The proposal to (as per my understanding when skimming over this at 12 am while mildly sleep deprived) introduce glycogen/starch compounds as advanced storage mediums is a familiar one. Though at the prior time it was mostly as an excuse to introduce dietary systems. The idea ultimately fell out in favor of basing diet off of cell walls instead, mostly due to the understandable hesitance of the team to introduce new compounds. I’m not entirely against the concept, but it will require a fundamental reworking of a good variety of features to fully integrate into the game properly. Otherwise it might just be an “extra health bar” so to speak for cell longevity which might not add much on it’s own in fun value… For now I think it best to just cut out the complex storage molecules to simplify the system since separating the calvin cycle into it’s own unique process is a surprisingly hefty proposal, mechanically speaking.


Assuming glucose remains our primary storage molecule, I suspect your concept of scaling it’s process rate with available storage and carbon is sufficient. The more glucose the cell has, the less it produces. This would hypothetically mean that cells would generally hover around an average range of glucose as long as they can sustain their processes.

X ATP = X Glucose @ X CO2 & @ X Available Storage

Now this looks good at a glance, but it still has an issue with constantly consuming ATP, which left unchecked could potentially starve a cell as the process rate exceeds ATP production…
Seems you’ve considered this as well which is very good. Your solution as I understand seems to be scaling the process of glycolysis with excess ATP production (Probably found by subtracting overall ATP consumption from production during runtime.), which sounds like it could work… but I feel kind of messes with the numbers in unintuitive ways. Instead it may be better to simply limit the process to only being able to make use of excess ATP. Certainly a topic up for debate.

ATP - ATPCost = Excess ATP

X Excess ATP = X Glucose @ X CO2 & @ X Available Storage

This should hopefully ensure that the cell is able to store any excess energy they produce without starving their other more vital processes. By slowing the production down around a specific point of storage, more excess ATP is freed up for potential use in other ATP draining features to come. (Like sprinting perhaps?). In addition, this also allows cells to have room to spare for any ““free”” glucose they manage to locate in the environment.


Hopefully I’m not missing something very obvious and vital, and that this all makes sense because by golly am I really tired now.

I’m very excited to have a truly active theorist on our team to engage with, and look forward to discussing this further moving forward.

2 Likes