/noisium

Minecraft mod that optimises worldgen performance for a better gameplay experience.

Primary LanguageJavaOtherNOASSERTION

Noisium icon

Noisium

Optimises worldgen performance for a better gameplay experience.

In the best case measured so far, the improvements can be up to a 1.25% speedup per thread when generating new chunks in vanilla Minecraft.
With 4 threads, that means that there is a 5% increase in world generation speed in total.
This was benchmarked on an Intel i5-7500, on 1.20.1 Fabric with Chunky, by generating a 2000x2000 block area using /chunky radius 1000.
Results may vary based on hardware and thread counts (e.x. faster hardware may benefit less).

5 CPU benchmarks, by Uniter, raccoonman2 and ishland

Noisium changes some world generation functions that other mods don't touch, to fill in the gaps left by other performance optimisation mods. Most notably, NoiseChunkGenerator#populateNoise is optimised to speed up block state placement when generating new chunks.
Setting the block state via abstractions/built-in functions is bypassed. Instead, the block states are set directly in the palette storage, thus bypassing calculations Minecraft does that are normally useful when block states are set, but when generating the world only slow it down. This is a cycle optimisation.
There are also 3 other optimisations, that increase biome population speed, block state sampling speed and chunk unlocking speed (Minecraft 1.21 and up) during world generation.

Noisium has full 1:1 parity with vanilla Minecraft world generation (world generation without Noisium).

Dependencies

Required

None.

Compatibility info

Compatible mods

Noisium should be compatible with most, if not all, of the popular optimisation mods currently on Modrinth/CurseForge for Minecraft 1.20.x, since Noisium aims to fill in the gaps in performance optimisation left by other mods. This includes (but is not limited to) C2ME, Lithium, Nvidium, and Sodium.

  • C2ME: every world generation thread runs faster. The biome population multithreading is also done in a much better/more performant way in C2ME, so it's been removed from Noisium since v1.0.2. It's suggested to run C2ME alongside Noisium for even better world generation performance.
  • Distant Horizons: Noisium speeds up LOD world generation threads, since LOD generation depends on Minecraft's world generation speed.
  • ReTerraForged: RTF has built-in compatibility with Noisium, to fully utilize the optimisations during RTF world generation.

Incompatibilities

See the issue tracker for a list of incompatibilities.

Download

GitHub Modrinth CurseForge

Fabric Quilt Forge NeoForge

See the version info in the filename for the supported Minecraft versions.
Made for the Fabric, Quilt, Forge, and NeoForge modloaders.
Server-side.

FAQ

  • Q: Will you be backporting this mod to lower Minecraft versions?
    A: No.

  • Q: Does this mod work in multiplayer?
    A: Yes, but it'll only improve performance on the server.

  • Q: Does only the server need this mod or does the client need it too?
    A: Only the server needs this mod (but it works on the client too if you're going to host LAN or play singleplayer).

Attribution

  • Thank you to Builderb0y for giving great starting points and helping with issues
  • Thank you to ishland for helping with C2ME compatibility and benchmarking performance
  • Thank you to Uniter and raccoonman2 for benchmarking performance

License

This project is licensed under LGPLv3, see LICENSE.