Modifies how worlds are loaded to speed up loading times.
Short Explanation
Fastload is a relatively simple mod that changes some crucial parts of world loading to speed it up.
Environments
Client (Optional)
Server (Optional)
Credits
StockiesLad (Owner)
JoostMSoftware (Co-Owner)
AbdElAziz333 (Forge)
VidTu (Ksyxis (Idea))
kennytv (Forcecloseloadingscreen (Code))
Features
441 Pre-generator: Entirely yanks it to sync chunk generation with chunk rendering.
Loading Screens: Cancellable (Configurable)
Rendering: Pre-rendering Phase (Configurable)
Suggested With
C2ME: Optimises chunk generation.
Sodium: Optimises chunk rendering.
Explanation
The 441 chunk loading engine is pretty much what the name is. The reason for it being 441 chunks is that it generates chunks in a 10 chunk radius as a square. So multiply that by 2, add 1 (because you are standing on a chunk) and square it. Fastload removes this feature as it is a huge waste of time. Instead, it will only load 1 chunk (the spawn chunk) and loads the rest of the spawn region during early rendering.
Along with that, it also replaces some of the loading screens with its own implementation. This pretty much allows rendering to begin immediately instead of it being halted until the player spawn packet is received.
Removed 441 Loading completely. Removed unnecessary screens and replaced it with fastload's implementation. By finally putting everything together, world loading is significantly faster.
There are no known bugs right now. Please report any and all you find.
Here's what's new:
- Pre-rendering allows non-visible chunks to be generated
- Simplified some method calls which may very slightly reduce hiccups.
- Removed over abundance of checks which drag down performance.
- Abstracted main code from logic which should allow this to be version-agnostic.
- Made Text distance from chunk map in LevelLoadingScreen consistent & even.
- Delayed world icon screenshot to further reduce the probability of the "White world issue"
- Cleaned up events to save memory and made them more powerful tools.
- 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4 and onwards are going to be in the same jar from now on. Enjoy.
Known bugs:
1.19.4 doesn't work as of yet due to a compilation issue that I can't fix yet.
The rendering (Building terrain) screen will not be translated text due to fabric's limitations regarding how mods can be discriminated before loading.
If you have discovered a bug or know how to fix an already existing one, please post it on github. It really helps! But please do not submit already known ones. I am aware of them and do not need 200 reports regarding the same issue.
Updated pre-loading system to permit chunk try limit to be infinite so that modpacks won't always bail.
Huge refactors. Organised Code. Made fastload run through abstract events.
Updated pre-loading system to permit chunk try limit to be infinite so that modpacks won't always bail.
Huge refactors. Organised Code. Made fastload run through abstract events.
Documented Config
Cancel the "Joining world" screen when "FORCE_CLOSE_LOADING_SCREEN" is true
Pre-generation is allowed to be up to a limit of 32 radii now!
Added MANY failsafes to avoid problems.
Added a new Pause screen cancellation to stop the "white world icon" problem more effectively.
Added a "debug" option to debug things that are happening in order to diagnose issues better
Added fields to store values in order to avoid recalculations
Refactored FLMath to make all config variables pass through it to allow for easy organization
Removed useless and redundant code from FLMath + un-hardcoded methods
Organized Code from MinecraftClientMixin, FLMath & FLConfig to make things more readable.
Server ticks during Building Terrain.
Added a custom pre-rendering screen. Includes:
- Render Radius (like pre-generating)
- Limits Render Radius to value of game options' one
- Calculates amount of chunks being looked at (circle area multiplied by proportion of view, dynamically adjusts with FOV)
- "prepares" chunks
- Sets player's pitch (vertical looking) to 0 when loading to build chunks easier
- Failsafe
- Chunk try limit (Config boolean) ("How many times should the renderer attempt to build/prepare chunks before bailing")
Please report all bugs as Fastload is much more complex as of now, and is more prone to issues.
Documented Config
Cancel the "Joining world" screen when "FORCE_CLOSE_LOADING_SCREEN" is true
Pre-generation is allowed to be up to a limit of 32 radii now!
Added MANY failsafes to avoid problems.
Added a new Pause screen cancellation to stop the "white world icon" problem more effectively.
Added a "debug" option to debug things that are happening in order to diagnose issues better
Added fields to store values in order to avoid recalculations
Refactored FLMath to make all config variables pass through it to allow for easy organization
Removed useless and redundant code from FLMath + un-hardcoded methods
Organized Code from MinecraftClientMixin, FLMath & FLConfig to make things more readable.
Server ticks during Building Terrain.
Added a custom pre-rendering screen. Includes:
- Render Radius (like pre-generating)
- Limits Render Radius to value of game options' one
- Calculates amount of chunks being looked at (circle area multiplied by proportion of view, dynamically adjusts with FOV)
- "prepares" chunks
- Sets player's pitch (vertical looking) to 0 when loading to build chunks easier
- Failsafe
- Chunk try limit (Config boolean) ("How many times should the renderer attempt to build/prepare chunks before bailing")
Please report all bugs as Fastload is much more complex as of now, and is more prone to issues.
Fixed bug where the player entity would spawn too late, causing inventory management and player spawn location issues. Fixed by making sure the player has initialized before canceling loading terrain.
Fixed bug where the player entity would spawn too late, causing inventory management and player spawn location issues. Fixed by making sure the player has initialized before canceling loading terrain.
Fixed bug where the player entity would spawn too late, causing inventory management and player spawn location issues. Fixed by making sure the player has initialized before canceling loading terrain.
Fixed bug where the player entity would spawn too late, causing inventory management and player spawn location issues. Fixed by making sure the player has initialized before canceling loading terrain.
Fixed bug where if you weren't focused on the game after it finishes loading, it wouldn't render anything until you unpause it.
Called renderer earlier and ensured it works properly.