本帖最后由 cutemiku 于 2022-2-21 10:56 编辑
然后启动器再去找CurseForge的对应下载链接,并且现场下载、整合、启动。
零:前言
主要是在优化自己服务器的客户端时,发现在BBS暂时没看见多少类似的内容,于是来这里分享一下。
做的不好,还请多多指教!
此方法理论适用于大部分客户端,实测整合包中使用PCL/HMCL启动器的话是可以完美运行的。
一、为什么要压缩客户端体积?
让我们设想一下,一个玩家心急着想玩服务器,结果却被动辄500M的客户端体积劝退……
作为腐竹,怎么能眼睁睁看着玩家流失呢?
换个角度来看,玩家决定下载客户端开玩,但是由于各类网盘速度的限制,需要等上很久……
那么玩家体验想必也受到了影响吧。
而对客户端的体积进行一些压缩,就可以至少在感知上减小此类影响,提升一点点玩家体验。
二、初步进行压缩(一般情况下能无损优化150M以上)!
为了分析为什么客户端那么大,我们可以借用一款工具:SpaceSniffer
他大概长这样。
在下方Path处选择客户端所在文件夹即可开始分析了。
这里是用自己服务器上周目的客户端来举例。
可以看到,这个客户端里面最占空间的是那堆MODS。
这个很明显是服务器专用客户端的重要部分,不能乱动。
但是被标记出来的:
Assets、libraries、logs、screenshots
就是我们今天动手的重点。
先说logs/screenshots。
这两个分别是启动日志/截屏文件,很明显没必要发送。删就完了。
然后我们看向剩下两个:Assets、libraries
它们分别是原版Minecraft的资源文件以及依赖库文件。
没有它们,游戏将无法运行。
但是我们却可以直接从这里进行优化,优化也是简单粗暴的一删了之。
为什么?
因为现在的主流启动器(PCL/HMCL等)会在加载游戏时先检测并补齐缺失的资源。
所以这些与原版有关的资源文件删除之后在玩家运行时会被自动下载补齐。
所以一般不影响运行。
不下载那个分析软件,直接删除Assets、libraries 也没关系。
那么经过处理之后,我们的客户端就从456M被瘦身到了224M
相当于直接打了个五折。
一般我们的优化做到这里就可以了,至少相对于原来的客户端已经少了很多冗余的资源了。
三、利用SkycraftUpdater进一步压缩客户端!
其实这句话是存在一定歧义的。
因为它并不能压缩客户端。只能让客户端在第一次下载时小一点。
然后在第一次启动加载完原版资源文件之后启动一个更新器,
从服务端拉取MOD到客户端的MODS文件夹。
本人当前服务器使用此方法做了一个mini版客户端,由于服务器带宽原因,
玩家反馈初次启动加载需5分钟左右。
并且同时下载的人多还会更加慢一点。
关于此插件详情请参考:它的教程贴
以下是大概思路,由于较复杂,暂时不做演示,请感兴趣自行研究或私信探讨。
总之,通过此类优化,我成功将一个与上方MOD数量类似的客户端压缩到了55M(初次下载)。
四、将客户端文件压缩到M级别[超进阶思路]!
当楼主在自己服务器群里炫耀成果时,有玩家朋友说:
XXXX服务器的客户端文件只有几M!
后来经过探讨与研究,楼主得知了他的原理。
大概是通过专业的整合包格式告诉启动器:
此处应有客户端。
客户端的版本是……
里面安装有……MOD
然后启动器再去找CurseForge的对应下载链接,并且现场下载、整合、启动。
过于高级,以至于我现在还没掌握。

五、总结
通过这篇文章,希望能让大家的客户端分发更为便捷快速!
如果有帮助到的话,请考虑给本文评分吧!
那不是什么都市传说,现在的整合包都是这种格式的https://www.mcbbs.net/thread-485881-1-1.html
无敌三脚猫 发表于 2022-2-15 16:47
那不是什么都市传说,现在的整合包都是这种格式的https://www.mcbbs.net/thread-485881-1-1.html ...
抱歉大佬,个人认知不足,请多多包涵
错误已修改
谢谢了.......
标题不符版规,请尽快修改
贺兰兰 发表于 2022-2-20 09:00
标题不符版规,请尽快修改
收到,尽快上线用电脑改
感谢大佬分享
不错不错感谢楼主分享!
感谢版主的分享,太有用了
感谢楼主分享 三克油
感谢版主的分享经验