跳到正文

Concurrent Chunk Management Engine – Forge

作者:Makki132

这是将 C2ME Fabric 移植到 Forge 的版本。

收藏

截图

介绍

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

Concurrent Chunk Management Engine (Forge)

由 ishland / RelativityMC 制作的 C2ME 的非官方 Forge 移植版,适用于 Minecraft 1.20.1 和 1.18.2。原模组:https://modrinth.com/mod/c2me-fabric

Minecraft 在单个线程上生成、加载、保存和照亮区块。在现代多核 CPU 上,这意味着当你因新地形而卡顿时,大部分核心都处于空闲状态。C2ME 让这些工作并行化。它是在 Fabric 上实现流畅探索和快速世界预生成的引擎,现已移植到经典的 Minecraft Forge。

这是社区移植版,并非由原 C2ME 团队制作或认可。所有核心引擎工作都归功于他们;本项目将其带到 Forge。请在此处报告 Forge 特有的问题,而不要向上游 C2ME 报告。

image

支持与错误报告

**加入 Discord:https://discord.gg/s7BYs6Njj5**

这是我处理问题的地方,也是联系我最快捷的方式。崩溃、模组冲突、关于该运行哪个版本的问题,或者生成速度比预期慢的整合包:发到那里,我会查看。来自真实整合包的报告正是本模组中大多数兼容性修复的来源。

请附上你的 latest.log(或崩溃报告)以及整合包名称和版本。

功能

  • 多线程世界生成:地形、生物群系、特性和结构在所有核心上并行生成。
  • 多线程区块 I/O:加载和保存不再阻塞游戏线程。
  • 多线程光照。
  • 无 tick 视距:看得更远,而不会 tick(并卡顿)那些区块。
  • 更智能的调度以及世界生成期间更低的分配开销。
  • 线程安全修复,解决大量原版和模组世界生成的 bug。

以单个模组形式发布,由按功能划分的模块构建,每个模块都可以单独关闭。

性能

本页上的每个数字都是在你可以在此处下载的文件上、以其默认设置测量的:没有标志、没有配置修改、每次运行都是全新世界、相同种子。专用服务器和单人游戏测试分别运行,从不同时进行。

测试机器:Intel i9-9900K(8 核 / 16 线程),32 GB 内存,Windows 10,8 GB 堆内存。专用服务器:Java 17(1.18.2)和 Java 21(1.20.1);单人游戏:Java 17。

Minecraft 1.20.1

原版世界,专用服务器,/chunky radius 1000(16,129 个区块):无 C2ME 时 3:28,使用 C2ME 时 0:48:快 4.3 倍(各运行 3 次)。

重型整合包,单人游戏:快 2.8 倍到 4.3 倍。

image

Minecraft 1.18.2

1.18.2 版本包含来自 1.20.1 系列的现代化线程引擎,比上游 C2ME 为 1.18.2 发布的任何版本都更新,另外还有两个在此版本上很重要的东西:

  • 内置 Starlight 光照引擎。在 1.18.2 上,单线程光照引擎是预生成的瓶颈,因此此版本包含 Starlight 重写的引擎(Spottedleaf / PaperMC,LGPL-3.0;包含许可证和完整模块源代码)。如果你已经运行独立的 Starlight,它会自动关闭。
  • 自调优世界生成供给。它在生成时测量你的硬件并随之自我调优:与关闭自动调优的同一 jar 相比提升 58%。

image

原版地图,专用服务器,/chunky radius 1000:未使用 C2ME 时为 4:29,使用 C2ME 后为 1:12:速度提升 3.7 倍(各测试 3 次)。使用 C2ME-Betterlight:同样为 1:12。

image

大型整合包,单人游戏:速度提升 3.2 至 4.5 倍。

image

加载时会自动检测线程不安全的世界生成模组并进行隔离:只将需要处理的那个模组所用的一个生成阶段串行化,其余内容仍会并行生成。无需命令、无需配置,也无需手动启用。

过去无法完成预生成的五个整合包,如今都能顺利完成完整的 /chunky radius 1000;9 个整合包中,C2ME 未发生任何崩溃:

image

内存

C2ME 会同时处理多个区块,并根据可用堆内存调整数量,因此大型整合包在 8 GB 内存下也能运行良好。增加堆内存仍有一些帮助(在我的测试中,使用 12 GB 时分别提升了 7% 和 12%):

image

C2ME-Betterlight(1.18.2,可选附加模组)

[C2ME-Betterlight] 用 C2ME 自带的光照引擎替换内置的 Starlight,适用于服务器和客户端。在我的测试中,玩家在每次测试中都没有遇到错误的光照值(Starlight 在五次测试中有一次出现了 94 个错误值);出生点处最差帧的耗时缩短了 28%,而 FPS 和预生成速度保持不变。它是单独下载的模组,且只适用于一个确切版本的 C2ME(1.0.0 需要 0.2.0-forge.8.2)。不安装它则不会有任何变化。

image

需求

  • 1.20.1:Minecraft 1.20.1、Forge 47.x、Java 17 或更高版本
  • 1.18.2:Minecraft 1.18.2、Forge 40.x、Java 17

请下载与 Minecraft 版本匹配的文件;不同版本需要分别下载对应构建版本。

兼容性

C2ME 可与常见的 Forge 性能优化模组组合使用,包括 Embeddium、ModernFix、FerriteCore、ServerCore、Canary 等。如果其他模组已经优化了相同代码(例如 Canary、Radium 和其他 Lithium 分支),C2ME 只会对这些重叠部分避让,同时继续进行多线程世界生成。与 NBTac、LongNbtKiller 和 MoreMobVariants 等模组的已知冲突也会以相同方式处理,无需配置。

  • Arclight(1.20.1 Forge + Bukkit 混合服务器)从 forge.9.9.4 起即可运行。
  • Architectury 和其他前置库模组都会纳入每个版本的测试。
  • 线程不安全的世界生成模组(例如 Lost Cities、Blueprint 模组、Large Ore Deposits、Skyblock Builder、Ore Tweaker)会在加载时被识别,且只会将各模组存在安全问题的生成阶段串行化。如果你遇到我尚未收录的模组?请把日志发到 Discord,我们会将其加入。

如果你已经在使用 Canary 或 ServerCore,C2ME 最主要的额外功能就是它们不具备的多线程世界生成。

配置

  • 设置位于 config/c2me.toml。通常无需更改任何内容。
  • 可以通过 JVM 参数关闭任意模块:-Dc2me.disableModule.MODULE=true(例如 -Dc2me.disableModule.opts.scheduling=true)。
  • 命令:/c2me notick(无刻视距状态;仅限管理员)。

已知事项

  • 需要充足的 RAM:请参阅“性能”。
  • 由于本模组替换了区块存储后端,少数直接访问原版区块存储内部实现的模组可能需要单独调整。遇到此类问题,请在 Discord 上反馈:https://discord.gg/s7BYs6Njj5

鸣谢与许可

原版 C2ME 版权所有 (c) 2021-2024 ishland 和 RelativityMC。源代码:https://github.com/RelativityMC/C2ME-fabric 使用 MIT 许可证授权;本移植版也基于同一许可证重新分发,完整许可声明已包含在 jar 文件中。衷心感谢 C2ME 团队:没有他们的工作,就不会有这个移植版。

1.18.2 版本还包含 Starlight 光照引擎,版权所有 (c) Spottedleaf 和 PaperMC 项目,使用 LGPL-3.0 许可证授权。许可证已包含在 jar 文件中,该模块完整的对应源代码发布于此:https://gitlab.com/thescriptersdk/starlight-c2me-source Starlight 上游项目:https://github.com/PaperMC/Starlight

常见问题

Concurrent Chunk Management Engine – Forge 支持哪些 Minecraft 版本?

Concurrent Chunk Management Engine – Forge 支持 Minecraft Java 版 1.18.2–1.20.1,共 2 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Concurrent Chunk Management Engine – Forge 怎么安装?

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

评论

登录后评论和评分