gc是什么我的世界?
这个问题的正确答案是,我也不知道,因为这是一个有争议的问题。 我来简单介绍一下情况吧。在Java版1.8之前(包括1.8),forge都使用一种叫做反射的机制来实现mod载入,这种机制是如此得强大以至于几乎可以使用任何类加载器来完成mod载入。但是在1.9及之后的版本中,forge使用了另外一种技术来做到mod载入,并且这项技术直接内置于java的虚拟机之中,因此无法被绕过或者禁用。
现在对于大多数玩家来说,要让他们换成新的游戏版本并不是一件很困难的事情,只要重新下载一个jar包进行覆盖即可。但是这对于mod开发者来说就是一件非常痛苦的事情了,因为他们需要重新把新版本的forge移植到自己的mod项目中,并且有可能还需要修改自己的代码以适应forge的新特性。而且这不是一次两次能完成的,因为forge是一个持续不断地发布新版本的软件,而每一次版本都需要这样的操作一遍。这给mod开发带来了非常大的不便,甚至有些不太知名的mod由于跟不上更新导致彻底无法运行。
为了减轻对mod开发者造成的负担以及尽可能平滑地升级体验,Javaworld组织了一个叫作Bukkit的上层框架。通过这个框架,无论是forge还是一些其它的功能都能实现类似插件那样的快速更新。当然,这一切都是建立在forge能够成功运行的基础之上。 目前,对于大多数的Java用户而言,它们只需要选择自己想要使用的forge版本,然后一键安装就可以了。这样既方便了用户的使用,又降低了mod开发者的工作量,可谓是一举两得。 但是这里就出现了一个问题,到底是forge自己进行升级比较好呢,还是完全删除重装比较合适呢?如果选择了前者,虽然能够最大程度保持游戏的稳定和流畅,但是却可能需要付出mod开发者艰苦工作的代价;而如果选择了后者,虽然可以避免破坏现有的游戏稳定性,但是对mod开发者却又比较友好。 对于大部分玩家来说,他们并没有机会去选择自己的forge安装方式,因为forge已经做到了自动更新。而对于部分想尝试新功能的玩家来说,他们也不具备选择forge版本的能力,因为各种渠道的forge安装包可能都不再提供forge的具体版本号了。
所以现在的forge就像是骑上了自行车——再也回不到从前了。无论对于玩家还是mod开发者来说,这都是一项具有极大不确定性的未知数。 我们只能希望,所有的意外都能够化为乌有,所有的好心都能得到回报。