thewierdnut / endless-mobile

Space exploration, trading, and combat game.
https://endless-sky.github.io/
GNU General Public License v3.0
92 stars 6 forks source link

Importing too many/too large of plugins causes unrecoverable game. #99

Closed MonkeyMatrix closed 7 months ago

MonkeyMatrix commented 7 months ago

Is there an existing issue for this?

Describe the bug

The game imports the Galactic War and Cromha Expansion plugins successfully, but a restart of the game to apply them causes the game to continuously crash. On the release version of the game, I was unable to find a way to recover any of my saves.

Steps to Reproduce

Import the Galactic War and Cromha Expansion plugins. Restart the game. The game may crash, depending on the device specs, leading to a seemingly unrecoverable game.

https://github.com/1010todd/Galactic-War https://github.com/OcelotWalrus/Cromha-Expansion-plugin

Expected Behavior

The game should recognize that it has crashed and disable all plugins along with enabling reduced graphics on the next launch. It should prompt the user that something went wrong.

Screenshots

No response

Link to save file

No response

Device type

Lenovo Tab M10 Plus 3rd Gen

Game Version

F-Droid 0.10.2-37

Additional Information

This probably only occurs on devices with lower specs, but the game should recover itself to prevent the loss of saves. #35 and #40 seemed to talk about this issue. I remember some type of plugin-disabling, but it does not seem to catch this.

Thank you to @thewierdnut and everyone else for all the work placed into this mobile port and the Endless Sky game. I have enjoyed this game for almost a year after finding it on F-Droid. I find this port of the game to provide the same experience as its desktop counterpart, and I am very excited about the new game-pad support coming to the game.

thewierdnut commented 7 months ago

The game should auto-disable all plugins on startup if it detects that it has crashed. I will re-test this functionality to verify that it works.

YiffLord commented 7 months ago

The game should auto-disable all plugins on startup if it detects that it has crashed. I will re-test this functionality to verify that it works.

I actually never tried the plugin disable feature (I tend to be extremely careful with such for certain traumatic events), it doesn't seem to disable the plugin.

-Click Disable option on a plugin. -Restart. -Plugin still enabled.

thewierdnut commented 7 months ago

If you are talking about the checkboxes in the plugin list, I've never messed with or tested those, I just inherited them when I rebased for 0.10.2.

When I say the plugins get disabled, I mean that if the game detects a crash, its supposed to prevent the loading of all plugins that have been imported (basically all plugins except the compactlayout plugin) on the next game load.

This is a mechanism that is separate from the upstream mechanism, and its possible they do not play well together.

MonkeyMatrix commented 7 months ago

When I started a very modded play through a few days ago, Aben was adding in a planet which kept me from accessing another beneath it. Using the checkbox disabled the plugin, so it appears to be working. Although, as thewierdnut said, I am referencing the mechanism to disable all plugins after a crash.

thewierdnut commented 7 months ago

-Click Disable option on a plugin. -Restart. -Plugin still enabled.

It looks like this relies on the upstream behavior of only saving the plugin enabled/disabled preferences on exit, which doesn't work with the android app lifecycle.

I've updated the code to save the preference as soon as you click on it, but in the meantime, this does work if you explicitly go back to the main menu, and click quit to trigger the shutdown code that saves these settings. (closing via the android app drawer will not work)