Organelle Functions

We already have quite a few organelles in the game, and pretty soon we will have fantastic models for them (shout out to the graphics team), but there has been very little talk on what exactly happens when you upgrade organelles and even how you would go about upgrading them. Would there be an upgrade web, or would upgrading be a linear process? Would there even be such a thing as different stages for each organelle, or will it be a continuous process (so you upgrade statistics such as energy efficiency and light absorbance for the chloroplast)?

In this thread, I hope that we can answer these questions and decided on the advantages and disadvantages of different organelle upgrades. However, this thread should only focus on process/storage/movement organelles since agents is a completely different topic that deserves its own thread.

Anyway, here are the currently planned organelles, taken directly form the GDD (thanks @Oliveriver) :

  • Nucleus – The nucleus is a special case organelle. It’s part of the
    player’s microbe from the start of the game (as they play as a
    eukaryotic cell) and cannot be moved or removed in the editor. Having
    a nucleus allows for replication, compound control and simple
    behavioral patterns, which, as major tenets of the gameplay system,
    must always be available to the player from the start. The nucleus is
    an internal organelle which the rest of the cell is built around. It
    isn’t listed in the editor organelle list as only one can ever exist
    inside a cell. When a cell dies, its nucleus has a small chance of
    remaining intact. Other cells which consume the nucleus gain more
    available Mutation Points for the next editor session or CPA-mandated
  • Mitochondrion – Mitochondria perform aerobic respiration within
    cells, taking one glucose molecule and six oxygen to produce six
    water, six carbon dioxide, and energy. Energy is represented by ATP,
    so as far as the player is concerned, mitochondria produce ATP (the
    complex partial steps involved in respiration aren’t modeled, only
    the overall inputs and outputs). Though mitochondria can be placed in
    the editor from the start of the game and the player even begins with
    at least one mitochondrion, additional mitochondria can still be
    obtained for free by endocytosis of free-living respiring bacteria
    (~1 in 100 chance). As with all organelles obtained this way, newly
    assimilated mitochondria are initially unique to the player’s
    individual, but entering and exiting the editor with the same
    mitochondria intact adds it to all members of their species.
  • Flagellum – External organelle used for movement. A flagellum is a
    long, tail-like organelle which rotates to drive a cell forward.
    Flagella, along with cilia, allow cells to fight against water
    currents which would otherwise take them in potentially unwanted
    directions. Flagella only add propulsion in a single direction, and
    multiple flagella on the same side of a cell increase a cell’s
    ability to move in that direction. Flagella can be placed as new
    organelles from the beginning of the game. They do not use or produce
    compounds but do use up relatively large amounts of ATP.
  • Cilia – Cilia are smaller versions of flagella, but cover the entire
    cell as a periphery organelle choice. Cilia produce small
    omni-directional movement for less ATP than flagella. Cilia are
    available from the beginning of the game, and can be upgraded to
    lamellipodia. The movement speed generated by cilia can also be
  • Cytoplasm – Cytoplasm is different from all organelles in that it
    determines a cell’s overall structure. In the editor, other
    organelles must be placed in cytoplasm. Cytoplasm does perform some
    simple chemical reactions and it’s the medium through which ATP is
    transferred. It’s available from the beginning of the game and is
    relatively cheap. Each hex also consumes a very small amount of ATP
    for osmoregulatory processes, so larger microbes will need more
    energy to function.
  • Vacuole – Internal organelle used for compound storage. Each vacuole
    has a maximum agent capacity based on weight (so more oxygen
    molecules can fit in a vacuole than glucose, for instance), and
    generally compounds will be flowing in and out of a vacuole
    simultaneously. Larger vacuoles (there are many different size
    varieties in the editor, larger variants costing more Mutation
    Points) also provide some cell rigidity, especially when combined
    with a cell wall. Vacuoles are available in the editor from the start
    of the game, and the player determines which compound or agent will
    be stored in each.
  • Chloroplast – Photosynthesizing internal organelle. Chloroplasts take
    in water and carbon dioxide to produce glucose and oxygen, using up
    light energy (therefore they have a greater yield in environmental
    light spots). Chloroplasts are locked in the editor at the beginning
    of the game, as the player must assimilate a free-living
    cyanobacterium to gain one free chloroplast and add more in the
    editor. Cyanobacteria are only found in well-lit areas, such as light
    spots or certain biomes.
  • Thermoplast – Thermoplasts work in exactly the same way as
    chloroplasts, instead using heat to create glucose and oxygen via
    thermosynthesis. This makes them a more viable option in the
    hydrothermal vent biome than chloroplasts, but since thermoplasts are
    fictional, if the player has checked the LAWK toggle neither they nor
    NPC species will be able to evolve thermoplasts. To unlock
    thermoplasts in the editor, the player must engulf a free-living
    sessile bacterium, generally found in heat spots or near hydrothermal
  • Cell Wall – Periphery organelle. The player’s cell can evolve a cell
    wall in multiple steps. Cell walls provide extra strength and
    protection from some agent types, engulfing and predatory pili, as
    well as preventing death by osmolysis. However, the latter is only
    possible if a full cell wall has evolved. The others increase in
    effectiveness with each upgrade step, so a thicker cell wall will be
    able to stop longer pili. With a complete or near-complete cell wall,
    the cell’s visuals will change. Its membrane will no longer be so
    flexible, instead trapped within a procedurally generated wall layout
    based on the hex grid design. The cell wall is unlocked as soon as
    the player unlocks chloroplasts or thermoplasts, and consumes and
    produces no compounds or ATP. Unlike other periphery organelles, cell
    walls prevent the placement of any external organelles – cell walls
    cannot be chosen unless all external organelles have been removed,
    except agent secretors (their icon is grayed out and a tooltip
    message informs the player of the reason why). Cell walls therefore
    prevent agent secretors being upgraded to pili.
  • Predatory Pilus – External organelle used for attack. Effectively an
    offensive “spike”, a pilus can be used to pierce the membranes of
    other microbes, killing them and releasing their compounds into the
    environment. Pili are unlocked from the start of the game, and can be
    upgraded by having their length extended. Pili also have all the
    functions of an agent secretor and are edited in a similar manner
    with hotkeys and tied agents. Pili are ineffective against cell walls
    and are relatively heavy, making motility difficult for
    pilus-wielding cells. They’re only available by upgrading an agent
    secretor, but can be cross-graded back into an agent secretor.
  • Bioluminescent Organelle – Unlocked once the player assimilates a
    bioluminescent bacteria in the same manner as chloroplasts, or by
    upgrading a vacuole when a bioluminescent agent has been developed.
    Bioluminescent organelles will glow in-game, providing light in dark
    locations by consuming ATP. They provide very little gameplay use for
    an experienced player, but they can be used in a symbiotic
    relationship with other microbes which have chloroplasts, effectively
    transferring energy between the two as chloroplasts use the light
    energy to photosynthesize even in dark locations.
  • Endoplasmic Reticulum – Allows for protein and agent synthesis.
    Available from the start of the game, including one present in the
    starting cell by default. Consumes ATP.
  • Golgi Apparatus – Required for agent secretion of any type, available
    from the beginning of the game, and comes with the starting cell.
    Consumes ATP.

Another thing you need to think about is the CPA system and the compounds as part of that. You need a tree of compounds such that each one can be manufactured from others and you need organelles to do the manufacturing. You also need to know what compounds are required to manufacture each organelle and make sure that each cell has the apparatus to grow / make more of itself. Moreover you need to be careful to balance the equations so that mass is conserved (the CPA system needs this). Here was my last attempt at that. (The top post has the most up to date list)

The idea is that organelles can be upgraded with diminishing returns. The benefit to upgrading an organelle over placing a new one is that it doesn’t increase the size or nutritional demands of the cell, but rather just increases the efficiency or rate of the cell’s processes. The specific numbers were never set.

  1. Nucleus, Golgi Apparatus, and Endoplasmic Reticulum - All cells start with this and have to have it at all times. I can’t think of any upgrades possible for this. For future reference we sometimes refer to this as the Nuclear Core, the Core, or the Kernel (not popcorn).
  2. Mitochondrion - Each mitochondrion can be upgraded to increase its rate. It’s efficiency cannot be increased because of biochemical restraints, but for the sake of the game we could probably include a minor upgrade to efficiency. Or maybe we could make improvements to mitochondrial efficiency be a part of disabling LAWK (Life as We Know It) as part of the new game options (which also enables thermoplasts).
  3. Chloroplasts - Same story as mitochondria. However an interesting addition that I don’t think we have yet in the game is that the rate of a chloroplast is based on the light intensity of its location. In an area of 100% light intensity, the chloroplast operates at full speed, whereas in an area of 50% light intensity it operates at half speed, and with no light it doesn’t do anything.
  4. Thermoplasts - Same story as chloroplast, but with heat intensity.
  5. Flagella - Improvements I can think of for this would be towards increasing movement speed, increasing turn rate, and decreasing the energy cost (I don’t know how scientific these are).
  6. Cilia - Same as with flagella.
  7. Cell Membrane - Does the size of a cell currently affect the rate it can pick up or eject compounds? Also maybe we could include upgrades to absorption/diffusion rate, resistance to predatory pilli, and resistance to agent absorption?

That’s all I have for now.

Okay, that makes sense. So would I be safe to assume that each organelle has multiple stats and that you are able to upgrade each one of them by spending multiple mutation points? In that case, I think we should use this thread to decide the different things you can improve, how much it would cost, and how it would affect the microbe.

  1. I have to disagree with you about mitochondria. At the current moment our mitochondria produce around 30 molecules of ATP from one molecule of glucose; however, because they were not as efficient, the first mitochondria produced a lot less ATP. If I am not mistaken, it is also theoretically possible to produce up to 50 molecules of ATP from one of glucose, it’s just that our mitochondria release quite a bit of heat.

  2. I think that could be achieved by putting a noise texture over the environment. We could then use the values for this texture to both affect the background (make it lighter or darker) and to affect chloroplast processes.

  3. I don’t think so, but that would be a cool idea to implement once we have compound clouds.

Sure yeah, if you can find sources that backup being able to improve mitochondrial efficiency, I think it’s a good idea.

For calculating the diminishing returns, we could use the formula we planned for agents:

Eff = l - (l-s) * a^(-n)
l - Limit. The point it ends at, in case we decide to lower that value.
s - Starting point. What f[0] is.
a - How fast does it grow. Higher values make it grow faster.

I would say for mitochondria, chloroplasts, and thermoplasts, the upgradeable stats are efficiency and rate.

For flagella and cilia, the upgradeable stats are speed, turn rate, and efficiency/energy cost.

The cell membrane, cell walls, pseudopodia, and lamellipodia seem like a big topic so maybe save that for later.

That leaves the nuclear core, vacuoles, cytoplasm, predatory pilli, and bioluminescent organelles.

NOTE: Also, lysosomes have not been discussed much. Are we assuming they’re there? Will we include them?

Just to demonstrate, if we used the maximum you provided, as well as say a minimum of 20, for the ATP to be able to be produced, and we set a growth constant of 1.3, the results would be:

Also I was thinking, for upgrades to organelles, I think they should apply across the cell as a whole, so instead of having to upgrade the efficiency of each mitochondrion, it would just upgrade them all at once.

IMO it’s not very interesting from a modelling perspective to have “upgrades.” Basically over time all the microbes will upgrade all of their organelles and then, relatively, everything will be the same. IMO it’s much more interesting to have “specialisation,” whereby each choice has drawbacks. For example you can add another mitochondria but that makes you heavier and slower. Or you can start making agents but that uses up protein and means your species doesn’t replicate / grow as fast. This is much more interesting.

They weren’t in the original organelles list on the Wiki, which is where I got most of them from, but they could be included. On the other hand, they might just be functionally a part of the cytoplasm, like ribosomes. Also, the list in the first post isn’t quite everything - we also have agent secretors, lamellipodia, engulfing edges and slime glands. Lamellipodia in particular should be considered when discussing upgrades, as they’re a movement organelle too.

To me that sounds a little overpowered, although I guess if the rate of upgrades was balanced it wouldn’t matter. It does raise the question of what happens when new organelles of that type are added after an upgrade has occured. Obviously they should also have the upgrade in this design, but should they be more expensive as a result? I think it should be kept as upgrading them individually, but reactions to testing should decide it either way.

Upgrading could come with drawbacks, but I’m not sure what they could be. Maybe for flagella, cilia and lamellipodia, upgrading their movement speed leads to increased ATP use. That does beg the question of why the player would ever bother upgrading anything at all, though, as if ATP use scales with movement speed, they could just add another flagella and get the same effect as upgrading the first multiple times. From a gameplay standpoint, I think upgrades make sense. If we could get some drawbacks in as well it could be fun, as long as there isn’t a way around them without upgrading.

We had a discussion in Slack recently about upgrading the cell wall, which I think is relevant here. The gist of it is that we decided on having several expensive upgrades to the cell wall which take place over many generations, eventually strengthening it enough to prevent osmolysis but only after the player or AI invests a lot of Mutation Points in it. @Seregon in particular also wanted a scientific basis for each upgrade level, but we didn’t really find anything. It also touches on the idea of drawbacks, as going for a cell wall prevents many other strategies.

I suggest that every single thing you can upgrade decreases some other trait. So, for example, you could triple the speed of your flagella, but this would lower the speed at which you can turn. As for mitochondria, you could increase your mitochondria’s efficiency, but this would in turn increase the oxidative damage done to it, so you would have a shorter lifetime with more energy or a longer lifetime with less energy.

One would go about upgrading an organelle rather than placing a new one because this would save space. This is important because the bigger your cell, the more massive it is, the more energy and ATP it uses for osmoregulation and the more force is required to move it.

Love it. [Post must be at least 10 characters lol]

However I think by upgrading you naturally have drawbacks even if they aren’t hardcoded into the changes you make. Every time you choose a mutation, there are countless other mutations you are not choosing, which may have been choices you should have made, and your final design could actually end up not any better or even worse fit for the environment when you spawn. Additionally, you could’ve made a good choice with your evolutionary change, but then the evolution of the species around you happens to render it useless or deleterious. This is all very speculative, and I think play-testing would confirm this better, but that’s my opinion on it.

I think it doesn’t make sense genetically why increasing the effectiveness of one mitochondrion should be a smaller mutation than increasing the effect of all mitochondria. To use a larger scale as an example, an organism with five legs can have all of their lengths coded for by the same gene, and then another organism has two legs which are both coded for by the same gene. In both cases, it only takes one mutation to the gene to, say, lengthen the legs. However, you could also have a case where an organism has five legs coded for by the same gene, whereas another organism has two legs, each leg being coded for by a separate gene. The former case would only take a single mutation for the legs to lengthen, whereas the latter case would take two. Assuming all copies of the same organelle are coded for by the same gene, then all changes should apply across the board.

However, if we want to allow organelles of the same type to be upgraded independently, we could implement the clone tool here as we will in the Organism Editor. In this case, placing five mitochondria will make each of them coded/upgraded separately, whereas placing one mitochondria, and then cloning it four times, would require only an upgrade to one and all will be affected by it since they are all coded for by the same gene. This is slightly different from the use of the Clone Tool in the OE, because there you don’t have to place one leg and then clone it in successive generations. You can place a leg and then clone it and place all the clones at once for the price of one. However if we used this for the Microbe Editor, that would mean you could place 10 mitochondria for the price of 1 right in the first editor session.

Just want to make a note about cytoplasm, with a related note about ATP:

  • ATP: We can’t keep treating ATP like it is a compound produced, stored, then used up. Cells always maintain a mostly-constant amount (well, cytoplasmic concentration most likely) of ATP, instead cells which have higher ATP needs fill those needs with larger capacity to produce ATP, to maintain the same quantities with faster turnover. I know we’ve had this discussion before, and we can continue it in the GDD thread, but I wanted to bring it up here as it directly ties into my next point:
  • Cytoplasm: I don’t think it should be a net user of ATP – glycolysis is the only source of ATP for anaerobic eukaryotes, for example, and they manage just fine with using their cytoplasm to produce all their ATP. While the cytoplasm does contain a lot of processes which require ATP, it still produces enough to cover the energy needs of most organelles, it simply pales in comparison to the mitochondrion’s ATP production capacity which allows aerobic organisms to do so much more.

I agree with both of those. Also whichever release we add cytoplasmic glycolysis to, we need to also remove the mitochondria starting in the default cell, so that it’s just the nuclear core.

@moopli, I agree that cytoplasm shouldn’t be a user of atp. However, bigger cells should have a greater mass and would thus require a great force to get them moving and they should also have a smaller rate of compound absorption because of their surface to volume ratio (or the other other way around, I forgot). As for atp not being a quatifiable compound (if I understand what you are saying correctly), this would actually play very well into the health mechanic. ATP would always be at 100% unless the cell is damages and is unable to produce it anymore. Then when the levels reach zero, the cell dies.

This post will attempt to go over the upgrade system as I have planned it out over the past months that I’ve been on the team.

In the editor, the player has 3 choice:

  1. He can right click on an organelle and remove it.
  2. He can left click on the organelle and move it to any part of the organism for a small price
  3. He can double-click on the organelle and bring up the upgrade panel.

If the player hovers over an organelle for more than 3 seconds, he brings up the following window which features the aforementioned 3 options as well as some stats.

I used some random things I made up, but later we can fill it up with actually useful stats (if you’re wondering free radicals slowly deplete the health of your cell).

Clicking on the upgrade button opens the following window:

The red star is your current location on the “map”. You press the purple buttons (circles) to move the cursor closer to their direction on the grid. If a point cannot move in the specified direction by a parallel grid line (in other words if it’s on the edge), it moves along the diagonal of one grid cell to get closer to the button you pressed. To calculate the stats, the game will then find the component of the vector leading from the origin to the cursor that is parallel to the vector leading from the origin to the stats button.

I have thought about it and in my opinion this is a flexible and pretty good approach to upgrade organelles. In the above example, you have 4 different parameters (2 pairs), but this method also works for organelles that have two parameters (one pair), 3 parameters (one pair and some other parameter, like efficiency). Having a UI like this has two great features:
For one, you can upgrade a trait making it progressively better. This mimics evolution where over time traits get better and better (flagella started out as ion pumps and were really bad at first at moving the cell; mitochondria had a very low surface area—no folds—when they were first assimilated and had a very low efficiency; gills started out as ion exchange membranes with a low surface area).
Secondly, this allows for an exchange mechanism that @tjwhale wanted so much :stuck_out_tongue: Obviously, you cannot simultaneously make a flagellum longer and shorter, but it offers for more subtle differences. You cannot make a very long and thin flagellum, you have to strike a good balance between these two traits, depending on your lifestyle (I just pulled this comparison out of my head). But let’s say you want to at the same time be able to make a thick and long flagellum (you are just against short and long flagella because they break off or something), you could make a crazy shape like below:

Although we should keep these shapes more or less primitive e.g. triangle, rhombus, square, line.

1 Like

Some great ideas here.

In terms of the value of upgrades, there was a discussion a couple of years ago concerning possible sequences for organelle upgrades to provide diminishing returns, i.e. initial upgrades give big improvements but later ones aren’t as beneficial, so you’re more likely to spend Mutation Points elsewhere. Combining it with your system could work, although the exact mechanics might have to be changed slightly as it was formulated with a set of linear upgrades for each organelle stat in mind.

UI-wise, this is probably a better approach to what we had planned before, where the panel on the right would be replaced with upgrade options for a selected organelle.

In some cases this might not be the best system, or it will at least need modification. For instance, some organelles can be cross-graded between different types (such as cilia and lamellipodia, or agent secretors and pili). At best this could just be an extra button in the upgrade window, although I guess it would remove any upgrades the player has already made to that organelle, resetting the marker in the centre. Another example is the development of a cell wall - it would most likely be a linear progression from membrane to full cell wall, which could just be represented by a single line of upgrades.

We’ll definitely be having this. @NickTheNick made a post some time above where he talks about using an exponential function to lower the benefit at higher upgrades. As described above, when calculating the benefit, everything is broken down into linear components, so no change needed there.

I’ve given this some thought and here’s my idea. Let’s assume for a while that Cilia are just really thin and short flagella. We can then take the above picture and do something like this:

Once the player gets the cursor in the purple shaded rectangle (which is anything thinner or shorter than the purple circle marked cilia,highlighted in the image for visibility), he gets a button at the bottom left that asks if he wants to upgrade to cilia. At this point the flagella upgrade window switches off to the cilia upgrade window with the cursor located in a region titled flagellum and a button to switch to flagella at the bottom right.

We don’t have to have complex shapes like the one above. We can simply have a line with the left part say “Flexible” and the right say “Rigid”. Although I disagree that going from membrane to cell wall is a linear progression. You should be able to upgrade the heat resistance/cold resistance/phagocytosis and a bunch of other things. Finally, we might need a new tab in the editor for external organelles and another one for agents.

Uh. First off, we’re having organelle upgrades?

… Oh right.

So far it looks okay, though I don’t think it’s ideal, considering it might not even be a good idea to have so many levels of upgrade (seriously, what purpose does it serve? just to pad gameplay?), and there are probably often more than two factors we want to balance against each other.

Though it looks like you’re already covering that in your discussion so far and I am too tired to add much.

Of course we’re having organelle upgrades, why wouldn’t we? I think it’s erroneous to assume that once your cell gets an organelle they stay the exact same way. Natural selection is always in progress.

Nothing is ideal, but this satisfies all the requirements for an intuitive GUI that offers the player flexibility in evolving his organelles in a realistic manner.

Umm… to allow the player to simulate evolution on a microscale. There is only so far you can go with 4 different kinds of organelles, and don’t tell me that you think that all living creatures on earth have the exact same kind of mitochondria and the exact same kind of vacuoles.

As I said, this works perfectly fine for more than two factors, but I really don’t think we’ll have more than two factors that we want to balance against each other that often. Care to bring an example?

I think this is a great feature to work to get into the game. Remember that we can always revisit any feature and revise or improve it, but until then I think this is very well designed and fleshed out to be put into the game.

Additionally, I think this works well going into the later stages, which is something we should keep at the back of our minds. When you place, say, a heart, in the Organism Editor, you won’t just be placing, moving, or removing organs, rewiring connections, and rescaling them, you’ll also be changing their properties, such as intestines that absorb more nutrients, hearts that pump blood better, lungs that have more internal surface area, etc. This looks like a feature that could be carried over into the OE quite well.