your current location:首页 > news>Starlight Minecraft

Starlight Minecraft

2024-12-12 09:19:56|Myriagame |source:minecraft skins

Minecraft 1.20 light engine changes

In Minecraft 1.20, Mojang has re -written a light engine. For details, please read the article of the Starlight Author.

In short, Mojang's two core optimization measures for the light engine:

Transfer light levels, but not to update the square;

Use a separate and simplified logic to determine the distribution of light in the block;

Similar to the optimization of starlight.Although Mojang's optimization is still less than starlight (such as only half of the speed of the light in the transmission level), it is fast enough for the client.

Therefore, the author will no longer update the module version after 1.20.

Starlight will still exist in the server and other server, because the performance of the starlight is still constrained by the original block engine, so that it can be used to provide the block engine provided by these server, and then provide huge amount of block updates/generation for large servers.Ability.

Starlight (Starlight)

Optimized MOD developed by Tuinity author Leaf, a complete rewriting of the light engine of Minecraft.Starlight was originally a light optimization solution that was independent of the Tuinity server, and was later transferred to Fabric & Forge Mod.

Light Engine and Shader are completely different concepts. The rewriting of the starlight on the light engine will not prevent you from opening the light!

Compared with the performance alone, the starlight is far better than the original light engine, and it is far better than phosphorus (Phosphor) or its branch, but the rewriting nature will cause it to destroy any module directly interacting with the light engine (most of the cases (most of the caseOnly the optimization module such as phosphorus will directly lit the light engine), so please consider whether to use starlight by yourself.For details, please refer to the "module compatibility and related conclusions" section and the technical documentation provided by the author.

Starlight also fixed performance problems that only occur in specific situations such as MC-162253.

Note: Tuinity is a branch of the Paper/Spigot server, which aims to improve the performance of the world's related operations.

Development purpose

The performance of the original light engine is simply bad.Existing modifications, such as Phosphor (Phosphor) or Paper light engine (Paper's light engine inherit autosomes), although it is tried, it is unable to return to the sky after all.

The optimization of the existing light engine is quite good, but unfortunately, its optimization has nearly encountered the ceiling of the original code, and now there is almost no room for further optimization.

Paper's light engine inherits self -phosphorus, so it also encounters the same problem -no change, so it chooses to use more aggressive means.It looks quite intermittent and discontinuous.As shown in the figure:

Minecraft images

The following figure shows a more reasonable lighting look (using starlight):

Minecraft images

Is there a chance to solve these problems?

Maybe, but no one knows what it has led to this problem, and the debugging of the original light engine is too complicated, it is simply a mess, so that all the warriors who tried to climb the peak in the end have to sigh the shit mountains of the shit mountains.High, finally choose to give up.What's more, for example, the changes made by Paper did not repair the obvious problems caused by the original light engine at all, but it was just a self -flow, and it was estimated that it was more than enough.

In fact, optimizing the light engine on the basis of the original code is the heaven and night -it is better to push down and rewrite.

Performance test

At the beginning and precautions

Data is better than argument.We divide the performance indicators into three tests.[World Generation/Light Platform Light Update/Yingshi]

Regardless of which test below, thanks to the light engine completely rewritten by the starlight, the block generating speed is incredible, far beyond the range that Phosphor can reach.

Please note that the author believes that you may not be able to see the FPS on the client side on this module significantly improved.This is mainly because because the light engine gets a quality leap, the client can render more blocks per frame, and the increase in block update speed will also have a negative impact on FPS.In some scenes that have high requirements for light engines, for example, when generating a magnifying world on less ideal hardware, we can still see very significant block generation speed improvement and FPS leap.

Due to the different control methods of the sky light, the starlight will reappear the block of the original light engine, and the new sky light data is not compatible with the original light illumination format.Re -loading the block is always more time -consuming than directly loading them. Therefore, when you formally evaluate the performance of the starlight, you should first load the block to adapt to the format of the new light engine.

Light generating test

Minecraft images

Map seeds: vanillakekw.

CPU: Intel i7-8750H @ 2.20GHz

From (0, 0) to generate 101x101 blocks at the same time, pre -rendering 101x101 blocks with (-10000, -10000).

Forced light execution threads are run on a single thread, and the CPU thread time is measured by tool Visualvm to measure the performance of the CPU on light.

The starlight takes about 7 seconds to produce light, and the original light engine takes about 220 seconds, and phosphorus (Phosphor) takes about 170 seconds.When the starlight generates light for the block, it is about 25 times faster than the phosphorus, which is about 35 times faster than the original.

Large platform light update test

The figure below shows the destruction block on the large platform of Y = 254 and the light update time of the light on the large platform on Y = 0 (the lower the better):

Minecraft images

Test LightBench.

The world is an ultra -flat world. Y = 0 has BEDROCK and y = 254 Grass.

CPU: Ryzen 9 5950X.

Yingshi update test

The figure below illustrates the update time of the light stones when placing/damaged (the lower the better):

Minecraft images

Test LightBench.

The world is an ultra -flat world. There are base rocks at Y = 0, and y = 254 are grass (grass).

CPU: Ryzen 9 5950X.

Placing and destroying the rushstone on the base rock layer means that the light of the sky is unlikely to affect the test results.

Module compatibility and related conclusions

Not compatible module list

Unsurprisingly, cutting -edge technologies originally designed for BUKKIT -based servers have module compatibility issues on platforms such as FORGE and Fabric.Any module that depends on the lighting engine, such as Flywheel, will be destroyed by starlight, and require additional means to achieve compatibility.

You can find the list of damaged modules on the right: not the list of modules.

The above list is of course not 100% complete, because it depends on the people who report these problems there.And given that the author is unlikely to repair these compatibility issues one by one, do not expect many people to worry about submitting these issues.

In addition, as the prefix of the famous module of the Create (Create), the compatibility of the starlight is asked by many people, and here is a special explanation.The officially released starlight is not compatible with the flywheel under 1.16. Later, some people provided compatible patch, but at that time, the starlight had abandoned the maintenance of 1.16 to 1.17+, so 1.16 and the flywheel (that is, mechanical power, because the flywheel because the flywheel, because the flywheel, because the flywheel because the flywheel, because the flywheel, because the flywheel, because the flywheel, because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel was because the flywheel.It is its front) compatible starlight version. It is also published on the Starlight X Create page.After 1.16, before 1.20, the starlight and the flywheel were compatible.In the 1.20 and subsequent versions, because the original version of the new version is written, the support of the client is reduced by the starlight. At this time, the compatibility of the starlight and the flywheel is difficult to guarantee.

Block engine

The optimization of the Tic-Tacs block provides official compatibility. It also made a special restructuring. The TIC-TACS side also made a specific modification of the starlight, so you can use these two modes at the same time at the same timeFor the complementary relationship between the two parties, Leaf even advocates that you do so.

However, TIC-TACS has stopped. For stability considerations, the [C2ME] C^2M engine (C^2m-Engine) is a good choice.

Other light engines

It is inevitable.

If you install starlight and phosphorus together, and you have successfully entered the game without collapse, please don't think that starlight and phosphorus are compatible.Because the Starlight Formation will completely push the original light engine and replace it with its own light engine.In better circumstances, the original light engine that has been optimized by phosphorus is also pushed down by starlight, and phosphorus will not play any role in the environment of starlight.In bad cases, the code of starlight and phosphorus will be mixed with each other. At this time, the behavior of the light illumination engine is unpredictable, and any consequences are possible.

The above conclusions are not only suitable for phosphorus, but also for various non -official version (such as sulfur, sulfur), or other modules that change the original light engine.

in conclusion

Starlight is currently the fastest light engine in Minecraft.However, this is not at a price.It will destroy some modules and make some light delay problems on the client become a performance bottleneck (because the light engine on the server is responsible for the starlight, which is far better than in the past).

So what kind of light engine should you use?

For personal play, the author recommends that at least do not use the original light engine, because phosphorus is a community-verified light engine optimization, which fixes performance problems like MC-162253.So your choice range should be at least reduced to phosphorus or starlight.In terms of module compatibility, phosphorus will be better because it just modify the light engine rather than rewriting.However, according to your computer configuration and world terrain, starlight may also be more advantageous.In summary, the author recommends testing the impact of the two on your usage and select the one you love.However, it is recommended to be very different for servers with a larger scale (with a large number of block loading).If you realize the performance problems of the light engine, you can find that many problems in large servers can be attributed to light.For example, the continuous stuttering caused by the light engine, or the server restarted due to stuttering, and the luminous update was lost, resulting in light interruption.Starlight solves these problems. First of all, its own speed is very fast, and it is unlikely to cause stuttering. Secondly, the preservation block is prevented when the light is updated.More people will also explore more people, which will put greater pressure on block generation, and Starlight will help this.

Therefore, the author believes that if you pursue a high -performance MINECRAFT experience, the starlight will better handle the light update of the light on the large server, depending on various factors (see the first paragraph of this small section).

PHOSPHOR may be more suitable for small and single games.If you want to add a new module, please confirm whether your existing modules are compatible.