It would be pretty cool to watch your organelles turn on and off. Maybe they could light up when active?
And yes, it would help if the editor added up all of your ATP sources and sinks for you.
It would be pretty cool to watch your organelles turn on and off. Maybe they could light up when active?
And yes, it would help if the editor added up all of your ATP sources and sinks for you.
So the direction we’ve been going in is not to have things turn on and off to save power, it’s to punish you for running out of ATP.
The reason for this is I want people to understand that ATP is a thing and they have to generate enough of it in a clear way. I think if your cell auto-throttles the danger is people will just think they need more flagella to go faster, which will just cause more throttling, which will prevent them understanding.
I think it’s easier if flagella always provide more force, and if running out of ATP damages your cell as punishment, that makes it clear.
While reading the auto-evo algorithm discussion, I wondered whether that algorithm is too specific about the kind of life it is simulating. I presume the same algorithm will run for all organisms, yet today’s chapter was about swim speed and drag. These only apply to aquatic, mobile organisms. Does the algorithm need to calculate drag for sessile things like anemones and tunicates? What about things that just float without swimming, like algae? What about terrestrial organisms that do not swim? I suppose aerodynamics could be calculated instead, but those aren’t important for slower terrestrial animals (of which there are many). Since the algorithm will make billions of calculations for every species during the evolution simulation, I think simulating these overly specific things might result in unnecessarily long and complex simulations.
I would assume that the swim speed is the name just for now, perhaps we will get more vague name later. And for the drag, I assume that once you’re moving in a medium whose drag is neglectable (air, for example), it wont have to be calculated at all. But it’s better to have variables whose value can be set to 0 (or 1? I’m not sure what does the calculation look like, but you get the point) rather than just leaving it out.
Yeah, I didn’t mean that stuff should reversibly shut down if you run out of ATP. That’s not really how things work most of the time in real life, as far as I’m aware. I was responding to the idea of mitochondria visibly not working because you’re out of sugar.
Nick is creating a basic algorithm for a simple multicellular swimming species, as a way to build up to more. In a future algorithm for terrestrial creatures, walking gaits would be considered instead of swimming styles, and energy dissipated by feet impacting the ground and tendons stretching and things like that could take the place of drag.
If you want realistic evolution, this level of detail and more is necessary. Now, if we were to simulate the events of 3,000,000,000 years on a month-by-month basis, I’d guess we’d be limited to about 1,000 processor cycles per month, which is crippling. That’s not the approach I expect will be taken, though, and by taking some shortcuts I’d expect we can fit all the calculations we need in a short period.
I thought the idea was to have one algorithm for all creatures, not separate algorithms for different kinds of organisms. If there were different algorithms, then the game would need to categorize organisms in order to know which algorithm to use. This would severely limit creativity by forcing players into one of a few discrete categories. Kerbal Space Program uses the same rules for all rockets, and this allows experimentation. I think that is how Thrive should treat organisms too. Moreoever, creating many algorithms would be a lot of work. Having one that applies to all organisms would be easier.
I don’t like the per-month calculations. Not only does that necessitate billions of calculations and extremely long loading screens, but it also projects our calendar onto fictional worlds. Our calendar is based on Earth and Sol, but a planet in Thrive would of course have different orbital properties.
Perhaps a standard scientific unit of time (the second) can be used instead? A second is the same everywhere in the universe (it is calculated according to the element caesium). A petasecond (one quadrillion seconds) is approximately thirty million Earth years. So, 3 billion years ~100 petaseconds. One in-game evolutionary step could be 6 petaseconds (~180 million years). This is very close to the 200 million years that each step needs to be if 3 billion years are divided into fifteen parts. Instead of calculating per month, the game could calculate per terasecond (one trillion seconds or ~30,000 Earth years). One petasecond neatly divides into 1,000 teraseconds.
So instead of calculating billions of months, the game would calculate thousands of teraseconds. I think this is better because it still allows for much evolution while not being unreasonably demanding for computers. Also, it exports well onto alien worlds with orbits different from Earth’s. Relevant Wikipedia page: https://simple.wikipedia.org/wiki/Terasecond_and_longer
On the same algorithm topic I have something to say about it… actually it’s kind of short. It’s just that… it’s like in real life, everything uses the same rules (algorithm) just for different uses. For example wolves and whales both have limbs, they just use them differently. Anyway this isn’t really related to programming I just thought it should be brought up.
Something like that which is valid both for jellyfish and for horses would require simulation down to the exact physics of the environment, I think. That’s going to be too much of a resource drain regardless of large scale shortcuts taken. It might work for Kerbal Space Program because it’s essentially point thrusts and ballistic trajectories in a vacuum, but fluid dynamics around a complex object is a whole other ballpark. I don’t know, can you think of an approach that would avoid detailed physics?
Now for the good news: I think a transition from months to another similar unit of time would be a simple matter of renaming at the moment.
On a kind of pedantic note, “pick and execute one of these algorithms” is itself an algorithm, and as a result it’s been awkward wording this.
Having multiple algorithms would also be unnecessary because they would mostly be the same, which would be redundant. I think the algorithm should not be so concerned with the details of the environment. Rather, it should set basic rules which result in emergent adaption to the environment, whatever it is.
I think having detailed physics is overly complicated. The game could calculate movement speed based on the medium in which an organism lives (i.e. water or air), using the same calculation for both media but yielding different results due to the media being different. However, these media would only have general properties, as calculating their exact physics would be unnecessary. That way, drag would be important for aquatic creatures but irrelevant for terrestrial ones (i.e. the degree to which is reduces movement speed would be near zero). A thicker medium would produce more drag, and water is thicker than air. This is where atmospheric composition could be reckoned, I think.
I am uncertain how the game would calculate amphibious species. The algorithm would need to somehow track whether an organism is in water or on land or flying in the air, and I don’t know how that could be done. At the moment the algorithm can safely assume that all organisms are aquatic, but eventually that will not be true.
I don’t think merely renaming months would fix the problem, as they would still be months. A second is a universal unit of time, while a month is relative.
You missed the part where month by month is only used to detect the best mutation to select. After the mutation is selected a longer time leap is calculated in a single step.
I mean, I guess you could do drag calculations for terrestrial creatures in addition to the gait inefficiency calculations that would have to be done. It would be kind of a waste of time, though.
Each calculation step is arbitrarily called a “month” right now. The breakdown of months into days and the division of a year into 12 months isn’t coded in at all, from what I’ve read in the dev forums.
It wouldn’t be a waste of time for flying creatures. Drag is important for them.
I hadn’t considered that the “month” was not intended to be a 30-day Earth month. Yes, you’re right, the division of years into 12 months is not part of the algorithm. In that case, I suppose a name change is all that’s necessary. Perhaps vague terms like period, eon, age, epoch, etc. could be used.
I was not sure where to put this idea, as there is a lot of threads dealing with organelle upgrades, but here we go. The idea I have about the organelle upgrades goes something like this.
As a prokaryotic, you would have access to the following organelles -
Proteins (Is that what they’re called?)
Metabolosomes
Chromatophores
Chemosynthisizing protiens
Rusticyanin
Nitrogenase
and Others
Vacuole
Cilia
Now to their upgrades:
Let’s start with something easy.
Vacuoles - Upgrading the efficiency of vacuoles would slightly increase their capacity. Having a vacuole also unlocks toxin vacuoles. One way this might be done is turning one of your vacuoles into a toxin vacuole. Toxin vacuoles can also be modified further, but we’ll get to that when speaking about the eukaryotes.
Cilia - Cilia can have their length, thickness and density (by that I mean how densely is the microbe covered in them), which would affect their efficiency and they can be turned into flagella. Turning them into flagella could be done in two ways, tell me which one is better. The first option we have is just simply unlocking a flagellum by upgrading the cilia and simply getting the option to place down a flagellum. The other way, which I am a fan of, but would be harder to code in, is simply just upgrading the length of one cilium until it’s classified as a flagellum. But I understand that would be A LOT of work and the payoff is not that great.
Flagella - similarly to cilia, flagella could have their length and shape altered in order to prioritize either maneuverability or speed. They could also be turned into a basic pilus.
Being eukaryotic would unlock some more upgrades and further flexibility.
Proteins - This is where it gets complicated. One approach we can try is simply upgrading chemosynthisizing protiens into chemoplast and so on. The other approach is replacing these organelles with endosymbiotic microbes, just as we have mitochondria (basically a bacterium full of metabolosomes) and chloroplasts (let’s say it’s a bacterium full of chromatophores) now. This brings up another question that has been brought up before - how should we tackle endosymbiosis? I don’t know. But it is planned, so I think this system might work. Or a mix of those two, where you can upgrade proteins into their “higher tier” version, but can also do endosymbiosis. One reason why I think the endosymbiosis is a great approach is because you could have even more alienesque organelles. What if your “mitochondrium” is not full of metabolosomes, but rusticyanin? What if it has two proteins? You get the point. This would require every organelle that’s accessible as an eukaryote now to have its “lower tier” version, just as (again) chemosynthisizing protiens into chemoplast .
Toxin vacuoles - Being eukaryotic would also allow you to tweak the toxins you produce even more (not sure if you should be able to tweak them as a prokaryotic). You would be able to chose their effect and perhaps even the way they propagate - does the vacuole simply open and the toxin just spills out, or does the vacuole contract shooting the toxin much further, but in a much more narrow line? Again, this would bring neat tweaks, interesting strategies and a uniqueness to every organism.
Basic pilus - Upgrading the pilus you get from upgrading the flagellum would be pretty similar to upgrading the toxin vacuole. You would be able to chose the “specialization” of your pilus - there was dozens of pilus variants being thrown around. Also, you would be able to alter its size/length.
Things that have the Eukaryote Trademark (e) are available only once you are eukaryotic.
Cilia --> Flagellum --> Pilus --> Cooler pili (e)
Vacuole --> Toxin vacuole --> Cooler toxin vacuoles (e)
Proteins --> Plastids OR Endosymbiosis (e)
Also, every organelle could be enhanced/changed slightly, such as the length and width of a flagellum.
As always, I’m gonna be really happy to hear any feedback and your opinions. Thanks for reading! Also, if I made any mistakes in the names of the organelles, let me know, I will edit it asap.
Double-post necro
I would like to know your opinion regarding an idea that I’ve already mentioned in the Quick question thread a few days ago, but I feel like it should be here among other fellow microbe stage ideas.
I will be looking forward to any feedback, questions or improvement of this idea. I think this would not be the hardest thing to implement, would make more sense and would prevent deaths caused by the player not knowing which organelle does what, which might discourage some players.
Yeah this is an interesting idea. Hopefully we’re doing dynamic tool tips for this release which will tell you if an organelle is useless in that biome. Hiding the organelles which are useless would be an interesting way of simplifying the learning process.
I feel like implementation of plasmids could add a lot more depth to the game. If they were a prokaryote only thing, it would give a reason to hold off on the nucleus and open up a completely different play style.
Alternatively they could be a away to give your cell extra features, not necessarily in the editor, like a capsid.
They would also provide extra interaction with cells, other than stay away from the big ones and eat the small ones
Yeah plasmids are a cool idea I think. It says here that some Eukaryotes use them I think.
Do you have suggestions for how they might work mechanically / gameplay wise? So for example I place some plasmids in my cell, what does that do? I conjugate with some other cell and maybe we swap plasmids, what does that do? Do I get more MP or do I get a bonus to the organelles the other cell was using or something?
More progressive advancement. Games are more fun when you can unlock new things overtime. Right now, that’s only kind of true with the Nucleus
Hmmm, good question. I think that there are 2 main ways that this could be taken:
When exchanging plasmids, you’d get extra mp, say 20 or so (diminishing returns for balance would probably be needed), on top of the usual 100 as a way to increase the speed. This would make the game feel more dynamic, with evolution happening faster, although this is not exactly technically accurate.
When exchanging plasmids, your cell could get an extra bonus (one time maybe) to make it stronger, for example you could gain a capsid for extra protection against say a pilus or toxins, or some sort of chemical to catalyse some reactions, to increase organelle efficiency, etc. Maybe you could pay MP to make said gain a permanent feature, maybe not. This would probably be more technically accurate, but would take decidedly more work to implement.
Yeah interesting ideas.
We’ve talked quite a lot about MP bonuses. I am not sure how much they would feel cool but I agree they are easy to implement.
It would be nice to do something more interesting, kind of as you are talking about, with plasmids. I think also we don’t have nucleoids and the nucleus doesn’t do much, I’d like to have multicnuleates as that’s a cool thing on Earth.
So yeah maybe some bigger DNA system would be interesting, no idea how it might work, I guess there’s always the dreaded organelle unlocks.
One suggestion that has been around for a while is having “protein slots” in the nucleus which let you choose a few things for your cell to get a bonus for. Could be interesting, not sure. Anyway just thinking out loud mostly ha ha