当前位置:首页 > 游戏信息 > 正文

为什么游戏《minecraft》(我的世界)中,mod(模组)不能跨版

为什么游戏《minecraft》(我的世界)中,mod(模组)不能跨版-第1张-游戏信息-龙启网

在游戏《我的世界》(Minecraft)中,Mod(模组)的跨版本兼容问题一直是玩家讨论的焦点。尤其是随着1.14.4版本的推出,Fabric加载器横空出世,这使得Forge和Fabric之间出现了不兼容的情况。那么,为什么Mod不能跨版本兼容呢?未来,Forge和Fabric是否会合并成一个加载器,以实现跨端兼容?或者有没有可能通过其他方式实现跨版本兼容?如果我的世界中的模组真的能够跨版本兼容,这将会对游戏产生什么样的影响呢?

Forge和Fabric目前可以通过一些方式实现兼容。不是指同一个Mod文件能在两边运行,而是同一份代码使用不同的编译选项,可以分别构建出适用于Forge和适用于Fabric的Mod文件,而不需要Mod开发者配置两次开发环境,维护两份代码。这个实用且重要的支持库,就是Architectury。

Architectury是一个对Fabric API和Forge API的抽象化调用API,因为这两个加载器对可以被视为同一事物的内容有不同的实现。它定期更新,包含90多个事件挂钩、网络、抽象化、加载器调用、游戏注册表抽象和易于使用的@ExpectPlatform注释。通过Architectury,Mod可以使用相同的代码基础,但通过不同的编译选项,加载器会自动选择正确的实现,从而简化了Mod开发。

Architectury还提供了一套API,实现了部分游戏内容的注册和修改功能,进一步提升了公用代码的占比。例如,灯纟火(Xdi8Aho Mod)是一个使用Architectury API的模组,最近在更新至2.0.0-beta3版本后,实现了Forge与Fabric 1.18.2的兼容。

跨Minecraft版本的兼容性则需要具体情况分析。游戏Mod有一个开发工具可以实现预处理指令,生成不同版本的代码。基岩版的模组(行为包)能够跨版本兼容Java版,但为什么Java版的模组不能跨版本兼容基岩版呢?基岩版行为包是Mojang官方提供的接口,官方自然会顾及版本兼容性,而Java版的模组加载器是社区的作品,官方不提供支持。Java版底层代码在大版本之间区别较大,而基岩版行为包相对稳定,这可能是两者兼容性差异的原因。

大部分Mod开发者选择在1.12.2、1.7.10、1.10.2、1.14.4、1.16.5、1.18.2、1.19.4等版本进行开发,这些版本通常是某个大版本的最后一个小版本,游戏相对稳定,不会出现太严重的bug。后续版本往往对底层代码进行重大改动,导致Mod更新困难,或者时间间隔较长,给Mod开发者带来挑战。例如,1.12.2版本后,游戏进行了扁平化,全面取消了数字ID,对底层代码进行了大规模重写,这使得Mod不易更新。

关于Mod跨版本兼容性的问题,如1.12.2的模组在1.20版本使用,或者1.16的模组在1.12版本使用,主要问题在于版本间的差别太大。开发者需要考虑版本间的代码差异、游戏机制变化以及性能优化等因素,以确保Mod在不同版本之间保持稳定运行。这涉及到代码重写、测试以及与新版本兼容的调整,工作量较大,且需要一定的时间来完成。