Goanna v0.15.0-alpha¶
Smoother flying while distant terrain streams in: in our test flight the longest stalls (over a tenth of a second) were about 60 per cent fewer and the typical frame rate about a fifth higher. Joining a server you have played on before no longer downloads its media again, and shader packs draw their own skies and keep their full colour range.
Performance¶
- Fewer first sight stalls. Materials for every kind of block, near and far, are now prepared a little at a time from the moment the game's definitions arrive, rather than the first time each one comes into view.
- Distant terrain is built off the main thread. The work of turning a finished distant region into a mesh moves to the worker threads, and its upload to the graphics card is spread over several frames, with the old terrain kept on screen until its replacement is complete.
Measured on a flight over fresh terrain, three runs of each version alternated, with both versions' ranges apart on every figure below:
| Frame time, ms | 0.14.0 | 0.15.0 |
|---|---|---|
| Median | 27.3 to 30.8 | 22.3 to 25.3 |
| 1% low | 99 to 105 | 88 to 91 |
| 0.1% low | 118 to 125 | 103 to 111 |
| Frames over 100 ms, per run | 10 to 15 | 3 to 7 |
That is about 18 per cent less time per frame at the median (a fifth more frames a second), lows about 12 per cent shorter, and 60 per cent fewer frames over 100 ms. A smaller stall, over 60 ms about every 2.7 seconds while terrain streams, is still there in both.
How it was measured: a 76 second open route at 10 nodes a second over a fresh copy of the standard Mineclonia world, the High profile with a 1024 node far distance, each run starting with an empty terrain store, against a local Luanti 5.17.0 server, Godot 4.5.1, on an RTX 3090 in headless gamescope at 960 by 540. Headless timings compare the two versions with each other; they are not the frame rates you will see on a desktop. It is one route over low land and sea, and the two versions also draw slightly different content, so part of the median gain may not come from these changes. Preparing every material up front may use a little more memory.
Joining¶
- Server media is kept between visits. Textures, sounds and models a server sends are kept in a cache, checked, and used again the next time, through Luanti's own file cache. Only missing, damaged or changed files are downloaded. On a local devtest server the first join downloaded 447 files and a reconnect downloaded none. If the cache cannot be written, joining still works as before.
- Clearer loading. The loading screen now says whether it is reading the cache, downloading, or preparing the world, rather than calling all three downloading.
- A place to ask for help. The README links the Goanna Discord server.
Shader packs¶
Still experimental, as in 0.14.0. These changes were checked side by side with Minecraft Java 26.2 itself, the reference shader packs are written for: the BridgeTest bridge serves the same Minecraft world to Goanna as an ordinary Luanti server, so both draw one scene from one camera. Godot 4.5.1. They have not yet been reviewed on a Mineclonia world.
- Pack skies. A pack's own sky, sun and moon programs are drawn, instead of Goanna's sky. Eclipse's sky was observed with no shader errors. Custom sky geometry and sunset geometry are not supported yet.
- Full colour range. Lighting is handed to the pack's later passes without being clipped or gamma converted first, and packed material data passes through exactly. Blended material values remain approximate.
- Light as packs expect it. Packs receive block and sky light on the linear scale they are written for, and eye brightness measured at the camera, smoothed as the pack asks.
- Ambient occlusion and face shading as Iris does them. Packs'
separateAoand ambient occlusion level settings are honoured, and the old per face shading is off by default. - Glass and ice use the pack's translucent program. Against Minecraft, the error in glass colour fell from 77 levels to 21. Ice has not been checked.
- A missing sky input reads white, not black, matching what packs observe in Minecraft.
- Pack terrain textures are filtered as Minecraft filters them, sharp texels with blended mipmaps, which removes excess shimmer in the distance. Goanna's own terrain is unchanged.
Fixes¶
- A rare problem while joining. Water effects could read block names while the server was still sending block definitions. They now wait until the definitions are ready.
- No more errors from update checks for optional material packs that are not installed.
Known limits¶
Not run on Windows; the Windows build is compiled and packaged only. Not tested on a Steam Deck in this release.
Everything outside the shader pack section was checked against Luanti 5.17.0 servers, with devtest and Mineclonia as stated in each part.
Goanna is independent of the Luanti project.