Open hhyyrylainen opened 11 months ago
I've just encountered this issue in 0.6.5. This happened shortly after moving into the experimental multicellular stage, with a large generalist (photosynthesis, iron oxidation, digestion of all cell types) cell.
Following the first multicellular evolution, there was a noticeable temporary freeze, after which the single bud cell spawned successfully, surrounded by organelles and resource clouds corresponding to the cells engulfed by the prior colony, at various positions within the prior colony's cells. After the second evolution, with significantly more foreign cells engulfed prior to evolving, the game froze completely and failed to recover for about 5 minutes, after which I killed the process. At that point, Thrive was running on one thread, fully utilizing it. The background music was playing, so I believe this was either the master thread, or a worker thread for sound, depending on how the threading is set up.
The truncated logs don't go that far back, but previously engulfed cells would spawn engulfed within a new cell following evolutions in the single-cell stage, which caused hiccups when the total engulfed amount was greater than the new, smaller cell's capacity. When this happened, the contents of some of the engulfed cells would be moved outside after a few seconds and the game would continue to run as normal. I can't confirm whether this produced any loggable errors based on the truncated log, but I expect it would.
I believe the root cause for this strange behavior in both stages to be cell contents being carried over between evolutions, which doesn't seem like the intended behavior (it doesn't really make sense for a cell 100M years apart in a wholly different region to inherit the state of the previous run), and didn't happen in previous versions.
I believe the root cause for this strange behavior in both stages to be cell contents being carried over between evolutions, which doesn't seem like the intended behavior (it doesn't really make sense for a cell 100M years apart in a wholly different region to inherit the state of the previous run), and didn't happen in previous versions.
This is intended behaviour, same as carrying over compounds the player had stored.
I have a suspicion that the game locking up is unrelated to the entity stuck inside engulfer messages. After player reproduction entity limit is exceeded, will force despawn something
is pretty interesting part of the logs. From having observed the reports being made for multiple years, the game is most likely to crash or get stuck (which is luckily pretty rare) when switching game scenes (so going to the editor or returning from the editor).
I can confirm the lock-up wasn't related to the engulfment issues. In order to test this, I've run another playthrough, this time with sessile, silica wall cells incapable of engulfing. Once most species in the world followed this pattern, I focused on a single region and pushed any non-silica species to extinction. Upon entering the experimental multicellular stage, the game locked up not long after, with no relevant messages in the log as to why. This occured well after a scene switch.
After player reproduction entity limit is exceeded, will force despawn something
did appear over multiple reproductions.
All in all the lock-up can probably be discounted as system-specific, as I'm running this on a Linux system heavily customized for specific build processes and almost nothing behaves as it would on the average system.
All in all the lock-up can probably be discounted as system-specific, as I'm running this on a Linux system heavily customized for specific build processes and almost nothing behaves as it would on the average system.
At least it is a rare one. My hunch is that this is a Godot engine bug that is super rare, but on your system the conditions to trigger it happen much more often than elsewhere. And/or what is normally a crash exhibits a lock up instead on your setup.
The next release with the switch to Godot 4 will have a completely new set of engine bugs.
I've created a workaround but the root issue is not gone: https://github.com/Revolutionary-Games/Thrive/pull/4725
We need to monitor the situation to see if people even trigger that new error print at all now.