欢迎光临散文网 会员登陆 & 注册

我做mod的几个倾向

2022-02-26 13:13 作者:道家深湖  | 我要投稿

1-不用前置

  • 没法保证前置mod没有bug。

  • 没法保证前置mod出了bug后能及时修补。

  • 没法保证前置mod不会突然弃坑或删库跑路。

  • 同时管理两个mod的版本号非常麻烦,对于玩家来说更是如此。下载了一个mod,发现有前置;下载了前置,发现前置的版本号不对或者需要前置的前置;为了修复一个bug更新了mod,结果因此又更新了前置……麻烦透顶。

当然,我也承认,适度地使用前置可以提升mod之间的兼容性,以及大幅降低开发成本。前者最典型的例子是饰品栏Baubles,大家可以共用同一套饰品栏放置装备;后者最典型的是Geckolib,弥补了mc做实体模型动画的极大不便。

2-维持像素风

我对于高清材质包持否定态度。这倒不是因为它修改了MC本身的风格,而是因为使用后,那些没有收入材质包的mod贴图依旧像素风,会造成割裂。但是,一个材质包终究不能覆盖世上所有的mod,就算他覆盖了cf上的六万多个mod,他也覆盖不了即将发布的新mod。

所以,我只赞同在能统一所有游戏贴图的情况下使用高清材质包。

我对于非高清的材质包不怎么反对。

我对于光影持轻微否定态度。现在我都记得之前我把光影和Neat装在一起时,血条界面变得一塌糊涂的样子。

另一方面,我反对在mod里引入obj模型。MC原版就是像素风。如果你在mc那么多方块骷髅和僵尸的基础上,搬进来一个原神那样的高精度模型,那实在是青黄不接。要引入新的模型,就也搞得方块化一些,像是末影龙那样。我不反对以obj格式引入与原版画风一致的模型。

3-集中在1.12.2-2768

这有兼容性和开发成本两方面的考虑。

Minecraft版本割据。

  • 基岩版和java版阴阳两隔。

  • 同为Java版,fabric和forge阴阳两隔。

  • 同为forge,1.12和1.18阴阳两隔。

  • 同为1.12,2768和28XX阴阳两隔——网易因此无法更新虚无三。所以,也可以说是网易和外面有一定程度的阴阳两隔。

唉,大家就不能团结到一个版本吗?显然,现在已经晚了。就单看java版,1.7.10,1.12.2,1.16.5,1.18,主流版本林立,统一到哪个都不太可能了。就我个人,以及我带的关门弟子来说,我会统一集中在1.12.2-2768,以在一定程度上缓解这个问题。至少,我们相互之间的mod能团聚在同一个整合包,我也就只能做到这个地步了。

我使用2768,和网易的1.12forge版本保持一致,这样可确保哪天我需要发布到网易的时候,不需要重新构建一套工作环境。

我会在Teacon里使用Teacon所要求的的版本,毕竟国内mc-java-mod实力还不够强,人也不够多,像这种能振兴我国mod事业的事我还是会参加的。因此,我发布了一个1.16.5的魔城传说mod参赛,这是我极为罕见的非1.12mod。

另外,最近mc和forge的更新很迅速。说实话,forge版本的更新,往往意味着mod的重写。尤其是从1.12到1.16,几乎50%的代码都要重写,这50%散布在各处,尤其以类名的变化最为突出。我一年能抽出多少时间去写mod,又能从中再抽出多少,去学习如何使用新版本的forge,去移植老mod?明明游戏内容没有变多,却花了巨量时间,这相当不合算。

4-不使用mixin、asm、at

mixin和asm很容易造成冲突。forge的存在,很大意义上就是为了让大家的mod能共存,而不是像早期那样各自篡改源文件,篡改了同一个文件时就寄。

上次zeker在teacon里提问,普通用户遇到两个mixin冲突能做什么,最后给出的答案是:删一个。

除了冲突之外,难以调试也是我反对的原因之一。堆栈信息里全是MC自身的接口,这样的崩溃日志我见过不少,甚至都不知道是哪个mod导致的崩溃,只能和全无日志一样二分法地去删mod测试。一个普通玩家看到后很崩溃,学会mod开发后看到后也同样崩溃,因为没辙。不是看不懂,是日志里根本就不写。

我尤其反对mod初学者使用。在你甚至没搞清楚东西南北之前,就开始乱制造很难排查的崩溃,那真的很不负责任。

至于AccessTransformer,主要是因为另一位modder对此很不信任。他没有给出明确的原理分析,不过我也姑且继承了。Zeker表示,AT是forge官方鼓励的用法,所以,不使用AT最后主要是个人习惯的问题。


我做mod的几个倾向的评论 (共 条)

分享到微博请遵守国家法律