Fabulously Optimized

Fabulously Optimized

2M Downloads

Starlight

Madis0 opened this issue Β· 19 comments

commented

Mod name
Starlight

Curseforge link
https://www.curseforge.com/minecraft/mc-mods/starlight

Modrinth link

Other link
https://github.com/Spottedleaf/Starlight

What it does
Replaces the vanilla light engine for claimingly 25x faster performance

Why should it be in the modpack
Better light performance, could replace Phosphor, now owned by Paper which means more potential developers

Why shouldn't it be in the modpack
Currently (forever?) incompatible with vanilla light format, so when the mod is disabled (for any reason), the world loads longer. Still needs more evaluation on its sustainability and mod compatibility - even the developer itself claims it "may not improve FPS and has mod incompatibilities".

Categories

  • Performance optimization
  • Graphics optimization
  • New feature
  • Optifine parity
  • Fixes a bug/dependency
  • Replaces an existing mod

Additional details

Important caveats: https://github.com/Spottedleaf/Starlight/blob/fabric/TECHNICAL_DETAILS.md#important-details-to-note
The caveats make it not worth it in the short term, I will revisit this in 1.18.

Also note-to-self: when this is added, add a disclaimer about light resets if vanilla or other mods are used.


Edit: I now have a planβ„’

  1. 1.18.1 will be released by FO without Starlight
  2. FO will make some updates to get parity with 1.18 and resolve any important issues (crashes, multiplayer bug etc)
  3. FO will include Starlight and ask users to vote whether it is better than not having it
  4. FO will update mods etc.
  5. FO will include Phosphor and ask users to vote whether it is better than Starlight
  6. FO will make final decision on which mod to use in the future

Edit: People have voted and 1.18+ will include Starlight.

commented

Since this gets asked for a lot, I figured I'd list my reasons why I currently prefer Phosphor over Starlight even though Starlight does give better light performance.

  • "So overall I do not expect Starlight to improve FPS at all. If anything, it will harm it due to the stuttering caused by generating and loading chunks faster." (source)
  • "[...] don't expect any changes Starlight does to actually make FPS improve on the average - it just helps with those edge cases at maximum world heights." So essentially it could help more in 1.18 than in 1.17. (source)
  • "If the world is saved in Vanilla then to Starlight the chunks will look unlit, so it will relight them." This means using any other client/set of mods in your world will make it slower to load at first. (source)
  • "Please note that since this is a beta, there could be some light corrupting issues. Do not use if you do not want to take that risk!" Starlight is in beta and Phosphor is not. (source)
  • Not released on Curseforge or Modrinth PaperMC/Starlight#65

I am following the development of both so everything could change, especially with 1.18 big caves and mountains, which do require more light updates. Maybe Starlight will release a stable version soon? Maybe Phosphor gets discontinued? Maybe Mojang finally fixes their light issues? Time will tell.

Edit: Good news, CF version has been released and it is now a part of Paper. Still, that doesn't yet indicate how often will it update on Fabric and how well are any mod conflicts handled.

commented

@RealCamar Thanks for letting me know! I am still a bit cautious for now and am considering to release it in 1.18.

commented

image
Well, its out now

commented

It should be released on CurseForge soon. Just waiting for approval

commented

Here's a video showcasing Starlight. I am aware that this doesn't include a Phosphor comparison, but just thought that this would be helpful.

https://video.cdn.minepkg.io/608534b6874ed483f8038d80/608fe9061c83190fee046c6a.1080.vp9.webm

commented

Here's a video showcasing Starlight. I am aware that this doesn't include a Phosphor comparison, but just thought that this would be helpful.

https://video.cdn.minepkg.io/608534b6874ed483f8038d80/608fe9061c83190fee046c6a.1080.vp9.webm

Looks good as an illustration, but for a benchmark it lacks FPS and CPU/GPU usage during those chunk loads.

commented

Noteworthy read: JellySquid (Sodium/Lithium/Phosphor/Hydrogen dev) discussing Starlight: https://discord.com/channels/602796788608401408/754753337525534892/886265756742975548
(via https://caffeinemc.net/discord)

commented

Now that it is a part of PaperMC, we can consider it to be out of beta and usable now? Besides that I now don't see any reason not to just use Starlight.

commented

Just because a project is part of an organization, does not mean that it is stable :)

commented

https://www.curseforge.com/minecraft/mc-mods/starlight/files/3554912

At the very least 1.18.1 should come out before I include it. Though I also wonder about potential future incompatibilities with Sodium, as one was just recently fixed...

Edit: updated OP with a plan

commented

Summary of a discussion we had in the modpack's Discord + some additional points:

Phosphor

Pros

  • 100% vanilla-compatible lighting
  • 1.17 was released and there is a 1.18 dev build (also 1.16 got updated FWIW)

Cons

  • People claim it is slower on some multiplayer servers
  • Seems less sustainable nowadays, a 1.17 update to Phosphor was released today while 1.17 was released ~5,5 months ago

Starlight

Pros

  • Faster lighting than Phosphor and vanilla
  • Should bring a bigger difference in 1.18 due to larger worlds
  • The fact that worlds have to be relit may not be an issue if they are relit fast anyway
  • People claim it works better on multiplayer servers
  • Was released ~3,5 months ago, so 2 months after 1.17
  • 1.18 is already being worked on, could be ready for release

Cons

  • The dev says it will not improve FPS in most cases
  • Chunk loading may cause more stutters on slower computers
  • Existing worlds must be relit
  • Received no bugfixes since first stable release

I am still thinking how to approach this, currently leaning towards Starlight but maybe not for the first build of 1.18 (regardless of whether it is available then).

commented

The fact that worlds have to be relit may not be an issue if they are relit fast anyway

However the other way around (loading starlight worlds in vanilla/other lightning engines) could be slow if updates stop/come late at some point or players want to share their worlds with people without the mod.

Plus the whole light suppression debate, since "invalid" light from existing worlds is also cleared.

commented

The fact that worlds have to be relit may not be an issue if they are relit fast anyway

However the other way around (loading starlight worlds in vanilla/other lightning engines) could be slow if updates stop/come late at some point or players want to share their worlds with people without the mod.

Plus the whole light suppression debate, since "invalid" light from existing worlds is also cleared.

What about "optimize world" option? Would it help?

commented

Using "optimize world" with Starlight would convert the world to the starlight format (and without starlight to the vanilla format), at least if the erase cached data option is selected (if it's not, the light may not even be converted regardless).

Optimize world basically loads and saves all chunks in the world (save only if needed), nothing more, if I'm not wrong.

commented

This voting has ended as well, results are below!

Starlight results are in!

Github: 20πŸ‘ 2πŸ‘Ž 1πŸ˜•
Discord: 25πŸ‘ 1πŸ‘Ž 11πŸ˜•
Sum: 45πŸ‘ 3πŸ‘Ž 12πŸ˜•

So 75% thought that Starlight is better than vanilla, 5% thought it is worse and 20% did not see a difference.
Now it's time to see how Phosphor goes against Starlight. The voting will end mid-January, after which the mod to use will be decided.

If you don't have a GitHub account, but have a Discord account, vote here. (join the server first)


To vote:

  1. Create a new world in 3.1.0-alpha.5. Explore it a bit. Observe the performance of loading new chunks.
  2. Create a new world in 3.1.0-alpha.6/3.1.0-alpha.7. Explore that as well.
  3. Now compare the two. Which one was faster to load? Did your game freeze at some point? How was your FPS?

πŸ‘ 3.1.0-alpha.6/3.1.0-alpha.7 was faster, smoother, had better FPS.
πŸ‘Ž 3.1.0-alpha.5 was faster, smoother, had better FPS.
πŸ˜• Performance was similar or equal, did not notice a difference.

commented
commented

This voting has ended, now vote below!

It's time to test Starlight! In order to decide, whether to use it in Fabulously Optimized going forward, I need your vote.
Feel free to discuss the vote in this topic. The voting will end with the end of the year, then Phosphor will be added for another testing and voting.

If you don't have a GitHub account, but have a Discord account, vote here. (join the server first)


To vote:

  1. Create a new world in 3.1.0-alpha.3. Explore it a bit. Observe the performance of loading new chunks.
  2. Create a new world in 3.1.0-alpha.4/3.1.0-alpha.5. Explore that as well.
  3. Now compare the two. Which one was faster to load? Did your game freeze at some point? How was your FPS?

πŸ‘ 3.1.0-alpha.4/3.1.0-alpha.5 was faster, smoother, had better FPS.
πŸ‘Ž 3.1.0-alpha.3 was faster, smoother, had better FPS.
πŸ˜• Performance was similar or equal, did not notice a difference.

commented

Phosphor results are in!
Github: 7πŸ‘ 27πŸ‘Ž 3πŸ˜•
Discord: 2πŸ‘ 22πŸ‘Ž 4πŸ˜•
Sum: 9πŸ‘49πŸ‘Ž7πŸ˜•

14% of voters thought Phosphor runs better than Starlight,
75% of voters thought Starlight runs better than Phosphor and
11% of voters did not notice a difference.

Therefore, Fabulously Optimized will use Starlight in versions 1.18.1 and up.
If you were one of the 14%, feel free to follow this tutorial:
https://github.com/Fabulously-Optimized/fabulously-optimized/wiki/Adding-more-mods

Note: due to the way Starlight works, disabling (or replacing) the mod will make your existing worlds initially load a bit slower.
This is harmless, it simply means the game is calculating the lit up areas again with a different algorithm.

commented

Since Fabulously Optimized is going to use Starlight, shouldn't this issue be closed?