区块预生成器

Chunk Pregenerator 是一款高效的预生成区块工具,可以通过提前生成区块来优化世界加载。它主要作为服务端工具运行,同时也附带了一些可选的客户端功能。 当然,它也完全支持单人游戏。

资源介绍

  Chunk Pregenerator 是一款高效的预生成区块工具,可以通过提前生成区块来优化世界加载。它主要作为服务端工具运行,同时也附带了一些可选的客户端功能。 当然,它也完全支持单人游戏。 常见问题 / 文档 / 已知问题及修复方法。 可以在顶部的 Wiki 中查看。   功能特点: 极佳的用户体验: Chunk Pregenerator 具备诸多提升用户体验的实用功能,例如: 详尽的指令文档说明, 指令参数的自动补全与智能提示,提供输入引导, 改进的日志系统,带有颜色高亮且结构清晰,方便随时查看运行状态, 可选的 UI 界面,比纯文本指令更加直观易用。 多线程世界生成: Chunk Pregenerator 支持调用多核 CPU 来生成维度, 它通过巧妙调度 Minecraft 原生的异步世界生成器来实现,该机制本身支持多线程生成,但在原版中并未默认启用。 由于各个生成步骤是相互独立处理的,这能大幅提升世界生成的速度。 多重世界生成: Chunk Pregenerator 不再占用主线程(服务端线程)来生成区块,主线程仅负责统筹调度去哪里生成哪些区块。 只要服务器有足够的线程,就可以同时生成多个维度,且互不拖慢生成速度。 预生成期间不影响游玩: Chunk Pregenerator 专为边玩边预生成而设计。 世界生成是一项非常吃 CPU 的任务,但由于它运行在异步线程中,因此可以在后台执行。 但前提是机器要有足够的算力资源,否则依然可能会影响游戏体验。 优化的区块生成检测: Chunk Pregenerator 采用了一套经过深度优化的区块状态检测机制。 这种检测方式比常规检测快得多,但由于获取的信息有限,准确性会略打折扣。 此外,耗时较长的深度检测会被放到异步线程中处理,不仅不会造成卡顿,还能随时开始或打断。 高效的内存管理: Chunk Pregenerator 并非盲目地生成区块。 它还能自主管理内存占用,实时追踪内存泄漏,并在必要时自动清理 Minecraft 产生的内存垃圾。 虽说不能做到十全十美(毕竟没法兼顾其他 mod),但它能有效控制 Minecraft 本身已知的内存泄漏问题,且不会引发其他故障。 此外,预生成任务经过了深度优化,资源占用极低,常规的区块生成几乎让你毫无察觉。 追溯生成: 在 1.14 及更高版本中,Chunk Pregenerator 是目前极少数支持追溯生成的 mod 之一。 这是通过重新构建世界生成步骤来实现的。 由于区块已经完全整合进世界中,该过程需部分在主线程上运行,因此会对服务器性能造成一定影响,但负担远小于常规的区块生成。 内置性能分析器(1.12 或更低版本): Chunk Pregenerator 自带基于图形界面的性能分析器,可实时监控世界内部的各种动态数据。 提供的数据包括方块更新、方块 Tick、处于活动状态的方块实体/实体,以及它们当前是否正在进行 Tick 运算。 此外,这些监控全都在网络线程上独立运行,这意味着即使服务器本身出现卡顿,分析器依然能正常获取数据而不会卡死。 维度控制(1.16 或更高版本): 即使在游戏运行期间,Chunk Pregenerator 也能随时禁用或启用维度。 这功能非常实用,因为维度无法自行卸载,会一直占用少量资源。 添加大量只用过几次就闲置的维度会导致不必要的卡顿,这通常是个隐患。 维度独立种子(1.19 或更高版本): 可以为每个维度单独设置生成种子,包括模组添加的维度。 相关设置可以在服务端配置文件夹下的 "pregen_seeds." 中修改。 关于超大范围世界生成的警告(400 区块半径以上): 本节内容适用于所有 Minecraft 版本。如有特定版本独有的情况,会另外作注。 经常有人问我关于超大范围世界生成的问题,我也重复解释过很多次警告了,所以干脆在这里写下来。 这些警告仅针对原版游戏。如果加了模组,这些问题会被无限放大,所以请在阅读时务必考虑你实际添加了多少模组(尤其是那些添加结构的模组,非常容易出问题)。 如果你想生成超过 250 区块(即 4000 方块)半径的世界,比如 1500 区块半径甚至更大,那么无论你是玩家还是服主,都必须注意以下几点,以防存档损坏或内存占用过高导致游戏崩溃卡死。遗憾的是,Minecraft 每个版本都存在一些内存泄漏问题。 首先必须知道的是: 超大范围的世界生成需要耗费大量时间 . 在原版中预生成 1000 区块半径(ChunkRadius)的世界,保准要花上 24 到 48 小时。要是半径扩到 2000,时间起码翻 4 倍。考虑到涉及的数据量,通常需要 8 倍的时间。也就是说,2000 半径大概率要生成一个星期。根据整合包的轻重程度,这个时间可能会变成 10 倍、50 倍,或者只有 1.2 倍。 如果你直接拉满最大半径(2.5万 半径),这玩意儿得跑上整整一年!这还是在你千方百计把设置优化到极致的情况下的耗时,绝不是随口胡诌的默认设置。而且这还是用 I5-7500 CPU 估算出来的。 这颗 CPU 虽说不是最顶级的,但比起服务器用的 CPU 已经快多了。 其次是: 准备充足的存储空间。 我有个 1.16.5 的小型存档(主世界 150 半径,下界 100 半径),在几乎不加什么世界生成类模组的情况下,就已经吃掉了 700MB 的空间。预生成过程甚至都没觉得这些模组有什么负担。 如果规模翻倍(300 和 200 半径),空间占用就直接飙到 2.8GB 了。要是搞个 1000 半径的存档,光是世界文件本身大概率就会吃掉上百 GB 的硬盘空间。(装了其他模组的话还会更夸张) 务必提前做好心理准备。如果你想进行大规模预生成,起码得腾出 1TB 的可用空间才够折腾。当然这只是个建议,如果你心里有数,那就按你的来。 接下来要注意: 千万不要直接拿最终世界开刀。 如果你要进行大规模预生成,千万别直接拿你准备长期游玩的最终世界来跑。先建个同种子的小型测试世界试试水。比如先生成一个 300 半径的范围,看看会有什么问题。毕竟,要是跑到 75% 时出了岔子导致存档损坏,比起花 24 小时老老实实做次生成测试,你的损失会大得多。而且区块预生成支持向外拓展生成。这样循序渐进地跑,你就能及时发现并解决问题。虽然过程慢了点,但这是摸清游戏稳定运行所需条件的必经之路。 你当然也可以赌一把,直接开跑然后祈祷一切顺利,但在那种生成规模下通常会翻车。最高跑 300 区块半径还是相对安全的,虽然会有一些内存占用方面的波动,但只要分配了 4-5GB 内存,这点影响还不足以引发大麻烦。 接下来要注意: 留意结构文件,尤其是废弃矿井(仅限 1.12 版本) 在 1.12 及更早的版本中,结构数据是全局存储的。这意味着它们会一直处于加载状态。通常来说,如果数量不多(比如不到 100 个),这并不是什么大问题。但坏就坏在废弃矿井的生成简直无处不在,而且数量极其庞大。 为什么这会是个问题呢?你可能会想:“废弃矿井文件明明只有 500kb 大小啊”(举个例子)。原因在于,Minecraft 不仅对它们进行了全局存储,而且还在全局存储了两次。没错,就是两次。一次是供游戏直接使用的格式,另一次则是为了提升写入速度而保留的未压缩 NBT 格式。这就非常要命了,因为这些源文件经过了极高倍率的压缩。所以,那个区区 500 KB 的文件,展开后可能会吃掉 1.5-3GB 的内存!压缩率就是有这么夸张。“data”文件夹里的所有文件都是这种超高压缩率。所以,如果你发现内存占用有异常飙升的情况,这就是罪魁祸首之一,因为它们全都被全局塞进了内存里。(不过,Mod 本身通常只会存一份,不像原版结构那样存两份)。 那么该怎么解决呢? 对于原版结构,直接删掉相关文件即可,但务必确保在服务器关闭的状态下操作。这样做的唯一副作用是会导致 "locate" 指令失效,因为该指令需要调用这些文件。其实你只需要删掉那些体积异常大的文件,像大小不到 100 KB(低于三位数 KB)的文件保留着也没事。如果你担心删出问题,可以先重命名文件来测试一下。 至于原版结构,请务必留意 mineshafts 文件。另外,对于添加了结构的 mod 来说,视具体代码实现而定,它们可能也会出现同样的问题。比如 Reconcurrent complex 实际上会把所有的结构都存储在单个文件里,这个文件通常很快就会变得非常臃肿。 最后一点: 你需要时刻留意预生成的状况 . 没错,你不能点个开始就干等它跑完,得时刻盯着进度。比如只要人还醒着(没去睡觉挂机),就务必随时开着聊天栏留意提示。 因为一旦出问题,你必须第一时间知情。在 1.12 版本中,chunkpregen 带有熔断机制,必要时会直接强退游戏来保全存档文件。而在 1.14 及以上版本中,目前基本没有这种机制了,因为 1.12 里容易出现的问题现在已经高度分散,不会再直接搞崩主游戏线程了。 但总的来说,如果你不盯着预生成进度,结果因为你没留意的某些问题导致存档损坏,那大概率就只能删档重来了。 这份列表列出了大规模生成时最常遇到的问题,也是我一直以来反复警告过的。(区块半径 +300,即世界直径 1 万格) 希望这能帮你做好万全准备,并将这些情况都考虑在内。   视频展示: 如果你想投稿展示视频,视频将会插入到这里: Bears Den 的展示视频 (版本 3.0.3): Bears Den 的展示视频预览 (版本 3.0.3): Bears Den 制作 (版本 2.0): Goshen 制作的展示视频 (版本 1…

在鱼乐云资源中心浏览该资源,登录后可一键安装到你的游戏服务器。

返回资源中心