描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121358517
本书面向 Minecraft 模组的开发流程,帮助读者通过编程的方式实现自己梦想中的游戏特性。如果你对 Java 这门编程语言本身并不熟悉,在学完本书后将对 Java 这门编程语言有一个初步的认识,并将拥有开发 Minecraft 模组的基本能力。在玩游戏中学习编程知识,能够大大提高读者学习编程的兴趣。
《我的世界》(Minecraft)是一款风靡全世界的沙盒游戏,是目前 PC 游戏中畅销的游戏之一。作为一款拥有很大自由度的游戏,在社区中也存在一些基于 Minecraft 本身的修改行为,并以一种被称为模组(Mod)的方式广为传播。此外,通过编写 Java 程序的方式直接控制 Minecraft 的某些行为,在玩游戏中学习编程,能够大大提高青少年入门编程的兴趣。本书将聚焦于面向 Minecraft 模组的开发流程,读者在学习完本书后,将会拥有开发 Minecraft 模组的基本能力,如果读者对 Java 并不熟悉,那么读完本书后也将对 Java 有一个初步的认识。
本书可作为已经对 Minecraft 这款游戏有一定了解的玩家的模组开发入门教程,帮助玩家通过编程的 方式实现自己梦想中的游戏特性。本书也可作为已经对模组开发有一定认识的开发者的参考用书,对于 专注于旧版本模组开发的开发者,本书将介绍一些针对 Minecraft 新版本的全新特性。
第Ⅰ部分 整装待发
第 1 章 电子游戏与 Mod 开发 / 2
1.1 电子游戏的运行机制 / 2
1.2 Mod 在游戏程序中的地位 / 5
1.3 本章小结 / 10
第 2 章 开发环境的准备工作 / 11
2.1 配置 Java 开发环境 / 11
2.2 配置 MinecraftForge 开发环境 / 14
2.3 个 Mod 的构建与运行 / 18
2.4 本章小结 / 22
第Ⅱ部分 小试牛刀
第 3 章 基础知识 / 26
3.1 类型、字段、方法和注解 / 26
3.2 ModID 和其他信息 / 35
3.3 Forge 的事件系统 / 42
3.4 状态和控制 / 48
3.5 本章小结 / 53
第 4 章 面向方块和物品 / 56
4.1 新的物品 / 56
4.2 新的方块 / 65
4.3 面向对象的三大特征 / 74
4.4 本章小结 / 78
第 5 章 尝试交互 / 80
5.1 创造模式物品栏 / 80
5.2 新的工具 / 90
5.3 新的盔甲 / 100
5.4 为物品添加配方 / 109
5.5 本章小结 / 114
第 6 章 深入游戏体验 / 116
6.1 新的烧炼规则和燃料 / 116
6.2 新的附魔 / 123
6.3 新的村民交易 / 132
6.4 新的药水效果 / 146
6.5 客户端和服务端的差异 / 159
6.6 本章小结 / 163
第Ⅲ部分 登堂入室
第 7 章 会动的长方体 / 166
7.1 新的实体生物 / 166
7.2 生物的长方体模型 / 171
7.3 生物模型的转动 / 184
7.4 生物的行为逻辑 / 190
7.5 生物属性和数据同步 / 195
7.6 生物的世界生成 / 208
7.7 生物的死亡掉落 / 212
7.8 Minecraft 的 NBT 系统 / 215
7.9 本章小结 / 220
第 8 章 技高一筹 / 222
8.1 新的投掷物 / 222
8.2 新的附加属性 / 228
8.3 属性框渲染 / 236
8.4 调整提示文本 / 248
8.5 本章小结 / 253
第 9 章 眼见为实 / 254
9.1 方块状态与朝向 / 254
9.2 为方块绘制 GUI / 261
9.3 为 GUI 添加物品槽 / 267
9.4 游戏逻辑与进度条 / 273
9.5 本章小结 / 278
第 10 章 展望未来 / 280
10.1 成为一名合格的 Mod 开发者 / 280
10.2 探寻内部机制——Forge 是如何运作的 / 281
10.3 相关资源 / 284
后记 / 285
鸣谢 / 286
作为一款总销量过亿份、PC 版销量突破三千万份的沙盒游戏,Minecraft 已经成为国内青少年群体中广泛流行的游戏之一。Minecraft 的初版本由瑞典公司 Mojang AB 开发并在 PC 上 运行,其使用 Java 进行编写,是目前世界上畅销的电子游戏之一。
作为一款拥有极大自由度的沙盒游戏,从 Minecraft 测试版发布就开始了针对Minecraft 游戏本身的修改。这类改动通常被称为模组(Mod,由 Modifification 的前三个字母得名)。当时的模组和现在的模组的安装方式不同,是通过替换 Minecraft 游戏本体的方式完成的,这样不仅不方便,还容易引起不同 Mod 之间的冲突。而现在的 Mod 安装方式十分方便,我们只需要把若干个带 jar 后缀的文件放进 mods 目录下,然后启动游戏就可以了。
这归功于一类被称为 ModLoader 的特殊 Mod。ModLoader 本身也经历了若干代演化,目 前十分流行的 ModLoader 由一个被称为 MinecraftForge 的组织提供。与此对应的 ModLoader 的名称为 ForgeModLoader,简称 FML。当然,目前还有一些知名度比较高的 ModLoader,如 LiteLoader 等。本书只针对 FML 来讲。
包括 FML 在内的这些 ModLoader 的主要作用只有一个——把模组从 mods 目录中取出, 然后按照一套约定俗成的方式加载,并执行其中的部分代码。即使这样,Mod 之间的冲突仍然 经常发生。因此,MinecraftForge 同时也提供了一套接口(Application Programming Interface,API),以供 Mod 作者调用,大大减少了 Mod 之间的相互冲突,这套接口被称为 ForgeAPI。在通常情况下,玩家不会刻意去区分 FML 和 ForgeAPI,因为在大多数情况下,这两者都是同时被提及的。
通过本书的学习,读者能掌握编写 Minecraft 模组的基本方法,从而为进一步的模组开发打下基础。同时,这本书也可以帮助开发者对 Java 面向对象的编程语言有更深层次的了解。这本书是做什么的顾名思义,这本书是帮助Minecraft玩家入门模组开发的。本书不针对Minecraft的其他版本,如 Bedrock Edition 等。此外,对于不同的 Minecraft 版本,编写模组的方式也各不相同,为了不落后于游戏本身的发展,本书内容基于目前 Mod 社区十分流行的 Minecraft 版本——1.12.2之上。
我不会 Java,这本书适合我吗
你完全可以阅读这本书。Minecraft 游戏是由 Java 编写的,因此,这本书讲解的编程知识将只会考虑 Java。考虑到这一点,这本书会在讲解过程中,穿插一些编程的基础知识,可以使对 Java 还不熟悉的开发者快速了解 Java 的基础框架。当然,编写模组有时会用到一些更高级的 Java 知识,在通常情况下,对 Java 不熟悉的开发者很难遇到这些知识。作者将会在本书第 10 章提醒读者阅读相关的资料。
我可以使用我熟悉的 C/C /C#/Python/JavaScript 等语言吗
非常遗憾,不可以。使用 Java 编写模组是接触并修改 Minecraft 的内部逻辑很好的方式。 其他语言或许可以编写模组,但在实际应用中会非常困难。当然,Java 作为一门语法相对简单的编程语言,我相信有一定编程基础的读者会很快学会它的。另外,有一些编程语言和 Java 有着千丝万缕的联系,实际上也可以用于 Minecraft 的模组编写,不过在这本书里不讨论这类语言。
这本书可以让我成为一名熟练使用 Java 的开发者吗
非常遗憾,也不可以。这本书虽然会介绍一些关于 Java 的知识,但这些知识只是为完成本书涉及的编写模组任务的,还没有完全覆盖编写 Java 代码所需要的所有知识。如果读者想要写出更好的模组,则需要阅读专门讲解 Java 的参考书。事实上,作者也不建议开发者在对 Java 还不熟悉的时候就试图规划编写一个成体系的模组。
在硬件方面,有什么需要准备的吗
实际上,作为一款游戏,编写 Minecraft 模组的确对你使用的计算机硬件有一定的要求。一个基本的要求是内存空间至少为 4GB,在这里建议读者使用 64 位的操作系统,并拥有至少 6GB 的物理内存。另外一个要求是你需要一个比较好的网络环境。大量与开发模组有关的资源都需要从网络上下载,这不可避免地会涉及一些资源,考虑到网络大环境,读者可能需要在编写模组之前,自行准备一些必要的网络工具。
作为受本书影响而迈入模组开发的我来说,本书的确是难得的优质入门书籍,在当前中文开发资料相对匮乏的环境下尤为可贵。
——酒石酸菌(Minecraft 模组开发者、翻译者、教程作者)
在现今国内创作新人与老人出现技术断层的情况下,本书毫无疑问对Minecraft社区的发展是一个宝贵的贡献,读者能通过本书成为一位真正的开发者。在本书里有一种薪火传递的精神。
——梨木利亚(百度贴吧“Minecraft吧”吧主,MCBBS版主,“MC百科”总策划)
本书填补了国内 Minecraft Forge 模组开发线下教程的空白,为“萌新”带来了启蒙,对于对模组开发感兴趣却无从下手的人来说无疑是一大福音!
——重生是希望(“MC百科”站长)
本书深入地讲解了Minecraft 真实的模组开发环境,让读者可以切身体验到模组开发的过程,踏上Minecraft 模组开发的正途,是不可多得的优秀著作,真正的源于开发者,造福开发者。
——LocusAzzurro(Minecraft 社区知名多元内容创作者)
评论
还没有评论。