Skip to content

Commit

Permalink
New blog post (#326)
Browse files Browse the repository at this point in the history
A new blog post addressing many core concepts in Minecraft
  • Loading branch information
bingling-sama authored Aug 6, 2024
2 parents c36d1f2 + e5867f0 commit 06809e4
Show file tree
Hide file tree
Showing 4 changed files with 185 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default withPwa(
pwa: pwaConfig,

rewrites: {
"blog": "blog/"
blog: "blog/",
},

sitemap: {
Expand Down
3 changes: 2 additions & 1 deletion .vitepress/data/authors.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@
{
"name": "bingxin666",
"nameAliases": [
"bingxin666"
"bingxin666",
"Bingxin"
],
"avatar": "bingxin666"
},
Expand Down
182 changes: 182 additions & 0 deletions docs/blog/everything_you_should_know_about_minecraft.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
---
sidebar: false
title: 📓 新手玩家必修第一课
date: 2024-07-31 15:30:00
editor: bingling-sama
---

# 📓新手玩家必修第一课

Mod、插件、光影……各种名词傻傻分不清?一篇文章带你搞懂 Minecraft 的一切。

---

*你可曾记得,那个记忆中逐渐模糊的方块世界,那是我们终将逝去的童年。*

## 万物起源

2009 年 5 月 17 日,Markus Persson 以 *Notch* 之名,发布了 Minecraft 的第一个版本,创造了无数玩家梦开始的地方。

十五年后的今天,我们回首往事,一切似乎都发生在一瞬间。我们和这款游戏一起经历了各种社区内容的兴衰,太多美好的回忆历历在目。

也许你是一个从未了解过这款游戏的新玩家,也许你是一直关注实况主们视频的云玩家,也许你是一步一步摸索到今天的骨灰级玩家;但我们今天,一起来聊聊与 Minecraft 有关的一切。

~~如果你尝试过通过 Minecraft Wiki 来获取关于 Minecraft 的基础信息的话,你可能会觉得其内容过于枯燥,本文将以较为浅显的新玩家视角为你介绍有关 Minecraft 的各种概念。~~

## Minecraft,启动!

Minecraft 最初是一款使用 Java 编程语言开发的 PC 端单机游戏,随着时间的发展,衍生出了许多不同的版本,但我们今天要讨论的,是运行在 PC 上的 Minecraft Java Edition,即众人熟知的 Java 版。

2014 年 9 月 15 日,微软以 25 亿美元的天价将 Minecraft 收入麾下。自此以后,玩家们在购买了 Minecraft 正版账号以后,就可以使用微软官方推出的 *Minecraft Launcher* (即 *Minecraft 启动器* )来下载并游玩 Minecraft。

由于官方启动器没有包含任何社区内容,这就催生了许多第三方 Minecraft 启动器。例如旧朝遗老 *MultiMC* 以及新生代的 *PolyMC**Prism Launcher* 等。

然而对于国内玩家来说,记忆中更多的可能还是 *忘却的旋律**HMCL* 等第三方启动器。

这些启动器各有特色,都兼容了许多有意思的社区内容,包括后面会提到的 *Mod**光影* 等。

## Java 是个啥?咖啡吗?

Minecraft 的游戏本体实际上是一个 `.jar` 格式的文件,它需要运行在 Java 虚拟机上。

Java 是一门高级程序设计语言,属于运行时语言。所谓 *运行时(Runtime)*,就是程序在运行时所需要的环境。对于 Java 来说,这个运行时就是 Java 虚拟机。

在游玩 Minecraft 之前,你需要安装游戏版本对应的 Java 版本。一般来说,安装 JRE 版本的 Java 就可以了,但也可能有其他原因会导致 JRE 无法完美运行游戏,所以会需要安装 JDK 版本的 Java。

> JRE:Java Runtime Environment,Java 运行时环境,包含运行 Java 程序所需的程序内容
> JDK:Java Development Kit,Java 开发工具包,包含 JRE 和其他编译、调试 Java 程序所需的工具
关于各个游戏版本所需要的 Java 版本,请参阅下表:

| Minecraft 版本 | 推荐 Java 版本 | 最低 Java 版本 |
| ------------ | ------------ | ---------- |
| 1.20.5 及以上 | Java 21 或更高 | Java 21 |
| 1.18~1.20.4 | Java 17 或更高 | Java 17 |
| 1.17 | Java 16 或更高 | Java 16 |
| 1.9~1.16 | Java 8 或更高 | Java 8 |
| 1.8 | Java 7 或更高 | Java 7 |
| 1.6/1.7 | Java 6 或更高 | Java 6 |
| 1.5 | Java 5 或更高 | Java 5 |
| 1.4 | Java 1.4 或更高 | Java 1.4 |

**注意:**

- 以上表格仅供参考,实际情况可能会有所不同。
- 建议使用最新版本的 Java,以获得最佳性能和安全保障。
- 在某些改装版本中对 Java 版本可能有特殊要求,最好使用官方明确表示支持或建议使用的 Java 版本。
- 某些旧版本 Minecraft 可能需要更早的 Java 版本,请参考官方网站或相关论坛的资料。

## 皮肤和披风

进入游戏后,按下键盘上的 `F5` 切换到第三人称视角,或者按 `E` 打开背包,我们就可以看到自己在游戏中的模样。

在认知多元化的今天,除了原始人 Steve 和 Alex,Mojang 在 1.20 版本中还引入了各种肤色与着装的默认皮肤,TA 们也都有各自的名字:Sunny、Kai、Makena……

[Minecraft 官网](https://www.minecraft.net) 的玩家档案页面中,你可以选择其他默认皮肤或者上传自己自定义的皮肤,可以在各大论坛下载,也可以自己动手绘制。但需要注意的是,在 Minecraft Java Edition 中,皮肤格式应为 64x64 像素大小的 PNG 文件,其中包含皮肤的内外两层,内层禁止透明,外层可以是透明的。

> 在 Minecraft Bedrock Edition 中,皮肤支持 128x128 像素大小的 PNG 文件,并且支持透明度。但需要注意的是,**完全透明的皮肤是非法的,至少要有一个有色像素**
你可能在一些 Minecraft 实况主的视频中见过披风,这些披风通常是 Mojang 官方作为活动奖励发放的,因此并不支持玩家自定义。可能的皮肤获取方式如下:

- Minecraft 新生物投票
- 周年庆活动
- Minecon
- 其他 Mojang 官方组织的活动

需要注意的是,以离线模式登录的时候,默认是不显示玩家自定义的皮肤的。这也很好理解,离线模式供玩家在脱机状态下游玩 Minecraft,所以无法加载皮肤和披风。~~Mojang 在代码中如是体现~~

但有时候玩家们只是因为某些原因无法连接至 Mojang 服务器才使用离线登录,有没有其他方式可以显示皮肤呢?

答案是肯定的。在离线模式下,你可以使用皮肤 Mod 或第三方验证服务器来加载皮肤。例如 [[CSL]万用皮肤补丁 (CustomSkinLoader)](https://www.mcmod.cn/class/883.html) 模组和 [LittleSkin - 国内最大第三方皮肤站](https://littleskin.cn)

> 通过这些第三方的加载方式,你甚至可以自定义披风。
## 材质包和数据包

从 Minecraft 的早期版本(Alpha 1.2.2)开始,*材质包* 作为一种可以使玩家自定义游戏画面与材质资源的 API 被引入游戏中。

通过材质包,玩家可以自定义物品、方块材质,游戏音效,GUI 风格等游戏外观内容,一定程度上极大丰富了游戏的艺术性质,给玩家们带来了更大的自定义空间。

材质包以 `.zip` 压缩文件格式分发,通常放置在游戏版本目录下的 `resourcepacks` 文件夹内。你也可以将其解压为文件夹放置在此处,Minecraft 同样会识别并加载。

在多人模式下,服务器端可以通过 `server.properties` 指定一个材质包链接。玩家连接时客户端会询问是否使用服务器材质包,在得到同意后会自动下载并安装。

*数据包**材质包* 一样,都是 Mojang 官方推出的用于丰富游戏内容的自定义方式,而数据包侧重的,是修改游戏的行为。

你可以使用数据包来修改游戏中各种战利品的出现概率,也可以修改各种物品的合成方式,还可以向其中加入编写好的指令来实现更高级的自定义行为。

数据包同样以 `.zip` 压缩文件格式分发,但通常放置在存档文件夹的 `datapacks` 文件夹中。你可以为每个存档加载不同的数据包,自定义每个世界的玩法。

根据材质包和数据包的加载方式我们可以看出,材质包是仅被客户端加载的,而数据包则仅会被服务端加载。

> 在 Minecraft 中,单人游戏其实是在本地同时启动一个服务端和一个客户端,因此会同时加载材质包和数据包。
材质包和数据包在制作时都需要指定支持版本,这指示了其兼容程度。如果在不支持的版本上加载可能导致其无法正常工作。

## 啥是 Mod?和插件有啥区别?

*模组*,又称*Mod*,即 *Modification* 的缩写,指对游戏本身的玩法或机制进行修改、增加,在各种游戏中均有类似的玩法。

而在 *Minecraft Java Edition* 中,Mod 通常代指 *Mod 加载器* 加载的后缀名为 `.jar` 的文件。一般放置于版本目录下的 `mods` 文件夹内。

在 Minecraft Mod 的发展历史中,Mod 加载器的更迭历史也十分丰富。从最初的 MCP,到沿用至今的 Forge,后起之秀 Fabric,还有昙花一现的 LiteLoader 等等。以后有机会我们也会试着撰写更详细的博文来介绍。

*插件*,又称 *Plugin*,与 Mod 类似,也是对游戏本身进行修改的方式,但在 Minecraft 中,插件往往指通过 *插件加载器* 用于 *服务端*`.jar` 文件。一般放置于服务器目录下的 `plugins` 文件夹内。

如果你有过架设 Minecraft Java Edition 的服务器的经验,那么你应该听说过 Bukkit、Spigot、Paper 等名字,这些都是插件加载器的名称。

由于服务端与客户端的差异,插件能够实现的修改范围比 Mod 要小很多,几乎无法实现与 GUI 或添加全的新物品或方块的功能,但提供了很多便于服务器管理的 API,所以大部分插件的核心不在于玩法,而在于服务器管理功能。

而对于 ~~牢玩家~~ 高玩来说,只使用 Mod 或只使用插件当然是无法满足的啦,于是便衍生出了 Mohist、CatServer、Arclight 等 *混合端*。这些混合型服务端同时支持一种 Mod 加载器和一种插件加载器。

## 光影是啥?

*光影*,源自于 *Shader*,即着色器。在游戏开发领域经常会有相关名词,其实它代表了游戏内光的渲染行为。

相信读者可能在某些视频作品中见到过绚丽的天空和光效,这都是光影的功劳,而要在游戏中使用光影,需要使用 *光影加载器*

最著名、使用率最高的光影加载器非 *OptiFine* 莫属了。但由于其较差的兼容性,经常会导致游戏出现问题,其它类似的光影加载器也多多少少有类似的兼容性问题。

在 Fabric 崛起之后,基于其提供的 Mixin 技术,出现了一个新的光影加载器 *IRIS*,它以较好的性能迅速吸引了许多用户,并且逐渐发展壮大,如今已经较为成熟。

最初 OptiFine 的安装方式和模组加载器的安装方式一样,需要通过对游戏本体的修改才能正确安装。但到了技术较为成熟的今天,大部分光影加载器都是通过 Mod 的形式安装的。

## 启动器、游戏本体与模组

许多新手最容易混淆的就是启动器、游戏本体与模组这三个概念。

Minecraft 与其他主机游戏不同,其并没有一键式的安装程序。一方面 Minecraft 的程序本体和其资源文件是分开储存的,必须要使用启动器这样的程序来组织和管理;另一方面 Minecraft 具有很多差别巨大的版本,需要启动器来进行安装管理。

实际上,Minecraft 的程序本体仅仅是一个运行在 Java 虚拟机上的 jar 文件。每个版本对应一个发行版的 jar 文件。

上文有提到,Mod 和插件本身也是 jar 文件,这与 Minecraft 的本体是一致的。

要完全搞清楚这些概念,只需要稍稍了解整个 Minecraft 的安装与运行流程即可。

首先,你需要下载一个启动器,不管是新的、旧的、国内的、国外的、官方的还是第三方的,都会提供一个叫做 *安装版本* 的功能。Minecraft 具有相当多不同的在这一步你需要选择一个你想游玩的版本来安装。

当你选择好版本以后,启动器会在指定的地方生成一个文件夹,所有的游戏文件都在这个文件夹中。大部分启动器默认生成的文件名称为 `.minecraft`。以 `.` 开头的 文件名 / 文件夹名 在大多数操作系统上表示隐藏文件,需要通过特殊配置方可查看。

安装游戏前,有些第三方启动器会询问你是否同时安装模组加载器,即 Mod Loader。此时你可以选择安装 Forge、 Fabric或其他受支持的 Mod Loader。

在一切准备就绪以后,登陆上你的微软账号,就可以点击启动了。

如果想安装模组的话,你需要下载对应版本的模组文件,放在版本文件夹下的 `mods` 文件夹中。

> 注意此处在下载模组时要擦亮眼睛,选择正确对应 Minecraft 版本和 Mod Loader 版本的文件。
## 整合包

整合包是社区作者们通过挑选、组合 Mods,对 Mod 的内容进行修改,制作专属的资源包和数据包并配置好后最终打包发布的游戏版本。

整合包的发布方式有很多,最简单的是整合包作者直接将整个游戏文件夹打包成压缩包进行发布,但这样最终形成的压缩文件会十分庞大,并且会违反 Minecraft 最终用户许可协议(EULA),于是社区作者们想到了更聪明的解决方式。

将所有 Mod 的版本信息列成一个清单,再将和所有配置文件打包在一起,安装时读取 Mod 列表并下载到版本文件夹中,并将配置文件复制到相应的位置。这就是目前主流的大部分整合包格式的工作原理。譬如 CurseForge 格式、Modrinth 格式、HMCL 格式、MultiMC 格式……

通过制定详细的整合包格式标准,各个启动器作者可以自行实现对各种整合包格式的支持。如今的整合包发布流程已经具有了完整的工具链。由于笔者缺少相关经验,这里不再过多介绍。

## 结语

亲爱的读者感谢您阅读到这里,相信您现在对于 Minecraft 已经有了一个大致的了解,赶紧启动 Minecraft 去体验一下方块世界吧!

如果对本文有任何疑问与建议,欢迎在评论区留言或者向我们发送 [GitHub Issue](https://github.com/GlobeMC/crashmc.com/issues)[电子邮件](mailto:[email protected]) 进行讨论。
11 changes: 0 additions & 11 deletions docs/blog/post1.md

This file was deleted.

0 comments on commit 06809e4

Please sign in to comment.