竹笋

注册

 

发新话题 回复该主题

我的世界MOD为什么会分版本,有人被这问 [复制链接]

1#
北京治疗白癜风 https://mjbk.familydoctor.com.cn/bjbdfyy/lx/

好家伙,小黄象不过就是一个国庆假期没来回复大家,私信里面就累积了好多问题等着我回答,正好,挑选一些比较具备探讨价值的问题,拿来和大家一起说一说,顺便也回复一下小伙伴们的答案。

关于MC这款游戏,mod在其中起到的作用至关重要,而这位小伙伴的问题就很有趣了,他问为什么MC的mod要分版本,东西内容不就是这些吗,有些mod后续也不会进行更新,为什么不能全版本通用?

那么今天小黄象就来回答一下这个问题,如果有不对的地方,希望大家评论区加以改正。

首先mod这个东西,他面向的不仅仅只是呈现给玩家们的内容,更多的是面对于MC这款游戏,而每一次MC这个版本的变动,都会让一个MOD面向游戏的代码发生翻天覆地的变化。

在minecraft中加入mod通常需要API,所谓mod版本其实是双重的,第一层是针对游戏本体的版本要求,会涉及到特定版本的特定函数、变量、对象等元素的调用与交互。另一个更加重要的是API版本,是mod加入游戏的基础。

在兼容性方面,mod的游戏本体版本要求一般是严格对应的,而API版本有向上兼容性。举例:某mod要求本体版本1.7.10,forgeAPI版本10..33(瞎编的),则一个安装了10..33版本以上forge的1.7.10游戏核心可以加载使用这个mod。

举个栗子,在1.8.x版本之前没有旗子,那么1.7.10的游戏打了1.8.1的mod,那么会不会出现问题?

再举个栗子,1.8.1版本的游戏打了1.7.10的mod,旗子该如何显示?

这其中就是向前兼容和向后兼容的问题了,而如何处理这个问题,说起来简单做起来难,但是从代码上来讲,那就复杂很多了。

简单来说,游戏的代码中会有一些功能,mod里要拿来用,游戏的版本变化后,这些功能的代码的写法可能就变了,mod中拿来用的方法也就变了

1.7.10版本,你在mod中定义一个物品,要通过在构造函数中调setTextureName()来指定该物品的图标,1.8之后这个函数就没有了,改为在一个json文件中指定,那么你原来的mod的代码游戏就不认了,所以要重写。

如果不重新,在新版本当中,就会没办法使用这个mod,而如果在老板本使用新版本的mod,那么老板本并不认识json文件,所以也无法识别出来。

这就是为什么MOD要分版本的主要原因。

其实分不分版本,对于小黄象这种咸鱼玩家区别不大,毕竟小黄象都是去找大佬要整合包,那么各位小伙伴们,你们平时最喜欢玩的mod都是什么啊,不妨在下方留言评论,我是小黄象,咱们下篇文章再见,拜拜

分享 转发
TOP
发新话题 回复该主题