目前哪个版本最适合新人入手开发模组?

Nyaruko


版本信息
你使用的系统: WINDOWS7 64位
你是用的JDK: JDK8
你使用的IDE:IntelliJ IDEA or Eclipse or 其他
你使用的IDE版本:未知
Forge版本: 未知
Minecraft版本: 1.12.2, 1.14.4, 1.15.2, 1.16

前几天刚高考结束,想在假期学习模组开发。关于Java已经在菜鸟教程,How2j,Java从入门到入土等资料中大致了解了一些。不知道哪个版本最容易入手模组开发,1.12.2有很多教学资料但版本较低,1.14.4及以上不能和optifine完美兼容,而我个人属于无光影不MC的玩家,因此有些纠结。


FledgeXu


本帖不适合出现的提问区,已移动至综合讨论区。


FledgeXu


以我个人观点来说,1.15是目前最适合的版本。
有以下几个原因:

  1. Forge团队已经放弃了1.12的技术支持,而本论坛马上也会停止对1.12的支持。
  2. 主流的Mod已经开始了向1.15的迁移,因为1.14-1.15的渲染系统的变动,使得1.14成了一个被跳过的版本
  3. 1.15 的开发教程丰富,如果限于中文教程,除去我写的Neutrino,Mcjty的1.15开发教程国内也有人翻译,你可以自行搜索。如果是英文的教程,那么内容就更多了。

FledgeXu


哦,还有一点,Forge在 Minecraft 1.13版本经历了重写,导致了1.12到1.14+的迁移困难。
如果对于熟练的开发者来说这不是什么大问题,但是如果你是新人的话,这个迁移也是一个坎。



特奉 Fledge 之命前来解释 OptiFine 与 Forge for Minecraft 1.14.4+ 之问题;

  1. 为什么 OptiFine 不兼容 Forge 1.13 ~ 1.14.3:
    由于 Forge 自 Minecraft 1.13+ 以来,摒弃了使用了长达五年之久的 LegacyLauncher,采用了 cpw 开发的新一代的启动入口程序 modlauncher
    然而由于 OptiFine 需要支持在无 Forge 纯原版环境下安装,并且 modlauncher 与 Forge 绑定紧密,脱离出来单独使用较为困难,因此 OptiFine 仍然在使用 sp614x 单独修改后的 LegacyLauncher 作为启动入口程序。
    并且 Forge 在重构早期并不希望 CoreMod 系统被滥用,所以开发了新一代CoreMod 系统,使用了 Nashorn 引擎,用于加载使用 JavaScript 作为编写语言的 CoreMods ,限制非常大,几乎只允许使用 ASM Tree API,OptiFine 作为一个使用传统 MCP 工程的庞大项目,是几乎不可能使用 ASM 的,工作量非常大,因此让 OptiFine 兼容 Forge 1.13 ~ 1.14.3 比较困难。
    后来,在 ichttt 和 cpw 的协调下,cpw 终于在 modlauncher 中添加了对 mods 文件夹中识别 ITransformationService 接口的支持,由于这个接口使用起来还有问题,直到 2019 年 8 月 5 号才被修复,此时对应的 Forge 版本为 1.14.4-28.0.45。因此第一个支持 Forge 1.13+ 的 OptiFine 版本为 OptiFine 1.14.4 HD U F4 pre1,兼容的 Forge 版本为 28.0.45。

  2. 为什么 OptiFine 1.14.4 之后对于 Forge 的兼容性依然不尽人意:
    1.12.2 之前版本的 OptiFine 对的 Forge Mods 兼容性本来就不怎么样,从 OptiFine 的 changelog 即可窥见一斑。由于 modlauncher 使用的 ClassTransformer 有修改顺序的问题MethodTransformerFieldTransformer 会在 OptiFine 在修改完原版类之前运行,引起之前修改的内容全部被覆盖的问题,导致原本就差强人意的兼容性更是雪上加霜。

  3. OptiFine 是如何兼容 Forge 的:
    最早期的 Mod 是通过替换 Minecraft jar 包中的 class 文件实现的,早期 OptiFine 和早期 Forge 也不例外。后来随着 Forge 与 Forge Mod Loader 的壮大,越来越多的 Mod 不再使用替换 class 文件的方式,然而 OptiFine 作为一款主打修改原版渲染的 Mod,很难作为普通的 Forge Mod 加载,因此虽然后来几乎没有 Mod 再使用替换整个类的方式修改 Minecraft,但是 OptiFine 还延续了这个传统,因此不可避免地会出现 OptiFine 和 Forge 替换了两个相同的类的情况。由于 OptiFine 需要对原版 Minecraft 进行支持,因此 OptiFine 的做法是:在修改原版与 OptiFine 相关功能的同时也照着 Forge 对原版的修改方式进行相应的修改,以达到兼容 Forge 的目的。然而 Forge 的更新频率比 OptiFine 快很多,有时候 Forge 对一个原版类进行了新的修改,这个类恰好也被 OptiFine 修改了,然而旧版 OptiFine 会覆盖掉 Forge 的新的修改,需要 sp614x 手动更新,OptiFine 1.14.4 HD U F5 和 Forge 1.14.4 28.2.2 一起安装会崩溃就是这个原因引起的。


Twily


1.16我在写一些教程(虽然很菜)
要是想挑战一下就试试1.16.1(虽然好像现在forge还在测试版)
预计1.15.2会和1.12.2一样成为下一个稳定版本。
(连mcmodcn评为“名扬天下“的暮色森林都要支持1.15了,你还准备用1.12?)
要是第一次做mod,就1.15吧,bug少一些(1.16还有N多没mapping掉)


Nyaruko


感谢各位大侠愿意码这么多字的回复!


vvvbbbcz


我个人认为1.15~1.16最好。版本较新,适合后续的版本迁移。
其次,我觉得fabric对新人更友好,有较完整、且适合新手的开发文档。而且Forge开发体验越来越差(我是这么认为),新手建议先学fabric的MOD开发。


FledgeXu


Fabric 缺少很多开发大型mod的功能,而且多数量的Mod的兼容性有很大的问题。


FledgeXu


Fabric 缺少很多开发大型mod的功能,而且多数量的Mod的兼容性有很大的问题。


Twily


是的,轮子不太多,而且做为玩家体验感非常不好:还要带api


system


该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。