Fast Noise
Vanilla Worldgen optimization mod
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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.
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
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
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