Comments on Specific Development Forum Posts

Would there be any benefit to having the cells NOT be close?

So how would the distance decrease for macroscopic stage? Also why not place a new algorithm when distance start to overlap. Where cell side which are close together or facing other cell will be merged.

As cell side are not joined, more thing can be attached to the exterior of the cell. Also due to less demand of specialization, player can play with the mechanic more. And due to compact design cause by decrease in distance between them, those cell which have not done binding agent modification can engulf them easily.

1 Like

Okay. Make a suggestion then. How would the code know when things start to overlap?

This is literally multiple times harder than any current code for the microbe visuals…

4 Likes

That seems more like a disadvantage than anything

Two thing I will suppose are already setup for what I say to work. One being that the membrane is a 2d plane, with point along the edge surface which is what give the morphing membrane. Second being that the 2d plane has collision detection. Thus the system should first check if the collision is detected by both cell which are joined together by the binding agent. . Another condition should be to see if these cell have the binding agent distance decrease modification increased. This way it can know whether the cell are overlapping. So after that the point would send ray traced line to all the nearby point not occupied by its own cell. Then it will join the point closest to it. The point will be joined together by placing both point on the same position, and the replacing the point with new new point shared by both cell. It will then ignore collision of this point. If collision is still detected, it will continue to join point until no further collision is detected between those two cell. I know you obviously know more than I know, so is this system completely broken

So what do you think the suitable disadvantage would be?

The disadvantage is the edge close cells have vs distanced cells as you already suggested a few posts ago

Maybe I am dumb,.but I don’t understand what you are trying to say? Is the disadvantage that the non binding agent cell can engulfed the compact cell?

1 Like

The disadvantage is that cells which are closer to eachother are better than those which are further apart, which pushes the species to go for the close cells rather than the far cells

1 Like

What advantage and disadvantage would you make for this system, knowing that the endgoal which all cell do in real life is when the cell are tightly compact together

1 Like

I suppose the “more attachment points” advantage could work for some tissue types

1 Like

But this is exactly how binding works in the microbe stage?

If you are talking about the multicellular stage, I need to let you know that none of these exist in the editor, where the layout must be finalized, only the cell types and their organelle positions exist. So none of these fancy membrane or collision shapes exist. That’s exactly why I’ve been describing this as a super complicated change to do.

The membrane generation system just makes a membrane and doesn’t support updating it. Also each membrane object is for a single cell.

So again you are suggesting a major rework of a big system.

Another huge problem: physics engines hate physics shapes changing dynamically and that can cause various issues with overlaps and glitching. Also changing shapes is performance intensive, which is why Thrive does not even use physics shapes that can be modified. Instead all Thrive physics shapes are generated once and if a colony structure changes that triggers a full collision rebuild. However for efficiency we cache the individual cell shapes so in effect a colony collision is just a collection of individual collision shapes for each of the cell types. So a cell type having different collision based on where in the colony it is (due to the membrane squashing you are imagining) would need an overhaul of many assumptions in the physics shape creation system.


So your idea is not totally impossible, but…

While not completely broken, you are still suggesting 3 extremely large changes to the game. Those changes are so big that I’m totally unwilling to even try to do them.

5 Likes

You mean just for multicellular stage or both microbe and multicellular? Since pretty sure microbe membranes do change shapes (which I’d think is equivalent to updating?).

It’s the same system for both.

It isn’t updated, it is totally redone based on the new organelle positions. Though, again there’s caching so the exact same organelle positions remembers what membrane goes with it and doesn’t need to update it.

2 Likes

Hm. I suppose with how the system seems to have been doing it’s job just fine there’s little reason to update it in the current predicament, considering it also seems pretty efficient (so does well on earth apples too).

On the matter of this post, I really don’t see the point myself. I don’t know about other people, but I don’t have Thrive going through the launcher. Maybe it’s a thing that’s required the first time or something, but on Steam I feel it may be more effective to just let the game launch straight away (if that isn’t already something you can do).

4 Likes

I think Steam skips the launcher by default.

5 Likes

To be fair not everyone will use Thrive through steam

2 Likes

How does the physics shape handle the cell organelles being split into two? Is it already set during the microbe editor phase?

2 Likes

It was already said the membrane is re-generated and NOT updated when that happens

3 Likes

I answered how it gets “updated” here (the answer being it isn’t, just a new membrane is generated whenever organelle positions change):

BTW that’s the reason why cells in colonies are forbidden from growing as they would cause major membrane overlaps with the only way to fix it would be to somehow update the cell positions in the colony to account, which would be extremely complicated.

That’s the case for almost any feature in Thrive is the way it is: it would require massively more programming resources to do it differently.


And also before you ask, here’s a bit of history: in the first versions of multicellular the cell growth worked like this: when a new cell was grown it was actually spawned as a full cell and put roughly in the position it was in the editor (relative to the colony position). Then once the membrane was initialized (due to the way stuff is calculated in the background this can take multiple game frames) it got snapped to the closest cell in the colony so that the membranes were touching. We had this algorithm for a few years but it was removed because we got persistent bug reports about cells growing into totally random positions into a player’s colony, or major overlaps where cells formed a kind of a V-shape into which a bigger cell was then jammed into. As the cell snapped to the base of the V shape it majorly overlapped with the “sides” of the cells it didn’t attach to.

So with the previous approach there were major visual glitches. And so I remade it into the current system that statically calculates the positions which at least makes the positions consistent if not always totally sensible.

5 Likes