跳到正文

FastChunkGen

作者:Misanthropy

恰到好处的极速区块生成

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

FastChunkGen

Patreon

FastChunkGen 会利用你 CPU 的所有核心生成区块,在后台保存和加载区块,并修复原版中影响这一过程的线程错误。
在新世界中,它的预生成速度比纯 Forge 快约 4 倍。

Forge 1.20.1  |  服务端和客户端  |  稳定


它有什么作用?

这个模组会利用你的每个 CPU 核心(可配置)生成区块,并将区块的保存和加载从服务器线程转移到后台执行。


功能

并行世界生成

  • 噪声、地表、洞穴雕刻器、特征和光照会在根据 CPU 配置的工作线程池中运行。
  • 多个区块可以同时生成,无需排队等待。

异步区块读写

  • 区块会在后台加载和保存,因此自动保存和快速旅行不再让服务器卡住。
  • 提供更快的压缩速度,以及用于缓存近期读取过的区块数据的缓存。

更快的原版世界生成

  • 优化了含水层、噪声采样、地表规则和随机数生成。
  • 相邻区块可以共享原本需要各自计算的噪声。

原版地形

  • 无论是否安装此模组,相同的种子都会生成相同的地形、洞穴和含水层。
  • 每项世界生成改动在发布前都会逐区块与纯 Forge 进行对比。

多线程光照

  • 光照引擎拥有独立线程,不再与其他任务共用线程。

适用于整合包

  • 异步保存仍会在服务器线程触发 Forge 的 ChunkDataEvent.Save 事件,因此会将额外存储区块数据的模组也能正常保存数据。其他移植版本则会跳过这一事件。
  • 模组中的机器和容器会在服务器线程上保存,而不是由工作线程读取。
  • 如果区块仍在等待保存时再次加载,会读取新数据,而不是磁盘上的旧副本。
  • 失败的世界生成任务会重试,避免地图的某些区域卡住、永远无法生成。
  • 如果模组在错误的线程中操作世界,日志会指出模组名称和方法。警告会限制频率,不会刷屏。

兼容性

  • 启动时,模组会检查其他已安装的模组。如果另一个模组已经优化了相同代码,此模组就会关闭。
  • 已用于许多整合包,尤其是 Linggango。我可以自信地说,这是迄今最稳定的 C2ME 移植版本。
模组 状态
ModernFix 可用。
Radium / Canary 可用。
FerriteCore, ThreadTweak, FastNoise 可用。
Chunky 可用。推荐用于预生成地图。
FastNoise 呃……FastNoise 有点多余,不过能用?

基准测试

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

使用专用服务器和全新地图,种子是 25(没错,就是 25),Chunky 使用默认半径。Ryzen 7 7800X3D(16 线程),8 GB 堆内存,所有设置均为默认值。为了获得准确的基准测试结果,我运行了 10 次!

另外要说明的是,测试结果会有所不同,尤其取决于你安装的模组数量。如果你装了很多模组,这个模组的优势会更加明显! 


配置

Configuration

所有设置都在 config/fastchunkgen.toml 中。

选项 默认值 说明
globalExecutorParallelism 根据你的 CPU 自动设置 用于地图生成和区块读写的工作线程
threadedWorldGen.enabled 开启 至少需要 3 个工作线程
ioSystem.async 开启 在后台加载和保存区块
threadedLighting.enabled 开启  
ioSystem.recoverFromErrors 开启 若区块加载失败,则重新生成该区块,而不是像原版那样崩溃
ioSystem.gcFreeChunkSerializer 关闭 加快保存速度,但会跳过 Forge 保存事件。会导致存储区块数据的模组失效
fixes.enforceSafeWorldRandomAccess 关闭 遇到不安全的线程访问时直接崩溃,而不是发出警告。可用于查找有问题的模组

常见问题

它会改变地图生成吗?
– 不会。真的会有人问这个吗?为什么这也要放进常见问题里。

客户端也需要安装吗?
– 不需要,不过单人游戏等情况下,建议客户端也安装。

可以添加到已有地图中吗?
– 可以。

出现问题了。
– 请在 GitHub 上提交问题


致谢

  • 原始模组 C2ME 由 RelativityMC 和 ishland 制作。
  • Forge 移植版基础由 sj-hub9796 提供。

常见问题

FastChunkGen 支持哪些 Minecraft 版本?

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

FastChunkGen 怎么安装?

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

评论

登录后评论和评分

Misanthropy 的其他作品

查看全部 →