header
premium banner

Description

Starlight

Fabric mod for rewriting the light engine to fix lighting performance and lighting errors.

Future updates past 1.20

Please see: https://gist.github.com/Spottedleaf/6cc1acdd03a9b7ac34699bf5e8f1b85c

This project is available as a part of Moonrise

Compatibility

Starlight can be installed either on the dedicated server or client. It is not required to be installed on both sides. If you have Starlight on the server, clients can use Vanilla/Phosphor/Starlight to connect. Likewise, if you have Starlight on the client, you can connect to Vanilla/Phosphor/Starlight servers.

Starlight cannot be installed with Phosphor, they are completely incompatible. Browsing through Starlight's Issue Tracker will show further mod incompatibilities. Starlight is a rather destructive light engine rewrite, so it should be expected to break mods more often.

Purpose

Starlight was developed for higher scale dedicated servers, as they suffered performance problems due to how ungodly slow the light engine was. The only solution was to create an extremely invasive mod which rewrote the entire light engine. I ported the mod to fabric so that I can update it during snapshots, and decided that publishing it for all users, especially client users, would be beneficial. However, it does have the downside of being an invasive mod: Being invasive didn't affect higher scale servers because they run on Bukkit.

Further reading on the technical details of how Starlight achieves its performance can be read here: TECHNICAL_DETAILS.md

Performance for 1.20:

Here are a few graphs showing performance in 2 areas on: Block editing at high y-levels, and normal block light updates:

Light engine time chunk generation Graph has been removed as a benchmark as it is invalid for 1.20. Starlight and Vanilla are close enough on 1.20 that this test is also useless. Block update at height graph Simple glowstone block update

Performance for 1.19.4 and below:

Here are a few graphs showing performance in 3 critical areas: Chunk generation, Block editing at high y-levels, and normal block light updates:

Light engine time chunk generation Graph Block update at height graph Simple glowstone block update