少走弯路!超全mc模组制作入门指南,看完明白了!【Minecraft 模组开发教程】


我的世界开发者中文指南(必看)

关于基岩版的Mod问题:基岩版MC里有Mod吗?_bilibili

现在MCreator功能还不错(用这个不用写代码)自定义生物、维度甚至是粒子效果都有了。如果模组主要是往游戏里加东西,不怎么改原版游戏机制,且体量不大,是可以考虑的。但真正想要做好还得要老老实实写代码。

Java版(除MCreator)开发学习路线

0. 如果有这些会更轻松

  • 具有基本的英语能力(如词汇3k+)
  • 了解基础的数学知识(中学水平够用)
  • 具有一定的编程思维或理科思维,不然有可能学不太明白Java

1. Java基础

初学者可看《Java从入门到精通》、菜鸟教程

  • 基本语法:变量和数据类型、运算符、条件、循环、函数等
  • 类和面向对象(精髓)(封装、继承、多态、抽象类和接口、枚举类等)
  • Number和Math类、String和StringBuffer、Stream&File&IO、各种容器
  • 泛型、注解、Java8新特性、异常、线程等
Java不算难,如果学过任何一门编程语言会更轻松,尤其是C/C++/C#
特别注意 Java8新特性、泛型,不少初学者搞不太懂,影响开发
推荐Java8新特性通俗详解专栏

2. API

学完基础之后,可以做模组了。建议先跟着教学视频一步步走,等会做一些基本的东西之后,再看官方文档

想进阶必须要看官方文档、游戏和其他模组作者的代码

初学者不好理解/忽略的点:

服务端和客户端的概念

MC游戏端分为两个端:服务端(Server)和客户端(Client)

这样做主要是为了多人游戏考虑

  • 服务端主要负责游戏逻辑处理
  • 客户端主要负责画面和音效

两个端之间需要通信,通过S2C(Server To Client)和C2S(Client To Server)

即使是单人本地游戏,两个端都会运作

Mixin

用于修改游戏代码

Fabric Mixin参考:Mixin Examples [Fabric Wiki]

初学者容易弄不明白,可以看这篇文章搞定

常用注解
@Shadow:影射原来的类的成员,用于引用原类的变量或方法
@Unique:表示该成员不是原来类的,而是自己写的(如果Mixin类的成员未加任何注解,则会覆盖原类的成员)
@Inject:向代码注入内容
CallbackInfo  cancel()无返回值取消  get/setReturnValue获取和更改返回值
@Redirect:重定向(替换)方法调用
@ModifyArg:修改调用某方法的参数

AccessWidener

不知道(Neo)Forge是否有

用于拓宽类内私有/保护成员的访问权限

本人Fabric开发经验分享

IDE

搭建 / 配置开发环境

Forge搭建可直接下载@耗子的离线包(百度搜)

Fabric看这篇,注意事项:

1. 强烈推荐IntelliJ IDEA

2. 重中之重:一定要安装Java17(+) JDK!!,否则环境搭建失败

3. fabric-example-mod

- build.properties

- 选择稳定版下载

- 有主类路径,不要填错,否则main找不到游戏报错

- 修改LICENSE、README.md

Could not execute entrypoint stage 'main' due to errors 修改fabric.mod.json / 注册物品问题——详见错误日志

项目文件夹

  • fabric-example-mod的license要改
  • 如果intellij 卡在Scanning files to index... Scanning library 'Gradle: commons-io' 那就多次重启软件

重新加载资源和依赖项

——发现Minecraft Client / Server冒“×”的解决方法

或右上角Minecraft Client - Edit - Build and run第一行 (依赖项存在的情况下,可以通过Gradle - Tasks - Fabric - runClient是否能成功运行来检验)

导出Mod

Gradle(右上角大象图标) - Tasks - build - build

API

Mixin

@Unique注解

org.spongepowered.asm.mixin.Unique This annotation, when applied to a member method or field in a mixin, indicates that the member  should never overwrite a matching member in the target class. This indicates that the member differs from the normal "overlay-like" behaviour of mixins in general, and should only ever be added to the target. For public fields, the annotation has no effect.

AccessWidener

用于直接访问反编译源码中的非 public对象
  1. fabric.mod.json添加 ... "accessWidener": "your_mod_id_here.accesswidener ", ...
  2. build.gradle手动添加

  1. xxx has protected/private access in xxx 选择Copy AW entry,则可快速生成access widener表达式
  2. 如果显示另一个程序正在使用或文件占用
  3. 在运行ValidateAccessWidener重启IntelliJ IDEA,如果无效再重启电脑
  4. 可能是access widener语法错误,而不是显示的问题本身,如方法名和参数类型之间不要忘了隔开
  5. field descriptors参考
DescriptorPrimitiveDescription
Bbytesigned byte
CcharUnicode character code point in the Basic Multilingual Plane, encoded with UTF-16
Ddoubledouble-precision floating-point value
Ffloatsingle-precision floating-point value
Iintsigned integer
Jlongsigned long integer
L_ClassName_;referencean instance of ClassName
Sshortsigned short
Zbooleantrue or false
[referenceone array dimension

修改构造函数

构造函数:注意不能mixin到super前面,否则报错退出

@Inject(method = "<init>", at = @At("TAIL"))

资源包

改变色调

图像 - 调整 - 可选颜色

获取音效+处理

语言

教程 制作自定义语言包:从入门到入完门 (转载备份)
indexes文件选一个,如json

这六个翻译神器可真猛,秒杀一众翻译软件,好用到犯规!
百度和谷歌垃圾,推荐DeepL,带AI,中翻英依然强(但目前2023韩语、捷克语不太好用?)

有没有推荐的繁简体转换器? 在线智能简繁转换

JsonBuddy Desktop与BabelEdit翻译language.json语言文件简要教程
暂时用不上

查找语言简称:使用必应搜索 颜文字和转义换行符翻译容易出问题

联机

Connection refused: no further information

将端口开放为25565

### 回答1: Minecraft Fabric模组开发是指使用Fabric API和Minecraft游戏Java版本开发自定义模组的过程。Fabric是一种轻量级的模组API,它提供了一种简单的方式来创建和管理Minecraft模组开发者可以使用Java语言编写自己的模组,并通过Fabric API与Minecraft游戏进行交互。Fabric模组开发可以为玩家提供更多的游戏内容和功能,使游戏更加有趣和多样化。 ### 回答2: Minecraft Fabric是一个轻量级的模组平台,它与MinecraftJava版兼容。与其他模组平台相比,它具有更高的灵活性和自由度。因此,Fabric模组开发对于有一定编程知识的人来说是一个不错的选择。 首先,要开始Fabric模组开发,需要下载和安装Minecraft Fabric和Java开发工具包。然后,需要学习Java编程语言。如果你已经有了Java编程经验,那么你可以开始学习Fabric API,其提供的开发框架和API使你的开发更加容易上手。在这个过程中,你也可以参考Fabric官方文档和其他开发者的经验分享,尤其是那些已经开发出成功模组开发者学习他们的思路和技巧是非常重要的。 在进行开发的过程中,需要有一些基本的开发工具,比如开发IDE、代码管理工具和构建工具等,这些工具能够提高开发效率,让你更好地掌控开发进程。在具有一定的基础后,可以开发各种各样的模组,比如新方块,新物品,新生物和新机制等。其中,当你开发出一个好的模组后可以将其分享给其他玩家,在资源网站发布自己开发模组,也可以帮助广大玩家增加游戏的趣味性。 最后,Fabric模组开发需要耐心和热情,在掌握基础知识后,勇于尝试和不断的思考能够使你的模组更加优秀,同时也需要和其他开发者积极交流和分享,在大家的共同努力下,可以让我们的Minecraft更加完美。 ### 回答3: Minecraft Fabric模组开发是介于游戏基础和高级开发之间的活动,它结合了游戏玩法和软件编程技术。Fabric是Minecraft的一个轻量级模组库,通过将模组代码嵌入游戏的核心运行环境中,实现了游戏机制的修改和扩展。 在Fabric模组开发中,需要掌握Java编程语言以及各种API和工具。首先要学会使用Gradle进行项目管理以及构建模组,其次要熟悉Fabric API的各种类和方法,以及在游戏中使用的相关命令和配置文件的编写。此外,还需要了解模组的相关概念,包括模组结构和生命周期等。 在开发具体的模组时,需要有一定的创意和设计能力。例如,可以通过添加新的生物、方块、物品等来扩展游戏内容,或者修改游戏机制,实现新的游戏玩法。不过,在进行模组开发时,需要注意游戏的性能和稳定性,避免过多的资源消耗和崩溃等问题。 总之,Minecraft Fabric模组开发是一项高度具有创造性和技术性的活动,它让玩家可以更加深入地了解游戏机制,并且可以通过自己的努力创造出属于自己的独特游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值