Reproduction System Overhaul

In that case, this is my proposed model of how this should work (thanks to tjwhale for the “Growth Mode” idea, which is exactly like the growth phase of the cell cycle and ties this together very well). This is just so that we have a concrete model in place that ties everything together and that resolves all of the aforementioned problems. Then, we can alter specific parts of it (like whether there should be a min. size cap before reproducing).

Let’s say you start the game controlling your heterotrophic cell (with no agent capabilities) which is starting at what we’ll call it’s standard size. However, what we care about more than size is it’s “price” in compounds, or R. Rstandard is the amount of compounds (AA’s, FA’s, and NA’s) that you are composed of at standard size. You start with Growth Mode turned off (Let’s call this Survival Mode). Since you are not in growth mode, your cell will absorb glucose to keep producing energy. It may pick up ammonia as well. However, the key point is that it will only produce fatty or amino acids if there is damage to the organelles or membrane that needs to be healed (and if somehow damage was done to your DNA, then it would produce nucleic acids as well). The cell will always, in any mode, heal itself automatically.

While playing in survival mode, you basically only need to worry about glucose. Get more glucose, and you’ll make more ATP. If you take some damage, gather some ammonia and make yourself some amino and fatty acids (yes I realize fatty acids only need glucose) to heal the damage. Your cell will not produce any additional amino or fatty acids, and will certainly not create amino and fatty acids to “lock away”, or in other words, to grow your cell.

However, once you’ve reached a state where you have lots of ATP, plenty of glucose in your vacuoles, and you don’t see any predators around, you decide to hit whatever hotkey to enter Growth Mode. In Growth Mode, your cell will continue to produce amino and fatty acids where necessary to heal damage, but will also produce those to start growing your cell. This growth is primarily through the expansion of the membrane. Organelles, may expand and/or split during Growth Mode as well. Once you turn off Growth Mode, your cell will stop producing these acids to grow, but will also not take back any of the compounds you invested in growing, so you will now be set in your new size.

While playing in growth mode, the only extra variable you need to worry about is ammonia, and where to get it (because, as outlined in the OP, AA’s, FA’s, and NA’s can all be produced from glucose and ammonia).

Once you have doubled your R, to reach 2*Rstandard, your cell stops producing amino and fatty acids (for growth), and your cell stops growing. You might not necessarily be twice as large in size as when you started. Your cell now starts producing nucleic acids to make a second copy of your DNA. In theory, your cell is replicating its DNA. In-game, this is represented by your nucleic acid stores increasing until they’ve doubled.

This can all be represented on the interface by a simple “Reproduction” bar, that fills up as you complete the different steps. Reaching double Rstandard would fill up 90% of the bar, and then creating a second set of Nucleic Acids would fill up the last 10%. Once the bar is full, the reproduction button becomes available. Click it and you enter the editor. Finish making your changes and you return to watch your cell split in half, while you take over one of the new cells. The two daughters will be exact replicas of the mother cell, unless otherwise mutated in the editor. Free compound stores are split 50:50 between the daughter cells.

It might be that you only reach about 50% of doubling your Rstandard, when suddenly ATP levels run low, or predators start to threaten you, and you have to turn off growth mode to go back to surviving for a bit before your next chance to grow. This would make gameplay alternate between periods of growth and survival. Progress towards growth can never be lost, only gained. You cannot grow larger than 2*Rstandard.

Here are some points that I think we should consider. Let me know if any of these are a problem to code, pose a problem for CPA calculations, etc.

  1. How will the game determine which organelles split, and if so how will they arrange themselves in the new cell? I think it’s a bit of a poor design decision to make the player have to spend MP in the editor removing extra mitochondria they received while in Growth Mode. Unless this is only for during the transition, and the cell always grows exactly twice as many organelles which are then identically distributed between the daughter cells (as the mother cell was, unless otherwise modified in the editor).
  2. Will the constant recalculations to absorption rate, engulfment capacity, storage space, processing power, swim speed, and other stats pose a problem for performance?
  3. I put DNA synthesis at the end, but would you guys prefer it happen first, or that it happen continuously in simultaneity with growing your Rstandard?
  4. Should there be an ATP cost to pressing the reproduce button (i.e. the act of physically splitting your cell in two)?

Yeah this sounds really good. I can totally imagine how that would work.

IMO the growth processes should happen in parallel.

I actually added DNA to the CPA model, it seemed pretty natural. I’m very happy to change that if people want. As is you’ll be able to actually make more DNA before you split, which I think will be quite cool. DNA is kind of the star of the show so I thought it made sense to add it.

Is the cell going to be immobile during growth mode?

No it would just increase your consumption of compounds. So if you were going into a fight, for example, you would want to turn it off.

I don’t know if I like that idea. I feel like it would add a lot of confusion for the player. Plus, I’m not sure if that’s realistic. Organelles like vacuoles and lysosomes are spawned continuously throughout the cells lifecycle. If they weren’t, over time we would run out since they are used up in digestion. Others, like mitochondria and chloroplasts, replicate by themselves, copying their own DNA, growing bigger, and then dividing. In addition to this, in reality cells are unable to “go back” in the cell cycle. There are checks that temporary stop you, but if you pass them, you cannot stop replicating your cell and you will either follow it through completion or will undergo cell death (because you had an error in cell division).

Now for your questions,

  1. The extra organelles should be only in the environment (since when you divide you are back to your normal number) and just give you a temporary boost in processing power.

  2. They shouldn’t be too hard to redo, since all we would need to call is addNewOrganellesToMicrobe() and this would take care of recalculating the absorption rate, storage space, etc.

  3. Here is how the cell cycle functions in real life:
    G1 - most organelles divide, this is where the cell spends most of its life (technically G0, but that isn’t too important here).
    S - DNA replication
    G2 - specific organelles, such as centrioles divide
    M - cell physically splits in half

As we can see, in all 4 stages of the cycle there is no dedicated growth/divide mode. At least not in the sense that they are two separate entities.

  1. The cell usually has a large stable supply of DNA which is constantly being used by various processes and disposed of. In particular, one nucleotide of DNA takes one molecule of NTP (similar to ATP) to bond. There are billions of these, so if the cell managed to make it to this part, it likely has enough ATP to undergo cytokinesis

I more or less like this idea but i have one problem with it:

first of all i would not make this just a hotkey because a player would not know to do this (but i feel you where probably just using this as an example) and second of all i agree with @TheCreator this is too complex for a new player, i think that this ‘growth mode’ should be started an stopped by a start and stop triggers on the amount of ATP they have (these triggers would be based off how fast your cell uses up ATP and/or how fast your cell produces ATP) then when in growth mode the progress to the cell splitting is on the growth bar and when the player hovers over the bar it shows them what raw materials they need for that stage of growth (perhaps based off the stages @TheCreator mentioned) and what they are lacking in to grow (if there was something missing then they would still be in ‘growth mode’ but would not progress until they got what they where missing, unless they hit the stop trigger anyway).

Ok, so we could change the model so there is not a survival mode and a growth mode, but simply a single mode through which you will continuously grow. However, I think as meandmy10 suggested, it would be important to have some measures to stop the production of amino and fatty acids when you are low on glucose.

Asides from that point, are there any objections to the rest of the model?

I don’t agree it’s “too complex for a new player”. I think knowing you can turn growth on or off gives you an advantage but if you leave it locked on you will still do fine. It’s about increasing your ability to survive long periods of starvation. You could still play the game without knowing about it.

Oh for some reason i thought that growth would be off by default but as i said on the Health and Combat Overhaul page (I’m starting to realize i probably posted what i posted in the wrong place).

I’m with @TheCreator here mostly.

  • DNA replication as a separate phase after growth is a good idea. DNA replication is expensive, and is worthless unless you know you’re actually able to grow enough to reproduce, which is why most cells have evolved to do so in a specific phase near the end of the cell cycle. We could make this something you could evolve, maybe.
  • The growth of your organelle capacity should be continuous – mitochondria and chloroplasts split after they themselves have doubled in size and processing capacity, so there’s no discontinuity. We just need to be able to scale up an organelle.
  • You still have to produce protein and fatty acids etc, always, for the maintenance of your organelles (particularly ones that get digested and need to be recreated, like lysosomes as he says). Sure, your cell might stop if it’s starving and has to prioritize getting more food over keeping itself running smoothly, but it will deteriorate, take damage, reduce in processing capacity, as long as it neglects basic maintenance.
  • As for states of growth, I see 3: growing, not growing, and starving. problem is, there’s a continuum between them, so I don’t think it would work too well to have a simple switch the player can toggle.
  • And most importantly, remember that ATP isn’t something which gets stockpiled and then used up – a cell generally always has very stable ATP levels (unless it is seriously close to death), and when the ATP need goes up, throughput goes up. So any checks that people are saying should rely on ATP level, would instead rely on the level of glucose/fat free.

Completely agree with what moopli says.

  1. I was thinking that a good idea for right now would be to make all cell processes work close to complete efficiency, and then in the future releases, we could “downgrade” them and allow the player to evolve them back to an optimum efficiency. So for now, DNA should be kept as a separate stage.
  2. I’m currently working on procedural movement for the organelles, so it shouldn’t be too hard to scale, say, mitochondria along the y-axis and then when they get too big, split them in half.
  3. Yeah, so we could create a process that simply uses up protein and fatty acids to show that some organelles are constantly being reused. Alternatively, we could add an extra cost to digesting food obtained by phagocytosis (the cost of making the lysosome).

Okay, so I’ll try to implement new reproduction system when I have time. This is what I understood from the above discussion, correct me if I’m wrong:


  1. Every organelle has a set compound cost; a bin of fatty acids and protein that the cell is unable to access.
    a. When the cell is “birthed” into the environment this bin is half full.
    b. When the cell takes damage, the affected organelles bin is partially emptied. If the bin is completely empty, the organelle is shut off.
    c. When the cell has an excess amount of fatty acids and protein and has full health, the organelle bins are filled up.
  2. The rate/proper functioning of the organelle is proportional to the bin fullness.
    a. If the bin is half empty, the organelle functions as expected.
    b. If the bin is completely full, the organelle functions at double efficiency (e.g. twice the storage for vacuoles, twice the rate of photosynthesis for chloroplasts)
    c. If the bin is less than half empty, the organelle must have been damaged, so it doesn’t work as well. 1/4 the bin is 1/2 the processing efficiency.
  3. Organelles change visually proportionally to the fullness of the bin.
    a. If the bin is half empty, organelles are normal size.
    b. If the organelle has been damage (less than half full), it starts to turn red, and if the bin is completely empty the organelle becomes black.
    c. If it is more than half empty, the organelle is scaled, so it looks bigger.
    d. If the bin gets filled up completely, the organelle divides into two different smaller organelles of normal size. These organelles stay at half-empty bins (unless they are damaged by toxins) and never go above half empty, so once an organelle divides in half, it will stay like that.

S, G2, M

Once the player passes the G1 phase (all organelles have divided) and has enough compounds for the next phases, the “divide” button pops up. In real life, the cell spends most of its time in G1 and if it enters the S phase, it usually goes all the way through mitosis, so I think it’s okay to mush these into one stage.

Pressing the button will take some more nucleic acids, fatty acids, and protein from the cell’s storage, and the cell will divide.


We will completely ignore any organelles that are added in the editor, and will assume they cost nothing. Alternatively, if this poses a problem for CPA, we can just add it to the reproductive cost from the S phase.

Pressing Finish

Finishing takes you back to the environment. You have half the number of organelles as the big cell you broke off from (which doubled in size during the G1 phase). In other words, the cycle repeats itself.


What do you mean ignore any organelles added in the editor? Do you mean in this instance as an example?

That’s a nice way of representing the CPA “locked” compounds bin. What it’s designed to represent is Protein, Fats and Amino Acids locked away inside the structure of the cell so yeah, having a little bin for each organelle would work fine for that.

It might be worth getting the final list of compounds from the CPA master list and using those. Like you need to store more DNA to be able to divide your nucleus etc. Though you could set up the system first and then change the compound list later.

Well what would health mean in this case as presumably overall health is gone and “organelle bin fullness” is now the measure of health? The way it works in the CPA is that some percentage (I think 10%) of your compounds are locked away each time step. This means that the cell is always locking protein away and if protein is low the amount locked away is low too. In the CPA prototype with the thresholds the thing that tells the cell to make more protein is protein being below the “low threshold” so, if that’s what we’re going with, you’ll need to keep locking protein away until it gets below this threshold, otherwise the cell won’t make more.

Do you want to have this “growth mode” where you are locking compounds away be toggleable? Might be nice if the player can turn it on and off if they want to fight or are going through a period of starvation.

The CPA prototype is fine with the changing blueprint. Basically a population is measured by the number of compounds it holds in it’s locked bin. If it’s blueprint changes (like another organelle is added) then the population number is just scaled down proportionally so the amount of compounds the species holds stays the same. The chief control over the CPA system is conservation of compounds, we don’t really care if it’s in 1 million tiny cells of 1 gigantic one, so long as we keep track of compounds in and out of the species, then we know it’s under control.

All sounds great!

When you divided you lost a certain amount of compounds to the second daughter cell that you had to synthesize; however, the number of compounds you lost only includes the compounds required to make the organelles present in your cell, and does not include the compounds that would be locked in any additional organelles. But as @tjwhale mentioned this shouldn’t be a problem.

One system overhaul at a time :stuck_out_tongue: We’ll eventually represent health with something that takes into account atp, organelle health, vacuole storage, etc… but for now we will just have an HP bar as in the previous versions. This isn’t a big deal since the only combat mechanics present are engulfment (which affects the whole cell) and oxytoxy (which doesn’t target anything specific and just lowers health).

I guess we could make it a hotkey, but I don’t really see the point. Growth will always have the least priority, and the only time it is used is if the cell is in optimal condition with full health and large amounts of ATP. I cannot think of a time when turning growth mode off will be beneficial. But then again, growing should be treated just as any process—takes in compounds and increases organelle size as a product—so if you can control rate of respiration, you can control growth rate.

1 Like

I’ve actually changed my mind on this and I support not having a growth mode, provided we can make sure the cell will keep it as a low priority and not let it interfere with the essential processing for staying alive.


I agree with Nick, I don’t think visual growth is necessary.

If this is effectively wrapped up for the time being, could someone update the GDD at some point? I’ll have some free time soon (I hope) so I can do it then, but I’m not sure I completely understand it. @TheCreator do you have Wiki editing ability? If not Nick or I should be able to give it to you. If anyone does update it, make sure to check the other pages for references to the reproduction system, to make sure everything stays coherent.

1 Like

I agree with Nick**

I do not have wiki editing ability, but I’ll happily edit the wiki if someone grants it to me. As for the growth mode, I have a feeling you (@oliveriver) and @nickthenick are taking about different things. We agreed on not having a defined growth mode and a defined play mode (which is what I think nick is what nick supported in the beginning but now isn’t); the cell simply grows whenever it has excess compounds that it would otherwise vent (throw out into the environment), which in my opinion has nothing to do with visual growth. Though feel free to correct me.

On the other hand, not having visual growth is more trouble that it’s worth. If an organelle fills its bin completely, we add a second organelle to the cell. As a result, the number of organelles would slowly double, and the membrane would stretch to accomodate them.


Yeah to clarify I do support visual growth, what I’ve decided against is a mode to toggle for growth. On the one hand it would give the player a tactical choice between growing and survival, but on the other hand I feel like it’s an unnecessary feature if the cell will be smart enough to prioritize it’s own compound use anyways.