新書推薦:
《
中国历史研究入门(全二册)
》
售價:NT$
1290.0
《
夺回大脑 如何靠自己走出强迫
》
售價:NT$
299.0
《
夏天,19岁的肖像(青鲤文库)岛田庄司两次入围日本通俗文学奖直木奖的作品 ,同名电影由黄子韬主演!
》
售價:NT$
225.0
《
图解机械工程入门
》
售價:NT$
440.0
《
股市长线法宝(第6版)
》
售價:NT$
640.0
《
中文版SOLIDWORKS 2024机械设计从入门到精通(实战案例版)
》
售價:NT$
450.0
《
纯数学教程
》
售價:NT$
390.0
《
威尔士史:历史与身份的演进
》
售價:NT$
490.0
|
編輯推薦: |
本书面向Minecraft模组的开发流程,帮助读者通过编程的方式实现自己梦想中的游戏特性。如果你对Java这门编程语言本身并不熟悉,在学完本书后将对Java这门编程语言有一个初步的认识,并将拥有开发Minecraft模组的基本能力。在玩游戏中学习编程知识,能够大大提高读者学习编程的兴趣。
|
內容簡介: |
《我的世界》(Minecraft)是一款风靡全世界的沙盒游戏,是目前 PC 游戏中畅销的游戏之一。作为一款拥有很大自由度的游戏,在社区中也存在一些基于 Minecraft 本身的修改行为,并以一种被称为模组(Mod)的方式广为传播。此外,通过编写 Java 程序的方式直接控制 Minecraft 的某些行为,在玩游戏中学习编程,能够大大提高青少年入门编程的兴趣。本书将聚焦于面向 Minecraft 模组的开发流程,读者在学习完本书后,将会拥有开发 Minecraft 模组的基本能力,如果读者对 Java 并不熟悉,那么读完本书后也将对 Java 有一个初步的认识。
本书可作为已经对 Minecraft 这款游戏有一定了解的玩家的模组开发入门教程,帮助玩家通过编程的 方式实现自己梦想中的游戏特性。本书也可作为已经对模组开发有一定认识的开发者的参考用书,对于 专注于旧版本模组开发的开发者,本书将介绍一些针对 Minecraft 新版本的全新特性。
|
關於作者: |
土球球,Minecraft 社区创作者,前 Infinity Studio 小组成员,Command Block Logic 小组正式成员,《我的世界》中文论坛(MCBBS)编程开发版版主,网易《我的世界》中国版开发者大会受邀嘉宾。擅长 Minecraft 模组开发及原版命令创作,拥有多年 Java 编程经验和模组开发经验。其 Minecraft 模组开发系列教程《Minecraft 1.8.9 FML Mod开发教程》和近年来在知乎专栏Modded Minecraft Dev发表的大量教程,在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 章提醒读者阅读相关的资料。
我可以使用我熟悉的 CC C#PythonJavaScript 等语言吗
非常遗憾,不可以。使用 Java 编写模组是接触并修改 Minecraft 的内部逻辑很好的方式。 其他语言或许可以编写模组,但在实际应用中会非常困难。当然,Java 作为一门语法相对简单的编程语言,我相信有一定编程基础的读者会很快学会它的。另外,有一些编程语言和 Java有着千丝万缕的联系,实际上也可以用于 Minecraft 的模组编写,不过在这本书里不讨论这类语言。
这本书可以让我成为一名熟练使用 Java 的开发者吗
非常遗憾,也不可以。这本书虽然会介绍一些关于 Java 的知识,但这些知识只是为完成本书涉及的编写模组任务的,还没有完全覆盖编写 Java 代码所需要的所有知识。如果读者想要写出更好的模组,则需要阅读专门讲解 Java 的参考书。事实上,作者也不建议开发者在对 Java 还不熟悉的时候就试图规划编写一个成体系的模组。
在硬件方面,有什么需要准备的吗
实际上,作为一款游戏,编写 Minecraft 模组的确对你使用的计算机硬件有一定的要求。一个基本的要求是内存空间至少为 4GB,在这里建议读者使用 64 位的操作系统,并拥有至少 6GB 的物理内存。另外一个要求是你需要一个比较好的网络环境。大量与开发模组有关的资源都需要从网络上下载,这不可避免地会涉及一些资源,考虑到网络大环境,读者可能需要在编写模组之前,自行准备一些必要的网络工具。
|
|