暂无日志..
暂无管理组..
暂无编辑组..
StellarCore - 星核
简介
星核是一个致力于优化 1.12.2 版本模组的模组。
本模组的主要定位是服务端性能优化,同时也引入了少量针对客户端的优化。
本模组旨在提供或移植大部分其他优化模组没有的功能,而不是去整合已有的功能来替代其他模组。
如果服务端安装了星核,那么客户端也必须要安装(1.11.1 版本起不限客户端版本)。
你必须安装 MixinBooter 8.0+ 和 ConfigAnytime 2.0+ 才能够运行它。
功能
本模组的调整部分可以分为三个大类:
性能(主要)
修复
功能
由于篇幅有限,下方提到的功能可能无法完全涵盖,你可以从配置文件中获取所有的可用功能。
性能
本模组为以下模组提供了性能优化:
原版
禁用 glGetError(使用后果自负)。
延迟区块更新(提升性能并优化 Low 帧,但是破坏方块等操作的更新会有微小延迟)。
HUD 缓存(将 HUD 渲染限制为 20FPS,可在配置文件调整)(*不兼容手机版和旧设备,不兼容 Optifine 快速渲染)。
客户端与服务端的其他细节内容的多项优化。
客户端加载时间优化
并行方块模型加载 / 并行模型烘焙
使用多线程技术加快模型读取与解析的速度。
在存在大量模型的整合包中,此功能可以大幅优化游戏加载速度(约 5s ~ 40s,视机器配置可能存在偏差)。
针对部分模型较多的模组与整合包有显著效果(如通用机械等)。
与资源包状态缓存一同使用时可以进一步提高速度。
此选项一定程度上依赖 CPU 性能 与 硬盘性能。
注意:由于星核与 VintageFix 的动态模型加载功能都修改了相同部分的代码,因此两者功能只能启用其中一个。
贴图拼接器缓存(Stitcher Cache)
通过在磁盘缓存拼接结果来改进游戏的加载时间。
针对贴图数量较多的模组与整合包有显著效果。
注意:由于星核与 VintageFix 的动态模型加载功能都修改了相同部分的代码,因此两者功能只能启用其中一个。
并行贴图加载
使用多线程技术加快模型读取与解析的速度。
针对贴图数量较多的模组与整合包有显著效果。
此选项一定程度上依赖 CPU 性能 与 硬盘性能。
注意:由于星核与 VintageFix 的动态模型加载功能都修改了相同部分的代码,因此两者功能只能启用其中一个。
资源包状态缓存
通过缓存资源文件的状态来改进游戏的加载时间。
安装 Optifine 时还可以改进 Optifine 对加载时间的影响。
优化启动时的过高 CPU 占用(可能影响启动时间)。
客户端内存优化
以轻微的加载时间为代价,星核可以优化原版各类数据的内存使用。
在作者的整合包中,可以进一步降低约 700M 的内存使用(3.5G -> 2.8G)。
涉及到的内容,在配置文件中可以调节:
BakedQuad - vertexData
UnpackedBakedQuad - vertexData
UnpackedBakedQuadData - unpackedData
SimpleBakedModel
ModelBlockString(已知与 动态的树 不兼容)
此选项一定程度上依赖 CPU 性能。
内存泄露修复
这是一项客户端通用修复,涉及到多个模组。当玩家在服务器环境下频繁切换世界会导致某些数据泄露从而影响内存使用。
涉及的模组:
星球配置文件(planetDefs.xml)如果读取失败不再崩溃游戏,而是重新生成一份。
优化 共鸣 / 天体 水晶的服务端环境带宽使用。
降低本模组提供的机器的服务端带宽占用。
使用多线程技术改进配方的加载速度。
火花性能优化(延迟工作)。
自动凿子性能优化(缓存 + 延迟工作)。
使用多线程技术改进模型烘焙阶段的时间使用,从而降低游戏加载时间并提高资源包重载速度。
移除了代码中硬编码的 Thread.sleep(20),从而大幅改进此模组引起的加载时间异常。
加载时间异常:加载速度会随着模组数量的增多而提高,每个模组会导致至少 100ms 的无用延迟提升。
使用多线程技术改进了一些事件的处理速度。
物品 / 流体 / 矿辞匹配速度优化(缓存)。
种植站性能优化(缓存技术,效果极其显著)。
更快的物品传输方法(移除部分无用功能)。
更快的方块实体运行(移除部分无用功能)。
Ender IO Conduits(末影接口:导管)
更快的方块实体更新(移除部分无用功能)。
使用多线程技术改进能量导管的计算(依赖 CPU 性能)。
使用多线程技术改进计算(依赖 CPU 性能)。
更快的能量网络计算(数据结构优化)。
使用多线程技术重写并优化能量网络计算速度(依赖 CPU 性能)。
帧缓冲优化渲染,需要显卡兼容(效果极其显著)(*不兼容手机版和旧设备,不兼容 Optifine 快速渲染)。
更快的方块实体更新(数据结构优化)。
更快的能量网络传输(数据结构优化)。
将网络操作移动至新的线程。
将网络操作移动至新的线程。
降低本模组提供的祭坛的服务端带宽占用。
启动完毕后释放贴图缓存,优化内存使用。
优化浇筑台配方搜索(效果极其显著)。
优化浇筑盆配方搜索(效果极其显著)。
优化冶炼炉融化配方搜索(效果极其显著)。
优化冶炼炉合金配方搜索(特殊数据结构)。
优化在大量任务下的物品检查性能。
优化某些检查的性能。
效果
在启用了所有性能优化的情况下,至多可为服务端接近 40% 的 TPS 提升,为客户端提供 20% 的 FPS 提升、30% 的启动速度加成。
修复
本模组为以下模组提供了 BUG 修复:
修复网络发包刷取任意物品的问题。
方块实体 GUI(实验性,未经彻底测试)
为所有模组的方块实体的 GUI 附加一个监听器,当方块所在的区块被卸载或方块被破坏时,自动关闭玩家的 GUI。
可能会修复某些模组的问题,也有可能会导致某些模组的方块无法使用。
修复有概率使客户端崩溃的问题(仅 Cleanroom Loader)。
修复有时候玩家进入世界时会被强制踢出世界的问题(单人/多人)。
修复星芒宝典的星图存储 GUI 的物品交互会出现刷星图的问题。
修复相框有概率会导致客户端卡死的问题。
修复洗衣机会无视物品的耐久度修复物品的问题。
修复聚合注入器的区块卸载有概率导致聚合核心完成合成时合成材料不消耗的问题。
EnderIO Conduits(末影接口:导管)
修复物品导管在特殊情况下可以刷物品的问题。
修复 TheOneProbe 中的翻译文本显示异常的问题。
修复有时网络中会出现重复用户的问题。
修复 红石冷凝模块 / 青金石冷凝模块 的修复配方会刷出多个物品的问题。
修复机器的自动弹出 / 抽入升级所判断的朝向不一致的问题(例如:面板型 ME 接口不识别)。
修复当服务端安装时玩家进入服务器会出现报错的问题。
修复某些多方块结构被范围破坏的工具(例如匠魂锤)破坏会导致结构容器中的物品被复制的问题。
修复油桶会复制流体的问题(实验性,未经彻底测试)。
修复玩家死亡时 电力生命维护仪/终极维生指环 等维生物品依然会生效的问题。
修复移除无效 GUI 时会导致游戏崩溃的问题。
修复某些枪械的配方无法合成的问题(例:死神)。
修复与星辉魔法安装时在服务端共鸣时会崩溃的问题。
修复某些实体创建时在服务端会崩溃的问题。
修复渲染玩家实体时头部会乱动的问题。
修复极速层流流体管道会刷出流体的问题。
修复某些容器的 GUI 的物品交互问题(例:背包刷物品等)。
修复梦魇工作台的成品刷取物品的问题。
修复因不同系统的编码导致 JSON 文件无法正常读取的问题。
功能
本模组为以下模组提供了额外的功能,大部分功能默认为禁用状态:
消息压缩(来自 UniversalTweaks)
1.12.2 版本移植
同时新增超大 NBT 检查功能,当模组检测到过大 NBT 时自动在日志提示用户。
允许关闭饰品的物品装饰配方。
Ender IO Conduits(末影接口:导管)
阻止末影流体接口导管在某些特殊情况下会频繁打印无用警告。
使网络生成的 UID 为随机数而不是自增 ID。
使所有电力物品 / 工具 / 盔甲不再有耐久度设定,并调整了电力耐久条渲染,有助于一些自动化。
ME 指令缓存器始终会遵守设定的订单量发配合成,而不是仅合成至阈值。
例如设定最大 1000 物品,最大订单量 100,目前存在 990 物品,缓存器会发配 100 个物品的订单而不是 10 个。
允许关闭标题行的自动换行功能。
允许在连接通量网络时传输超过 2.1G(2147483647)的能量。
允许彻底关闭辐射系统。
允许使所有子弹具有弹射物属性(启用后可以使其获得某些模组的弹射物伤害加成,例如星辉)
允许移除节能附魔(JEI 污染器)。
允许禁用连锁挖掘星能力。
修复换行,优化性能。
原版
除模组兼容外,还为原版 Minecraft 提供了一系列的功能和性能优化:
接入 Hitokoto API 的自定义标题栏(支持 Cleanroom Loader,标题优先级最高)。
强制实体更新
通常情况下,实体附近没有玩家时会使实体停止更新,但是弹射物等实体可能会因此导致大量堆积。
此功能可以让指定的实体类在附近没有玩家时也会强制更新,配置文件中已经预置了一部分有问题的实体。
兼容性
星核的设计初衷是最大程度兼容其他模组,并在此前提下来优化各种性能和添加各种功能。
所有的非实验性功能都经过测试,因此在运行过程不应出现任何问题。
未来计划
多线程网络系统(已废弃,兼容性问题)。
为更多模组提供性能优化。