Minecraft模组开发(fabric)之准备工作
最近心血来潮想开发个Minecraft的模组,一边学习一边开发,顺带着将一些步骤、学习心得整理下来。之所以选择fabric,是因为自己的光影包使用的是iris-fabric,所以就想着写fabric的模组兼容性应该会好一些。听说大部分大型模组都是通过forge开发的?没考证过,不过感觉关系不大,同样的逻辑不同的实现方式罢了。
想要开发Minecraft的模组,有Java基础是必须的。虽然听说市面上有些工具可以可视化、拖拽式地开发模组,但是功能较为有限,想要随心所欲地进行开发,编程基础是必不可少的……就算不会Java,也得会点儿别的语言吧。
Java环境
根据Minecraft官方的说法,目前的最新版(1.20.X)要求Java17,而实际上,Java已经更新到21了。出于“喜新厌旧”的心理,我就直接用Java21了。
实际上,如果只是开发模组,是可以不用在操作系统里安装Java环境,或者说配置全局的环境变量的。在编译工程的时候,以IDEA为例,可以为这个工程设置Java版本,如果本地没有相应的jdk,还可以通过IDEA直接下载使用。不过需要记得,有两个地方需要设置Java环境——一个是Project Structure里需要设置JDK,然后就是gradle的setting里需要设置。详情后面会讲到的。
初始化工程
fabric提供了一个初始化模板的网站,网址是:
https://fabricmc.net/develop/template/
进入这个网页之后,需要重点关注的有两部分:
- 设置mod工程的相关名称,比如mod的名称以及package的名称等,同时选择这个mod对应哪些版本。
- 一些高级选项,比如是否使用Mojang的官方映射、是否支持Kotlin等。我个人的选择是不区分客户端、服务端,然后选择数据生成。详见下图(已经翻译成中文了)
配置好了之后点击这个页面最下方的「下载模板」按钮,就可以下载到一个干净的模板工程。紧接着通过IDEA(或者其他的编译器也可以,随意,用得顺手就好)打开这个工程。在Project Structure中配置Java的环境,如下图:
然后在Gradle中配置Gradle所使用的Java环境,如下图所示:
全部设置好之后,就可以build这个工程了。在实际操作中,因为网络环境的原因,下载一些依赖可能会失败,这时候就不得不多尝试几次,甚至更换网络环境。我有一次成功的时候,也有反反复复重复十几次才将所有依赖下载下来的时候,这就看命了。
全部设置完之后,选择Minecraft Client然后运行,就可以看到打开了一个Minecraft的客户端,也就意味着准备工作圆满完成。
工程正常运行起来的样子: