Minecraft 设计思想

体素作为设计原语

1 米立方体同时服务建造、走路、打架和红石,因为空间是离散、可破坏、可放置、可计数的。世界即库存;体素不是美术风格,是度量衡。

本章命题:Minecraft 的设计原语不是方块贴图,而是那套一米见方的整数网格。世界被切成可破坏、可放置、可计数的格子之后,建造、导航、战斗与红石才说得上同一种话。原语若只在画风里,换皮就该杀死它——资源包换过十几年皮,游戏还是它。

1问题

「两格高留门。」「坑挖三格,跳不出来。」「火把隔四格插一根。」——两个玩家对着同一座没盖完的房子说话,不需要打开任何编辑器,不需要截图比划。这些口令全是整数;错也是整数的错,能用手指着那一格复述:门矮半格就是过不去,坑深两格就是爬不上来。

外行听见的往往是这套口令的贬义版:方块游戏——穷、老、像积木。这个评价假定了一条等式:多边形越多,游戏越高级。本章要把这条等式拆掉,然后回答一个更要紧的问题:1 米立方体凭什么同时服务建造、走路、打架和红石?答案不是「简单所以流行」,而是一套度量衡的胜利。后文所有「Minecraft 味」的判断——生存的节奏、红石的语法、模组的边界——都要回到这套度量衡上领取单位。

2「方块游戏」为什么不是贬义

贬义的潜台词是:方块等于低多边形等于简陋。可只要动一下手就能发现,玩家嘴里的「方块」和屏幕上的贴图根本不是同一个东西。

最干净的反例是换皮。资源包把默认的 16×16 像素贴图换成 64×、128× 的手绘风,光影模组给整个世界加上光线追踪——皮换了十几年,玩家口头说的还是「那一格」。门还是两格高,走廊还是一格宽,火把还是插在格子上。如果原语真是像素风格,高清包早该把游戏变成另一个东西;它没有,它只是让同一套格子好看一点。

更硬的证据在碰撞,不在贴图。你看见的角色和你撞到的角色不是同一个尺寸。视觉上的 Steve 有皮肤、有动画、有不同的身材预设(Bedrock 版的角色创建器甚至提供四种高矮),但真正参与游戏运算的是一只宽 0.6 米、高 1.8 米的碰撞箱1。你能不能钻过那条一格宽的缝,不看皮肤看箱子;箱子对齐的是网格。美术在表演,规则认的是格子。

所以「方块」这个词里,真正承重的不是 16×16 的像素,而是三件事:空间被切成了整数格;每个格子有地址;你的身体和工具都按格计量。像素是皮肤,网格是度量衡。把 Minecraft 收成「马赛克美学」,等于把度量衡收成字体。

「体素」(voxel)是「体积像素」的缩写:三维空间里的一个格子,二维像素的立体版。本书说「体素」时,指的可操作网格,不是某种渲染技术。

3离散空间:用精度换语言

连续空间把位置写成实数:你要决定对准哪一个无限小的点,别人要猜你对准的是哪一个。离散空间把位置写成整数:世界是一个三维数组,每一格有地址,地址能说、能写、能截图、能在语音里喊。Java 版按下 F3、Bedrock 版打开显示坐标,看见的不是调试彩蛋,是这套地址被做成了第一等公民2。坐标的单位就是一格,一格被当成一米。

这场交换付出的是表达力。你画不出一个真正圆的圆,造不出一条真正斜的斜坡;楼梯、台阶、栅栏、雪层占不满一格,却仍吸附在格上——它们细化度量,不废除度量。曲面被拒绝了。

拒绝换来的是组合。同样的格子可以是墙、是台阶、是红石的通路、是把怪物卡死的坑——组合不需要新工具,需要的是同一套加法。儿童能学会这套空间语言,不是因为规则幼稚,而是因为加法和口令用的是同一个单位。负担在表达力的另一头换成了整个社区共享的语法:一个说法只要成立一次,就对所有人永远成立。

还有一个常被漏掉的细节:粒度不是随便选的。把一米再切十刀,圆会好看,口令会变贵——「两格高留门」变成「二十格」,整数还在,手指已经比划不动;库存也会跟着胀破,一座小屋的造价从几十个方块跳到几万个。把格子放大到两米,0.6 米宽的人变成永远偏瘦的虫子,一格宽的走廊变成大厅。一米格刚好卡在人体上:门两格,身量一格出头,跳一格出头,一格宽的通道能走也能失足。这套单位不是渲染精度的副产品,是贴着玩家的身体和动作切出来的那一刀。换分辨率等于换语言——你可以换材质,不能偷偷换格子的大小,还假装玩家在说的仍是同一种话。

这里有一刀必须切开,否则后文会把玩家也写成方块。**世界是离散的,人不是。**玩家是一个连续移动的碰撞箱,在格子上滑动、起跳、擦边:宽 0.6 米,所以一格宽的走廊能过、一格宽的洞也会掉下去;跳跃高度约 1.25 格,所以一格的台阶迈得上、两格的墙就得搭;潜行把身量收进 1.5 格,还附带「不会从边缘摔下去」的保险——向外悬挑盖房的那只手,靠的是这条碰撞而不是胆量1。游戏的真实规则发生在连续空间里,展示和交流发生在离散格子上,两套坐标之间的换算,玩家在几百小时的坠落与擦边中自己完成了。可以说 Minecraft 同时活在两个空间里:碰撞是流体,语言是晶体。

格子也不是死的。半砖把一格切成上下两半,楼梯再切出一道折面,雪能一层层叠到八层,蜡烛一格插四根,栅栏占一格却让玩家过不去——这些「不满格」的方块全部吸附在格子的细分刻度上,细化度量而不废除度量。它们是整数语言的方言:方言丰富,普通话不变。

4世界即库存

网格只是把空间切成格子;Minecraft 迈出的下一步才是它真正的原语:格子里的东西可以被拿走,也可以被放回来。

可破坏。 世界的一部分离开原位,变成你能带走的东西。破坏不是特效,是搬运的开始。在一大批游戏里,「摧毁场景」只是物理引擎的表演,碎块落地即蒸发;在 Minecraft 里,你敲掉的每一块石头都进了口袋。

可放置。 口袋里的东西回到世界,成为别人(或者过一会儿的你)还能再挖的东西。建造没有单独的编辑模式,没有「现在进入创造」的仪式——手还是那只手,挖和放是同一个动作的两个方向。

可计数。 每格一样,于是世界可以被数:一组 64 个,仓库里几箱铁,预算能算、家底能数。「资源」在这个游戏里不是进度条上的一个数字,是占用空间的具体格子。你可以看着一座山估出它的开采价值,因为单位统一。

这三件事合起来,是卷一起源章留下的那句更硬的话的机制版:世界即库存。地上的方块和背包里的方块是同一种实体的两种位置;你不是在「收集资源去升级角色」,你是在把世界从一个地方挪到另一个地方。角色几乎透明——没有技能树,没有职业——强是因为你改过地形,不是因为你升过级。库存因此可以理解为世界的缓存:你随身背着的,是你已经改造的那一小块世界。

把它和最常见的「资源采集」对比,才能看清这个设计的分量。大多数游戏的资源点是自动售货机:挖掉一座矿,过一会儿原位再长出一座——世界是消费品,玩家的劳动不留痕迹。Minecraft 的世界里,你挖掉的那座山就是没有了:豁口留在那里,直到有人填上它。于是「进度」不再是角色面板上的数字,而是地貌本身——一条修好的路、一片清空的林场、一座填平的湖,都是不可回滚的劳动。世界即库存还有后半句:世界即进度条。这也是为什么玩家的存档舍不得删:删掉的不是几十小时的进度,是一片只认得你的地。

5一套度量压进四种玩法

现在可以回答开头的问题了:为什么同一套格子能同时服务这么多玩法?因为四种玩法用的是同一个单位制,而单位统一意味着所有经验可以互相兑换。

建造。 门是 1×2,楼梯级高半格,屋顶的坡度用整数格谈。建筑圈甚至发展出了自己的比例学——「柱子间距四格显得庄重,三格显得密」——整套理论不需要图纸软件,语音里就能教。

导航。 世界大到没有尽头,玩家的应对是把它整数化:家在出生点往北三百格,堡垒在坐标负二百。地图、坐标显示、信标光柱,都是给这套口述导航系统配的公共设施。走了多远、还差多远,全是减法题。整数地址还养出了一整种玩法:远征。既然「很远」可以用格数明码标价,就有玩家专门出发去十万格外看世界的尽头,把沿途坐标写成日志回来连载——距离在这里不是加载屏幕,是可以被计数、被炫耀、被写成故事的资产。

战斗。 这是最不像「格子游戏」的一层,但它照样按格算账。你的碰撞箱决定你能从哪里射箭、躲进多窄的缝;击退把对手推出去几格,摔落伤害按格计价,TNT 的爆炸半径、苦力怕的起爆距离、弓箭的抛物线提前量,全部是格子上的心算。老玩家的「手感」,一半是对这套空间计量的肌肉记忆1。

红石。 信号走 15 格衰减,中继器一档一整刻,活塞推 12 格拉 0 格。红石之所以能被写进教程、画进图纸、在论坛上被复现,正因为它的每一个参数都是格子和刻这些整数单位——它是第 7 章会立起来的「可误用系统」(见《红石:把物理做成编程》),而可误用的前提是可复述,可复述的前提是单位统一。

一套单位贯穿四种玩法,效果不等于四项相加。建造的人顺手懂了地形,赶路的人顺手懂了距离,打架的人顺手懂了空间,玩红石的人把整套语法用成了编程语言。知识在玩法之间免费流通,这是任何「建造归建造、战斗归战斗」的模块化设计买不到的。

网格甚至管到了世界之外。库存是格子(背包一排九格,箱子二十七格),合成是格子(2×2 随身、3×3 上工作台),地图摊开还是格子——界面没有发明第二种空间语言,它把世界用的那套直接搬进了菜单。数据层同样整数化:光照有 0 到 15 的等级,怪物的刷新规则能用一句「光照低于 8 的地方会刷怪」说清,生物按格判定碰撞、按格计价坠落。世界、界面、规则三层说同一种语言,玩家才可能用一个脑子装下整个游戏——这份「装得下」,正是后面一切涌现与误用的前提。

6对照:连续空间的沙盒得到什么、失去什么

把对面请上台,判断才站得稳。连续空间的沙盒不缺好产品:GMod 给你一整个物理游乐场,钉子、绳索、气球、道具,想怎么搭就怎么搭;Dreams 给你一套雕塑级的创作工具,曲面、布料、逻辑件,做出来的是别人一眼认不出的形状。

它们得到的东西 Minecraft 真没有:有机的曲面、自由的形状、「只有我做得出」的作品。付出的是同一样东西:可复述性。GMod 里的机械全靠每次现场拧,Dreams 里的作品要开编辑器才能讲清,它们的语法长在工具层,不长在玩家的嘴上。你没法对朋友喊出一句「三格高留门」让他把 GMod 里的装置修好——因为那里没有「格」。

还有一层更深的差别:连续沙盒需要先学工具再谈创作,工具越强,门槛越高,作者和观众分得越开。Minecraft 把工具藏进了那只手里——没有「进入编辑模式」这个动作,挖与放本身就在创作。代价是天花板低了(做不出有机曲面),回报是作者和玩家没有分家:每个会玩的人都会造,每个会造的人都能教。

模组生态是这套原语最大的受益者,只是好处藏得深。工业模组加进来的发电站、魔法模组加进来的祭坛,全部默认一格一米——它们没有带来第二套空间语言,而是把新名词登记进旧语法。这就是为什么几十个模组能叠在一张地图上互相咬合:发电机能给机器供电,机器能排在同一格的网格上,玩家在语音里照样用「那边三格」指挥一切。第 13 章会把这一点展开成模组方法论:继承原语的模组免费获得整个社区的语法,另起炉灶的模组只能自建词汇表——前者构成生态,后者构成孤岛。

这个对照也是本章命题的证伪装置:如果有一天某个连续空间的沙盒长出了自己的「三格口令」文化——玩家用它口述建造、口述机关、口述战术,像 Minecraft 玩家一样不借助截图交谈——那么「离散才有社区语法」就是错的。这条文化至今没有在任何连续空间沙盒里出现,观察十几年未变。

一格一米

地基空间离散化 → 每格有地址 → 身体与工具按格计量 → 全部玩法共用一套单位 → 社区获得可复述的公共语法

拿掉这一条会怎样:换掉网格,留下方块的画风,得到的是一个贴图很粗的普通游戏——建造失去口令,红石失去图纸,存档失去被人肉复现的能力,Wiki 上一半的机制描述失效。卷四讨论「重写时什么必须保留」时,这套度量衡排在不变量的第一位(见《必须保留的设计不变量》)。

7这一章留下什么

  • 爱好者:你嘴里说出的每一句「三格」「两格」,都是这套原语在你身上说话——玩了这些年,你已经用它思考空间了。
  • 开发者:能抄走的是「离散度量即社区语法」:空间单位要与玩家的身体和动作对齐,而不是与渲染精度对齐,单位统一的知识才能在玩法间免费流通。抄不走的是二十年围绕这套单位长出来的口头语、教程与 Wiki——换单位等于换语言,存量知识一夜清零。

注释

  1. Minecraft Wiki,《Player》(碰撞箱宽 0.6、高 1.8,潜行收至 1.5;跳跃高度约 1.25 格;生存模式触及距离 4.5 格),minecraft.wiki,检索于 2026-09-18;见 https://minecraft.wiki/w/Player ↩ ↩2 ↩3

  2. Minecraft Wiki,《Block》(一个方块体积为一立方米;世界由方块网格构成),minecraft.wiki,检索于 2026-09-18;见 https://minecraft.wiki/w/Block ↩

On this page