跳到正文

FastChunkGen

作者:Misanthropy

Blazing-fast chunk generation done right

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

FastChunkGen

Patreon

FastChunkGen generates chunks on all of your CPU cores, saves and loads them in the background, and fixes the vanilla threading bugs that get in the way.
On a fresh world it pregenerates about 4x faster than plain forge.

Forge 1.20.1  |  Server and client  |  Stable


What does it do?

This mod generates chunk work on every core you have (configurable) and moves chunk saving and loading off the server thread.


Features

Parallel World Generation

  • Noise, surface, carvers, features and lighting run on a worker pool sized to your CPU.
  • Several chunks generate at once instead of waiting in line.

Async Chunk IO

  • Chunks load and save in the background, so autosaves and fast travel stop freezing the server.
  • Faster compression and a cache for chunk data that was read recently.

Faster Vanilla Worldgen

  • Optimized aquifers, noise sampling, surface rules and random number generation.
  • Close chunks share the noise they would otherwise both calculate.

Vanilla Terrain

  • A seed gives you the same terrain, caves and aquifers with or without the mod.
  • Every worldgen change is compared chunk by chunk against plain Forge before it ships.

Threaded Lighting

  • The light engine gets its own thread instead of sharing one with everything else.

Safe For Modpacks

  • Async saves still fire Forge’s ChunkDataEvent.Save on the server thread, so mods that store extra data in chunks keep it. Other ports just skip this..
  • Modded machines and containers are saved on the server thread, not read by a worker.
  • A chunk that loads again while its save is still queued gets the new data, not the old copy on disk.
  • Worldgen tasks that fail are retried, so no part of the map gets stuck and never generates.
  • When a mod touches the world from the wrong thread, the log names the mod and the method. The warning is rate limited so it can’t spam your logs.

Compatibility

  • At startup the mod checks what else is installed. If another mod already optimizes the same code, this mods turns off
  • Used in a lot of modpacks, specifically in Linggango. I can confidently say this is the most stable C2ME port ever.
Mod Status
ModernFix Works.
Radium / Canary Works.
FerriteCore, ThreadTweak, FastNoise Works.
Chunky Works. Recommended for pregenerating.
FastNoise Eh.. FastNoise is redundant but it works?

Benchmark

Pregen of 4,225 chunks: Forge 45.1 s, FastChunkGen 11.3 s

A dedicated server, fresh world, seed is 25 (yes just 25), Chunky at its default radius. Ryzen 7 7800X3D (16 threads), 8 GB heap, everything on default settings. For accurate benchmark, I ran it 10 times!

I also wanna mention that results will vary. The amount of you mods especially. If you have ton of mods this mod will show its benefits even more! 


Config

Configuration

All settings are in config/fastchunkgen.toml.

Option Default Notes
globalExecutorParallelism Based on your CPU Worker threads for worldgen and chunk IO
threadedWorldGen.enabled On Needs at least 3 workers
ioSystem.async On Background chunk loading and saving
threadedLighting.enabled On  
ioSystem.recoverFromErrors On Regenerates a chunk that fails to load instead of crashing, like vanilla
ioSystem.gcFreeChunkSerializer Off Faster saves, but skips Forge save events. Breaks mods that store chunk data
fixes.enforceSafeWorldRandomAccess Off Crashes on unsafe thread access instead of warning. Useful for finding broken mods

FAQ

Does it change world generation?
– No. Will anyone even ask this, why is this in FAQ.

Do I need it on the client?
– No, but u should keep it on client for singleplayer use and more.

Can I add it to an existing world?
– Yes.

Something broke.
– Open an issue on GitHub


Credits

  • Original mod, C2ME, by RelativityMC and ishland.
  • Forge port base by sj-hub9796.

常见问题

FastChunkGen 支持哪些 Minecraft 版本?

FastChunkGen 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

FastChunkGen 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Misanthropy 的其他作品

查看全部 →