Game Balancing

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

What would be the benefit from a gameplay perspective to make it so that the glucose stops filling at an arbitrary point? Arbitrary in the sense that I’m almost certain we’ll get a bunch of questions about this from the community wondering why they can’t get their glucose filled up all the way. Getting the average player to understand and to use the process panel I think needs to be the first hurdle before considering this kind of change as I see this as mostly just increasing the game complexity without many new interesting gameplay aspects.

2 Likes

If we remove the more complex forms of glucose storage, then the fix to consuming glucose to produce glucose could be as simple as limiting the cells ability to use gluconeogenesis to only on whatever complex carbohydrates they consume. This kinda already exists in the game as digestion, but I think calling it gluconeogenesis in prokaryotes is somewhat more realistic. For eukaryotes, the lysozomes would break down even more complex structures but the carbohydrates from the lysozomes would be broken down into glucose by gluconeogenesis. I tried making a graph with pyruvate being produced from glycolysis, but this would just create the loop again.

And yeah, excess ATP would be exactly what you said: Any ATP produced when the ATP bar is full and cannot be filled anymore would go towards complex carbohydrate storage, or if pyruvate were involved, gluconeogenesis for glucose storage. I’ll upload my other graph with pyruvate (but like I said I think this only makes the loop worse rn).

I’m starting to think that the main focus should be on separating light-capture and the calvin-cycle, allowing anyone to pick their autotrophic energy source while only needing RuBisCo to store that energy as glucose. This is where I started from with Rustycyanine and the more I think about it, the more feasable this part seems. Gluconeogenesis probably is just extra fluff until more complex forms of energy storage are available.

I would argue however that the complex carbohydrate storage is useful for cells that have to survive without autorophy or even autotrophs that have to survive the night. Glucose runs out far too fast, and storing it in a more compact form without needing to make your cell bigger and slower is a huge advantage. This was the problem I was facing without any chloroplasts or chemoplasts in the game. It’s fine to be a heterotroph in the early game without this, but later on glucose runs out suuuuper fast.

Summary:

  1. focus on separating autotrophic energy capture (thylakoids) and calvin cycle (RuBisCo)
  2. separate glycolysis (metabolosomes) and digestion(lipids, proteins, nucleotides like DNA etc)/gluconeogenesis (PEP carboxykinase).

This would mean both forms of energy production would be more niche, more separated, and be a bit later in the early game. This would work since glucose is freely available in the environment in the early game. It also introduces the a good pathway towards complex carbohydrate energy storage and a physical, visual reason for prokaryotic cells not being able to digest the same structures as eukaryotes can with lysozomes. I’ll try and make this a bit more obvious in a new map when I have time.

In the meantime, I found a website that can let us all collaborate on a map like this for free. I just made the bare bones of the diagram here, feel free to complete it and move things around to make it make sense. Add notes, ideas, problems etc. I’ll post it in the discord too.

1 Like

Now that I have had some sleep, I honestly don’t really think there is much of a benefit to never reaching 100% glucose. I’m not really sure what I was thinking. The benefit is more so in freeing up excess ATP to be used in other activities as energy storage becomes less urgent for the organism. This might make it so the player doesn’t naturally reach 100% glucose on their own, but could probably easily reach it by consuming prey or something otherwise.

I’m also pretty concerned about complexity… Right now we are looking at increased flexibility with glucose production and perhaps a greater sense of progression at the cost of requiring players to add yet another part to their cell to function well, and process interactions that might not be clear to players. There’s also the matter of totally rebalancing the game around a new reality where more production parts could potentially create ATP.
Is it worth it?

On the other hand, we could always just make all processes produce glucose from the get go. It’s the boring way, sure, but it’s easy for players to understand and avoids a bit of complexity.
Is that what we would want?

Something we could try prototyping I suppose.

I think

needs to be implemented first before it is really fruitful to continue this discussion.

1 Like

Oh damn, I didn’t realize you had already had all of these thoughts before! This balancing looks really good and was exactly the what I was thinking. Should I keep working on my own python model for the whole system? I think I can make it work I just need time. Then someone who knows C++ can implement it.

You can keep working on it, but keep in mind that I really don’t want to skip doing the simpler change that was thought up the last time this topic of glucose storage stuff was brought up. I think we’ll get a bunch of insight regarding this topic if that gluconeogenesis organelle is added and we let the players experience it and report back how it changed the game.

1 Like

Simple is the goal! Imo having RuBisCo for CO2 conversion to glucose as well as Glucose Phosphatase would be 10/10. But as you say, it might be hard for me to see how user-friendly that might be until it’s tested.

Looked a bit more at this from a theory side, and gluconeogenesis takes place in the cytoplasm of bacteria and both in the cytoplasm and in the mitochondria in eukaryotes from what I have gathered. If it makes more sense to use a completely different organelle in the game then continue, but include a protein complex for prokaryotes maybe?

I’d love to write small descriptions of the real life equivalents to the game’s version of metabolism to keep up with the educational side of things if this is something you think may work.

If we want to add a microbe feature that is not based on a new organelle (here I use the organelle to refer to all placeable organelles and also prokaryotic parts), we need new systems design for the editor and mutations etc. So it is much, much easier add a new organelle for a new feature. That’s why the gluconeogenesis feature is specified as being done by a new organelle that is to be added to the game. I personally wouldn’t lock that part behind the nucleus so all microbes would be allowed to have that part.

1 Like