本篇教程由作者设定未经允许禁止转载。
你是否还在为自己的电脑玩不上贪婪而羡慕?
你是否还在为启动贪婪要花20分钟而抓狂?
你是否还在为突如其来的Waiting for server心态大崩?
本教程将教你使用Cleanroom+Java21,获得飞快的速度!
(尚未完成,完成度95%,剩余JVM参数待讨论)
先放出本人配置及优化效果:
电脑配置:CPU:i7-6500U @ 2.5GHz(2核4线程,CPU-Z跑分单核231.8,多核721.6)
RAM:2*8GB DDR3 1600MHz
显卡:NVIDIA GeForce930M(With 4GB DDR3 显存)
优化效果:优化前:启动 27min,游戏内帧数光影约10帧(玩不了一点),无光影 前期50-60 后期30-40
优化后:启动 15min,游戏内帧数光影没试,无光影 前期80-90 还没玩到后期
以下部分是个人尝试过程,可能对其他愿意迁移整合包的人有所帮助,若无兴趣可跳过,直接看正文部分
Cleanroom简介
由 CleanroomMC 团队基于 Minecraft Forge 1.12.2 制作的模组加载器分支。
Cleanroom 致力于继续维护 1.12.2 的 Forge 模组社区,允许在 Java 21 + LWJGL3 下运行游戏。
移植准备
1.请提前备份存档,移植过程请新建文件夹进行
2.在新建文件夹中用HMCL启动器正常安装一份贪婪整合包
3.请保证网络通畅,尤其是与Github的连接,否则请自行解决
个人尝试过程
与隔壁mod更新作者讨论后,我先在Forge环境下加入了一些优化mod:
Stellarcore(注意!在Cleanroom环境下似乎不需要去配置文件修改Endercore相关,如果炸了再去改)
LoliASM(注意!Cleanroom不兼容VanillaFix,需要的请使用5.0以上版本LoliASM并使用ae非官方版,记得改配置文件;我不需要于是使用4.13+ae原版)
但不同的是,需要先确定Cleanroom与各模组兼容性
我翻遍Cleanroom的评论区,总结所有不兼容模组于一个文档中,并进行排查
幸运的是,绝大多数模组还真是99%兼容Cleanroom
越肩视角有reloaded,bdlib有scalar,其他mod有Fugue修
不兼容的只有VanillaFix
于是我采取按mod名称逐渐尝试,缺前置则提前加入的方式测试兼容性:
A:补全前置后正常启动
B:补全前置后,bountiful赏金mod报错,经过report读取,发现是赏金定义的物品在后面的mod中,故暂时禁用
C:补全前置后,binnie's mod报错,读report没读出来,故暂时禁用现在发现和赏金是一样的问题,因为加了CrT
D:补全前置后,dungeons2!报错,还没解决(报了issue),请自行尝试可能是我电脑的问题
试到这里大胆了一些
E-H:补全前置后正常启动
I-T:补全前置后,Lootbag报错,和赏金一样暂时禁用;LogisticPipe报错,这玩意薛定谔,暂时禁用;热力报错,读report,发现是Dupe修刷东西修坏了,删除Dupe自己自觉别作弊
U-Z:补全前置后,热力报错,读report,发现是Unifine修渲染错误修坏了,删除Unifine(对于可能出现的渲染错误未测试)
恢复暂时禁用的mod:binnie's mod、lootbag、bountiful正常,logisticspipes还是有概率会蹦
截止2024.8.18 20:00,dungeons2!的问题已被解决,请看下方调整配置文件
总体测试完成,除了区块加载速度较慢,其他处于可接受范围内
正文开始
更换Cleanroom
首先用正常方式安装一次整合包,从GitHub页面下载Cleanroom(release或action版均可,这里使用0.2.2-alpha+build.26.run.669版本)
在启动器自动安装界面,点击optifine右侧的X卸载,否则会提示重复安装Forge。
稍后会使用mod安装方式补回Optifine
同时记得在 视频设置>性能 里把需要的功能打开
然后将Cleanroom安装器拖入页面,或点击上方手动安装选择
然后在高级设置里勾选不添加默认JVM参数、不检查游戏完整性、不检查JVM兼容性、不尝试自动替换本地库
变更模组
需要变更的mod有:(标注箭头为替换)
删除 | 添加 | 更新 |
爆头击杀 (Iblis Headshots) --------> | [iht]爆头击杀:一匠到底 (Iblis Headshots tic) | Dungeons2! 2.0.0+ |
VanillaFix | LoliASM 4.13/5.20 | ShoulderSurfingReloaded 2.9.6 |
Phosphor | StellarCore | |
DupeFix | Fugue | |
Unifine | Scalar 2.11.1 | |
Performant | optfine HD_U_G5 | |
Better Foliage | ||
MixinBootstrap | ||
兼容Mixin0.7-0.8 (Mixin 0.7-0.8 Compatibility) | ||
LogisticsPipes 0.10.4.3(保险起见,如果不是必须要用建议禁用) |
配置文件修改
LoliASM.cfg(如果使用5.0及以上) | onDemandAnimatedTextures=false |
foamfix.cfg | textures{ enable=false } |
unpackBakedQuads=true(会增加内存占用,内存吃紧请不要开启) | |
Fugue.cfg | 请在getCodeSource() Patching List中删除com.someguysoftware开头的一行,以解决Dungeons2!报错问题 |
高级UT
使用UT可以替代大量mod,加快启动速度(配置文件难以修改,建议进阶玩家使用)(标注箭头为等效替换)
删除的mod | UT配置文件修改 |
"item stages"{B:"Ingredient Matching"=false}(位于Universal Tweaks - Mod Integration.cfg) | |
"Farmland Trample"=NEVER(防止农田踩踏)(以下均位于Universal Tweaks - Tweaks.cfg) | |
"Toggle Cheats Button"=false(关闭各mod添加的切换游戏模式按钮,切不了要它何用) | |
"Disable Narrator"=true(禁用讲述人) | |
"Fast World Loading"=true(加快区块加载速度,可能减慢生成速度) | |
"Mute Advancement Errors"=true(关闭错误显示,显示了也看不懂) | |
"Mute Texture Map Errors"=true | |
AIImprovements-1.12-0.0.1b3.jar --------> | "AI Removal"=true |
alwayseat-1.1.jar --------> | "Always Eat"=true |
AttributeFix-Forge-1.12.2-1.0.12.jar | |
BetterBurning-1.12.2-0.9.2.jar | |
BetterPlacement-1.0.0-1.jar --------> | "[1] Better Placement Toggle"=true |
biggerpacketsplz-since1.8-1.2.jar | |
Born In A Barn V1.8-1.12-1.1.jar | |
chunkgenlimiter-1.1.jar --------> | "[1] Chunk Gen Limit Toggle"=true |
deuf-1.1-1.12.2.jar | |
diethopper-1.1.jar | |
FastFurnace-1.12.2-1.3.1.jar | |
FastLeafDecay-v14.jar | |
FastWorkbench-1.12.2-1.7.4.jar | |
fencejumper-1.12-1.0.5.jar | |
ikwid-1.0.2.jar | |
Morpheus-1.12.2-3.5.106.jar . | |
nanfix-final-absorbtion.jar | |
OldJavaWarning-1.12.2-1.1.11.jar | |
savemystronghold-1.12.2-1.0.0.jar | |
ServerPropertiesLAN-2.65.jar | |
StepupFix-1.12.2-1.0.0.4.b17.jar | |
stg-1.12.2-1.2.3.jar | |
Surge-1.12.2-2.0.79.jar | |
Toast Control-1.12.2-1.8.1.jar | |
unloader-1.2.0.jar |
其他可选小调整
Modpack Configuration Checker这个mod除了卡你内存下限,进入世界给点提示外没啥用,且在加载时占用了不少时间,不需要可尝试删除(未测试)
深渊国度在游戏加载最后阶段占用了大量时间(complete阶段至少1分钟),或许可以找到一个优化mod?
游戏外调整
Java:原版Java实在......建议使用Azul Zulu JDK21
游戏外关闭光影:打开./minecraft/versions/GreedyCraft,重命名或删除shaderpacks文件夹
JVM虚拟机参数:使用新星工程:世界整合包推荐的参数:-XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+ExplicitGCInvokesConcurrent -XX:+UseNUMA -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseVectorCmov -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:ThreadPriorityPolicy=1 -XX:AllocatePrefetchStyle=3 -Dfml.queryResult=confirm -XX:CompileThreshold=100000
但在个人尝试过程中,使用ZGC会导致启动时间大幅增加,故删除最前面两个参数,请自行测试ZGC性能
来自评论区 肉丸工艺整合包:-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -XX:MaxVectorSize=32 -XX:+UseCompressedOops -XX:ThreadPriorityPolicy=1 -XX:AllocatePrefetchStyle=3 -XX:+UseNUMA -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=300M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseFPUForSpilling -XX:+UseStringDeduplication -XX:+UseG1GC -XX:MaxGCPauseMillis=37 -XX:G1HeapRegionSize=32M -XX:G1NewSizePercent=23 -XX:G1MaxNewSizePercent=40 -XX:G1ReservePercent=20 -XX:SurvivorRatio=16 -XX:G1MixedGCCountTarget=3 -XX:G1MixedGCLiveThresholdPercent=90 -XX:InitiatingHeapOccupancyPercent=10 -XX:MaxTenuringThreshold=2 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5.0 -XX:G1ConcRSHotCardLimit=16 -XX:G1ConcRefinementServiceIntervalMillis=150 -XX:GCTimeRatio=99 -XX:+ExplicitGCInvokesConcurrent
OpenJDK 64-Bit Server VM warning: Ignoring option G1ConcRSHotCardLimit; support was removed in 21.0
OpenJDK 64-Bit Server VM warning: Ignoring option G1ConcRefinementServiceIntervalMillis; support was removed in 20.0
用Zulu21的话会有这两行警告
使用该参数启动时间优化到约14min
若有更好的参数,可以在评论区交流
已知问题
1.若使用JVM参数,且电脑配置实在较低,可能会导致启动时电脑严重卡顿约两分钟(从游戏窗口弹出开始),请自行测试,酌情选用
2.TPS会在区块大量加载(如快速跑图)时下跌,在一个区域内保持约10秒后会回升至20
3.游戏内信息显示XML版(可能是某个附属)在Optifine下会出现严重错误,导致闪屏,正在寻找解决方案(低效方案是按住tab或开F3)或替代mod
已找到下位替代mod——minihud,我会把效果截图放到评论区,大家看一下,如果可行将会修改教程,替换Ingameinfo
4.若使用整合包新星工程:世界推荐的JVM参数,内存占用会从3400MB(10G的34%)提升至8400MB(94%)然后在GC回34%,未测试低内存分配情况下是否能正常进行游戏
若使用整合包肉丸工艺推荐的JVM参数,内存占用会从3400MB(10G的34%)提升至5700MB(56%)然后在GC回34%这才正常嘛
5.实测使用loliASM5.6并不会导致AE2渲染错误,但极其卡顿,请自行尝试
Q&A
1.Q:新开个档试了一下发现玩家受伤会直接把游戏卡崩掉,报错如下:Vanilla 1.12.2 Crash Report [#JdfI8lJ] - mclo.gs,可否看看是什么问题(大概好像是跟UT有关系?)
A:已定位到问题,请尝试将Universal Tweaks - Mod Integration.cfg文件第274行 B:"Last Stand Trigger Fix"=true改为false,改动后对openblocks bug修复影响后果未知
尾声
教程基本结束,如果抄作业出现问题,请先仔细检查所有改动是否均已完成,若确定无误,可以在评论区留言,附上崩溃报告和latest.log(用mclo.gs传)
如果有其他建议也可提出