-
-
Notifications
You must be signed in to change notification settings - Fork 0
FastLoad
FastLoad is an optimization that reduces load times by up to 5-15 seconds[1] by frontloading the data repositories[2] asynchronously, patching them to be faster and patching the intro to load the title screen faster. Normally, when loading a save from the main menu, the data repositories, like QualityRepository and EventRepository, are loaded and cached, taking about 30 seconds and halting save loading until complete. FastLoad starts this process in the background as soon as the game launches, so it's ready by the time you load a save. It also patches the intro to use LoadSceneAsync, cutting down the transition time from the intro to the title screen, and patches the repository loader to load the heavy hitters in terms of performance concurrently to the others. It also patches the process that extracts images to your Sunless Sea/images
folder to be 100+ times faster, saving several seconds, by checking whether a file exists before writing it.
FastLoad is an optimization that reduces load times by up to 5-15 seconds[1] by frontloading the data repositories[2] asynchronously and patching the intro to load the title screen faster.
Normally, when loading a save from the main menu, the data repositories (like QualityRepository
and EventRepository
) are loaded and cached, taking about 30 seconds and halting save loading until complete. FastLoad starts this process in the background as soon as the game launches, so it's ready by the time you load a save.
There are also miscellaneous performance patches:
- Patches the intro to use
LoadSceneAsync
, cutting down the transition time from the intro to the title screen, saving approximately 1 second. - Patches the repository loader to load the heavy hitters in terms of performance concurrently with the others, saving about 15%.
- Patches the process that extracts images to your
Sunless Sea/images
folder to be 100+ times faster, saving several seconds, by checking whether a file exists before writing it.
- Load time reduction, saving up to 5-15 seconds in total across intro transitions and save loading.
- Most game data is loaded at launch, meaning you can load up the game, walk away for a bit or do something else on your computer, and not have to worry about a second loading screen when you return.
- The game will no longer override any changes you make to the game's images. This can be both an upside and a downside.
- Slightly increased initial startup time. FastLoad increases performance overall, but the initial startup time is slightly longer due to background loading and the intro patch. The total time saved by using FastLoad typically outweighs this minor increase, so it should still leave you with a significant net performance gain.
- (Possible) save loading errors. If something goes catastrophically wrong and you load your save before the repositories initialize (this should never happen and has never occurred during testing), you may encounter an error. Don't panic; your save file should still be intact, the game just failed to load it properly. Disable FastLoad in the config and try again.
- If a mod is coded wrong or causes errors, the game freezes up while loading, instead of showing an error when loading a save.
- If images have been changed, but they still exist, the game no longer tries to override them. This can be both an upside and a downside.
1: Based on limited personal testing. Please share your own benchmarks to improve the accuracy of this number.
2: Data repositories are the classes that manage, load, and store the game's data files. These load the JSON files in the PersistentDataDirectory (such as events.json, etc.) and convert them into a usable format for Sunless Sea.