前言
从一份仍想回去的存档出发,重新理解 Minecraft 为什么能容纳如此不同的玩法、创作者与时代,并追问这些经验还能把我们带到哪里。
击败末影龙以后,你也许回到主世界,继续修一条还没通车的路。
路通了,又想把河对岸的村庄接进来;村庄接上了,发现仓库不够大;仓库扩完,远处那座山突然又适合修一条铁路。字幕已经滚过一次,眼前的事情却没有真正“结束”。
当然,也有人打完龙就删档重开,有人只打起床战争,有人十几年几乎没碰过生存,只在创造模式里盖建筑。Minecraft 奇怪的地方恰恰在这里:同一个游戏,可以被很多人拿去做完全不同的事,而且这些事情往往不是互相排斥的。
我一直想知道,为什么。
1从玩家到开发者
我从小学开始玩 Minecraft,初中折腾服务器和模组。后来因为想做自己的体素沙盒,我开始学 Java、LWJGL、OpenGL,又一路试过 C++、Rust,最后来到 C# 和 Unity。世界表示也从普通方块一路折腾到 Marching Cubes、Surface Nets 和更平滑的体素。
这个过程里,我重写过很多次。
每一次重写都会遇到一种很熟悉的诱惑:觉得上一次失败只是因为技术不够新、架构不够漂亮、语言选得不对。于是换一套技术,再做一遍。
但做得越久,我越觉得真正难复制的东西可能根本不在这里。
一个更快的体素引擎不会自动变成 Minecraft。更真实的物理、更漂亮的渲染、更复杂的角色、更强的 Mod API,也不会自动让玩家愿意在一个世界里待上几年。
于是问题慢慢从“Minecraft 是怎么实现的”变成了:
Minecraft 到底为什么会成为 Minecraft?如果今天还想创造一个新的沙盒世界,真正值得继承的究竟是什么?
这本书就是从这个问题开始的。
2不是 Minecraft 百科
这不是一本更新史,也不是一本开发教程。
我们当然会讲 Cave Game、Alpha、Mojang、微软、Java 与 Bedrock;会讲方块、生存、红石、世界生成;也会讲 Chunk、Tick、存档、网络和模组架构。
但这些内容不会因为“重要”就自动值得写。
真正想追的是它们之间的关系:为什么一种历史条件会留下某种设计习惯;为什么一种技术限制后来会变成玩家依赖的规则;为什么社区自己发明出来的东西,反过来又会改变官方对 Minecraft 的理解。
在后文里,有三个现象会反复出现:玩家会把一个随机生成的地图慢慢变成自己的地方,会把规则用出说明书之外的玩法,也会直接通过模组、服务器和工具继续开发这个游戏。它们是不是同一件事的不同侧面,又为什么能在 Minecraft 身上同时发生,是这本书想慢慢弄清的问题。
更完整的问题放在《这本书想回答什么》。
3四卷
第一卷 · 历史与商业——从游戏到世界。
从 2009 年的原型开始,看公开开发、玩家社区、模组、服务器、影像传播、公司化、微软收购和商业模式怎样一起把 Minecraft 推出一款普通产品的边界。
第二卷 · 游戏设计——Minecraft 的游戏语法。
回到玩家手上最普通的东西:一个方块、一次挖掘、一个夜晚、一张地图、一根红石线。为什么极少的规则能够支撑如此不同的目标?哪些自由来自系统本身,哪些来自玩家之间的约定?
第三卷 · 技术实现——方块世界如何运行。
打开机器,看无限世界、区块、存档、模拟、渲染、网络与模组怎样真的跑起来,也看二十年的兼容与扩展给这个世界留下了什么债。
第四卷 · 重新发明——下一代沙盒世界。
这一卷不再问怎样“重写 Minecraft”,而是故意换掉条件:Smooth Voxel、真实物理、车辆与机械、Avatar、VR、运行时 UGC、AI NPC……然后看看前三卷拆出来的那些关系,在新的沙盒里还剩下多少。
4怎样读
这本书主要写给两类人:已经很熟悉 Minecraft 的玩家,以及正在做游戏的人。
如果你只是想知道 Minecraft 为什么这么特别,可以从历史或设计开始;如果你本身在做引擎、网络、体素或 Mod,可以直接进入技术卷,再回来对照设计;如果你关心“下一个沙盒还能往哪里走”,第四卷会更接近这个问题,但最好先知道前三卷到底拆出了什么。
| 你更关心 | 建议入口 |
|---|---|
| Minecraft 是怎样长成今天这样的 | 卷一 · 历史与商业 |
| 为什么它这么耐玩、这么容易产生新玩法 | 卷二 · 游戏设计 |
| Chunk、Tick、世界生成、网络与 Mod 到底怎么工作 | 卷三 · 技术实现 |
| 如果今天重新创造一种沙盒世界 | 卷四 · 重新发明 |
具体的研究与引用口径放在《我们怎样研究 Minecraft》。它不是阅读前必须背下来的规则;遇到你怀疑某个判断时,再回来看看我们到底依据了什么就够了。
5带着自己的世界读下去
如果你是老玩家,我希望这本书最有意思的时刻,不是它告诉你一个你不知道的冷知识,而是它让一个你已经见过几千次的东西突然变得值得重新看。
如果你是开发者,我更希望它最后留下的不是“Minecraft 的十二条秘诀”,而是一种判断方法:哪些东西值得学,为什么值得学,又在什么条件下千万不要照抄。
而如果写到最后,我自己对 Minecraft 的理解也和现在不一样,那大概才说明这本书真的写出了点东西。