本篇教程由作者设定未经允许禁止转载。

你是否还在为自己的电脑玩不上贪婪而羡慕?

你是否还在为启动贪婪要花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+Java21运行贪婪整合包!-第1张图片官方给的解决方案

总体测试完成,除了区块加载速度较慢,其他处于可接受范围内



正文开始

更换Cleanroom


首先用正常方式安装一次整合包,从GitHub页面下载Cleanroom(release或action版均可,这里使用0.2.2-alpha+build.26.run.669版本)

在启动器自动安装界面,点击optifine右侧的X卸载,否则会提示重复安装Forge。

稍后会使用mod安装方式补回Optifine

同时记得在 视频设置>性能 里把需要的功能打开

然后将Cleanroom安装器拖入页面,或点击上方手动安装选择

极致优化!使用Cleanroom+Java21运行贪婪整合包!-第2张图片optifine的红圈里应该有个X

然后在高级设置里勾选不添加默认JVM参数、不检查游戏完整性、不检查JVM兼容性、不尝试自动替换本地库

极致优化!使用Cleanroom+Java21运行贪婪整合包!-第3张图片打开高级设置

极致优化!使用Cleanroom+Java21运行贪婪整合包!-第4张图片打开四个选项

变更模组


需要变更的mod有:(标注箭头为替换)

删除添加更新
爆头击杀 (Iblis Headshots) -------->
[iht]爆头击杀:一匠到底 (Iblis Headshots tic)
Dungeons2! 2.0.0+
VanillaFixLoliASM 4.13/5.20ShoulderSurfingReloaded 2.9.6
PhosphorStellarCore
DupeFixFugue
UnifineScalar 2.11.1
Performantoptfine 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.cfgtextures{ enable=false }
unpackBakedQuads=true(会增加内存占用,内存吃紧请不要开启)
Fugue.cfg请在getCodeSource() Patching List中删除com.someguysoftware开头的一行,以解决Dungeons2!报错问题


高级UT


使用UT可以替代大量mod,加快启动速度(配置文件难以修改,建议进阶玩家使用)(标注箭头为等效替换)

删除的modUT配置文件修改

"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传)

如果有其他建议也可提出