Fast Noise

Vanilla Worldgen optimization mod

1,4M

Quick challenge

How far can you run before the mobs catch you?

Fast Noise

Fast Noise is a modern optimization mod to improve world generation times. I regularly update the mod to latest minecraft versions, bring improvements to the mod, and provide stable releases.

vanilla parity The mod maintains vanilla parity, including with any datapacks. Do keep in mind, vanilla parity.

Can I use custom worldgen mods with this? Yes, I try my best to maintain mod compatibility, and only modify safe code. Specific optimizations that may affect mod compatibility are disabled by default.

Forge / Neoforge? Versions for minecraft 1.19.x - 1.21.8 are compatible with sinytra connector.

Available on codeberg Available on curseforge Available on modrinth Support me on Ko-Fi

How does this mod work?

Fast noise optimizes storing block and biome data into chunks for the duration of worldgen.

Technical Details

Fast noise replaces populateNoise,populateBiomes in NoiseChunkGenerator and surfaceBuilder in SurfaceBuilder.

Fast noise optimizes world generation by making several strong assumptions about how world generation works. By replacing vanilla's generic and debug code for world storage with faster, more packed calculations, fast noise achieves faster throughput.

Some key methods used to achieve that are, caching block state information, caching block state information, caching block state information, caching block state information, caching block state information and more.

How fast is it?

About 10-18% improvement to overall worldgen in overworld in 1.21.11 on latest versions. Much higher improvement in nether, end Here is a Jmh Benchmark Software.

Chunky benchmark

12 threads w/ mod ``` [12:39:32] [Server thread/INFO]: [Chunky] Task finished for minecraft:overworld. Processed: 16641 chunks (100.00%), Total time: 0:01:37 ```

W/o mod ``` [12:43:08] [Server thread/INFO]: [Chunky] Task finished for minecraft:overworld. Processed: 16641 chunks (100.00%), Total time: 0:01:47 ```

4 threads w/ mod ``` [12:56:23] [Server thread/INFO]: [Chunky] Task finished for minecraft:overworld. Processed: 9409 chunks (100.00%), Total time: 0:01:10 ``` W/o mod ``` [13:01:11] [Server thread/INFO]: [Chunky] Task finished for minecraft:overworld. Processed: 9409 chunks (100.00%), Total time: 0:01:23 ```

With higher distance W/o mod ``` [13:11:01] [Server thread/INFO]: [Chunky] Task finished for minecraft:overworld. Processed: 19881 chunks (100.00%), Total time: 0:02:43 ``` W/ mod ``` [13:16:03] [Server thread/INFO]: [Chunky] Task finished for minecraft:overworld. Processed: 19881 chunks (100.00%), Total time: 0:02:21 ```

Jmh Benchmark

``` Mods used: Fast Noise 1.0.15+26.1 on 26.1 snapshot-6 ChunkPos: -16,-16 -> 16,16 End ChunkPos: 112,112 -> 144,144 Chunks: 1089 Mods used: (c2me)

With mod: Benchmark (worldName) Mode Cnt Score Error Units BiomesBenchmark.biomegen end avgt 5 11.786 ± 0.168 ms/op BiomesBenchmark.biomegen nether avgt 5 174.833 ± 1.166 ms/op BiomesBenchmark.biomegen overworld avgt 5 2401.797 ± 31.629 ms/op NoiseBenchmark.noisegen end avgt 5 3052.242 ± 12.358 ms/op NoiseBenchmark.noisegen nether avgt 5 1039.086 ± 6.467 ms/op NoiseBenchmark.noisegen overworld avgt 5 8441.811 ± 41.396 ms/op

With only c2me: Benchmark (worldName) Mode Cnt Score Error Units BiomesBenchmark.biomegen end avgt 5 26.058 ± 0.245 ms/op BiomesBenchmark.biomegen nether avgt 5 185.957 ± 2.203 ms/op BiomesBenchmark.biomegen overworld avgt 5 2464.937 ± 29.007 ms/op NoiseBenchmark.noisegen end avgt 5 3925.059 ± 14.292 ms/op NoiseBenchmark.noisegen nether avgt 5 1920.705 ± 9.864 ms/op NoiseBenchmark.noisegen overworld avgt 5 11552.674 ± 54.112 ms/op

Vanilla: Benchmark (worldName) Mode Cnt Score Error Units BiomesBenchmark.biomegen end avgt 5 27.051 ± 0.118 ms/op BiomesBenchmark.biomegen nether avgt 5 239.634 ± 1.702 ms/op BiomesBenchmark.biomegen overworld avgt 5 4589.322 ± 80.331 ms/op NoiseBenchmark.noisegen end avgt 5 4477.113 ± 36.133 ms/op NoiseBenchmark.noisegen nether avgt 5 1951.438 ± 5.748 ms/op NoiseBenchmark.noisegen overworld avgt 5 14249.612 ± 57.388 ms/op

Vanilla: Benchmark (worldName) Mode Cnt Score Error Units SurfaceBenchmark.surface overworld avgt 5 5982.828 ± 17.992 ms/op SurfaceBenchmark.surface nether avgt 5 2677.115 ± 9.293 ms/op SurfaceBenchmark.surface end avgt 5 924.604 ± 5.376 ms/op

With Mod: Benchmark (worldName) Mode Cnt Score Error Units SurfaceBenchmark.surface overworld avgt 5 4820.672 ± 24.669 ms/op SurfaceBenchmark.surface nether avgt 5 1914.289 ± 644.099 ms/op SurfaceBenchmark.surface end avgt 5 0.014 ± 0.003 ms/op

Speedup Overworld: Biome: 1.026x Noise: 1.368x Surface: 1.241x Nether: Biome: 1.063x Noise: 1.847x Surface: 1.398x End: Biome: 2.21x Noise: 1.285x Surface: 66357x ```

The benchmarks may have some inaccuracies.

Socials

Chat with us on discord Chat with me on mastodon Chat with us on Gitter

FAQ and Help

Q- What Minecraft versions will the mod be supporting? A- I'll try to support the latest minecraft version.

Q- Are backports planned? A- No backports are planned, current backports were a one time thing.

Q- What other mods/dependencies do I need? A- No dependencies are required.

Q- Will there be a neoforge version? A- Yes, a NeoForge variant is planned post 26.1.

Versions for 1.19.x,1.20.x,1.21 - 1.21.8 works with sinytra connector

Works with Sinytra Connector

Q- XYZ mod crashes, or generates incorrectly with Fast Noise? A- Report the issue on codeberg or my socials.

Incompatible mods

Moonrise is incompatible, as It changes minecraft internals drastically Noisium is incompatible, as Fast Noise is intended as a replacement for noisium. Anti-Xray is incompatible for now, as it needs to put extra data in minecraft block storage, which breaks fastnoise

Credits

- Stevenplays, for developing noisium mod, I started developing fast noise while trying to port noisium to latest minecraft. - Ishland, for helping with mod, and modern-yarn and neo-loom

ADS