更新助手系列项目从16年立项,到19年正式回坑维护至今,不知不觉也有小三个年头了。首先要感谢大家的支持,这个项目才能走到现在。

开过Minecraft服务器的朋友们都知道,给玩家的客户端做文件更新一直是个很麻烦的事情。插件服好一点,尤其是模组服,可能三天两头就要升级新版模组。或者要更新一些贴图或者资源包等文件。每次只要更新一点点文件就要重新在群里发布新的客户端zip包,不然旧客户端就无法进入游戏,所以给客户端文件做热更新是个很头疼的问题。(而且客户端发的太频繁还会被玩家骂)

当时也是想着自己以后开服可能会用上,就抱着练手的目的做出了第一个版本(ClientUpdater发布在服务器插件版),当时国内还没有类似的软件/插件,唯一类似的就是国外的ServerSync模组。

为了打破国外对我国Minecraft客户端文件更新上的长期技术垄断(狗头)我毅然挺身而出,决心要做出一款中国人的更新软件,不仅要符合国内各大服务器的使用习惯,还要免费开放给大家使用,同时还要开放源代码,供各位大神巨佬学习研究。(一本正经的胡说八道)

最近软件发布了全新的独立衍生版本McPatch系列,已经解决了前代版本所有使用过程中的痛点和大坑,趁着这个机会和大家介绍一下吧。MCBBS链接:https://www.mcbbs.net/thread-711833-1-2.html

这是软件的图片展示,分别是运行时截图,HMCL一键启动效果图,PCL一键启动效果图

QQ图片20221121102330

hmcl

pcl

虽然软件界面看着比较简单,只有文字+进度条的形式,但代码底层是非常复杂的,有非常多的校验机制,一个文件从管理端打包到客户端解压落盘,会经历七次校验过程,能在很大程度上防止文件二进制数据在任何阶段的意外损坏。

同时软件比较大的亮点是无论管理端,服务端,还是客户端都是支持JVM全平台的。也就是说你既可以在纯命令行的Linux服务器上运行管理端,也可以在小白友好的图形界面Windows上运行,并且能获得一致体验,在所有平台上的操作方式都是一模一样的,没有任何迁移成本。

客户端因为是kotlin/java写的,天生支持和任意三方启动器的联动,或者说一键启动。可以在游戏启动时自动弹出更新窗口,更新完成后又会自动启动游戏,全程无需玩家主动点击任何按钮,都是全自动完成的。

不仅如此,客户端甚至支持Android平台Java版,已实测在澪和HMCLPE上正常运行。许多玩家虽然没有电脑,但通过澪或者HMCLPE,可以把Java版带到手机上随处游玩,还能安装PC上的所有模组,和PC服的朋友一起联机等等,比基岩版可好了太多。但Android平台的文件更新比PC平台更麻烦,更加需要一个文件更新的方案。此时McPatch就成了非常合适的选择(虽然原版更新助手也支持Android平台,但是性能远远没有McPatch好,通常会拖慢启动速度30多秒,很不划算,而McPatch则可以在0点几秒完成)

McPatch同时还解决了原版更新助手的几个大坑(毕竟连作为开发者的我也会经常掉坑里)

一是去掉了最反人类的设计:更新规则。这个东西小白又不会写,大佬又经常出错,索性在McPatch系列里直接去掉了,每次你对服务端的目录进行修改之后,都会由程序自动计算新旧文件差异,再也不用手写更新规则去指定更新范围了。

二是现在采用了更新包的方式存放更新的内容,每次打好新版本,只需要把3个文件(.txt,.json,.bin)手动上传到对象存储上就好了,再也不需要配置复杂难懂的静态上传工具了(虽然这个工具很强大,但是好像强大过头了,导致大家都不会用了),现在每次只需要手动拖一下就好了,整个过程不超过10秒钟,很是方便。

三是再也不会误删玩家自己添加的模组或者资源包文件了,在原版更新助手里,经常会误删玩家自己添加的模组文件,而要避免这个问题又要编写复杂且极易出错的更新规则。在新版McPatch里这个问题也被解决了,服务器端更新完全不会对玩家现有的文件造成任何更改,也不会影响一些玩家自定义的配置文件,比如按键绑定和视频设置等。

四是每次文件更新会计算文件差异,比如一个100000000GB大小(不用数了8个零)的模组文件,如果你只更改了其中的1字节的内容,那么更新包就只会记录这一个字节的更改,可以为你剩下99999999.999GB的流量。这对大文件来说是非常节省流量和带宽的

当初只是抱着玩玩的态度做的这个软件,没想到一做就是三年过去了,也获得了不少社区玩家的推荐,这是一个朋友在MCMOD的ServerSync模组下方截图发给我的,对没错,那个“国产的更新系统”就是我正在做的项目。我看到了也是很开心啊,自己一个半吊子技术做出来的东西也能帮助到这个社区了。当我初入Minecraft,还是一个白嫖小白的时候,我也是踩着社区大佬的铺好的路一步步往前走的,现在轮到我来做这个铺路人了。

serversync-mcmod

GitHub这边,文档仓库已经连续活跃了近2年了,可以看到近一年里来,右边的仓库活跃曲线一直没有掉下来过,我一直在不断更新新内容和修补已有的问题和错误

docs-activity

最开始国内的更新软件都是一片空白,我是第一批做更新的,同期也有非常多大佬制作的文件更新软件,光是我了解的就有5款,但大部分最后都渐渐停止了维护,帖子的最后一次编辑都停留在了几年前。我觉得更新助手这个项目非常幸运的,直到今天仍然有不少服主愿意选择更新助手而不是国外的更新软件。其中一部分是我的不断坚持,另一部分就是大家的支持和鼓励,我才有了不断维护下去的动力。

谢谢各位支持这个项目的朋友!虽然发到博客里不会有人看到,但我还是要说出来,这些话就当是对自己说的吧。

如果你也在做商业服务器或者公益服,别忘了过来MCBSS看看奥:https://www.mcbbs.net/thread-711833-1-2.html