动词:一款游戏能压成一个词
你想做的那个游戏,如果只能保留一个动作,其他全部删掉,你会留下哪个?这个问题不是脑筋急转弯 —— 它就是你的游戏。马力欧是「跳」,传送门是「开门」,我的世界是「放和挖」。这一章讲清楚:为什么动词是内核,一个动词的深度从哪来,以及那个所有新手都想干的事 —— 加第二个动词 —— 该在什么时候干。
名词是包装,动词是游戏
让我们从一个很常见的对话开始。
「你在做什么游戏?」
「一个赛博朋克风格的黑客题材游戏。」
「玩家干什么?」
「……嗯,黑进各种系统,有点像。」
「怎么黑?」
「……」
那个「……」就是问题所在。「赛博朋克」「黑客」都是名词,它们描述了这个游戏是什么。但玩家坐下来之后,手指要做的事是什么?没人知道,包括作者。
而如果答案是「玩家在一个网格上摆放数据包,让它们绕过防火墙流到目标节点」—— 那就有东西了。那是一个动词,你能立刻想象出画面,甚至能想到第一个谜题该怎么设计。
因为玩家的时间几乎全部花在执行动词上。
一个 10 小时的游戏里,玩家看剧情可能 40 分钟,看美术是被动接收的,而那个核心动作 —— 他要做几千次到几万次。
做几万次的东西如果不好玩,别的东西再好也救不回来。反过来,如果那个动作本身就爽,玩家能忍受相当难看的画面(问问《我的世界》和《以撒的结合》)。
下面这张表把二十来款游戏压成了一个词。点任意一款,注意看第三行 —— 那个动词是怎么长出整款游戏的。
「跳」为什么能撑起四十年
值得单独看一眼马力欧,因为它反直觉。
「跳」听起来是所有动作里最贫瘠的一个 —— 你按一下,人上去,然后下来。能有什么深度?
但看看任天堂在这一个动词上挂了多少东西:
- 跳是位移:过坑、上台
- 跳是攻击:踩敌人
- 跳是交互:顶砖块、顶问号
- 跳是精度考验:落在移动平台上
- 跳是资源:在空中你失去了地面控制,所以每次跳都有代价
- 跳是评分:连续踩敌人分数递增,旗杆越高分越多
一个动词,六种角色。这就是深度的来源 —— 不是动作多,是同一个动作在不同情境下意味着不同的事。
深度是怎么来的:同一个动作,不同的最优解
这是本章最重要的一节。
很多人以为深度 = 操作复杂。于是他们加连招、加技能树、加十二个按键。结果做出来的东西不是有深度,是难上手 —— 这两件事经常被搞混。
一个动作有深度,当且仅当:在不同情境下,这个动作的最优执行方式不同,而且玩家能学会分辨这些情境。
拆开看三个条件:
- 有多种执行方式 —— 跳可以跳高、跳远、点一下小跳、按住大跳、在边缘起跳
- 不同情境下最优解不同 —— 低矮通道要小跳,长距离要助跑大跳
- 玩家能分辨 —— 他看得出「这是低矮通道」,而且看得出自己上次为什么撞头了
缺任何一条,深度就没了。缺第 3 条最常见也最隐蔽:你设计的策略差异存在,但玩家读不出情境,于是在他眼里全是随机的。
反例:一个没有深度的动词
假设你做了一个射击游戏,玩家的动词是「开枪」。你给了他一把枪,伤害固定,射速固定,无限子弹。
这个动词有深度吗?没有。因为不管面对什么敌人、什么距离、什么情况,最优解永远是对着敌人一直按。第 2 个条件不满足。
现在加一样东西 —— 只加一样:子弹有限,而且弹匣打空后要换弹 1.5 秒。
看看发生了什么:
- 该不该打完最后三发?(打完就要在最危险的时候换弹)
- 该不该提前换弹?(浪费子弹,但换在安全的时候)
- 面对一群小怪和面对一个大怪,节奏完全不同
- 「主动换弹」变成了一个需要读情境的技巧
一条规则,把一个没深度的动词变成了有深度的动词。而且你没加任何新按键 —— 玩家要学的东西没有变多,但要想的东西变多了。
当你的核心动词觉得「有点浅」,按顺序试这三个 —— 从最便宜的开始:
- 给它加一个代价(资源、冷却、风险、位移)。最便宜,效果最好。上面的换弹就是这个。
- 给它加一个修饰维度(力度、方向、时机、蓄力)。中等成本,见下一节。
- 给情境加变化(新的地形、新的敌人行为)。最贵,但也是可持续产出关卡的方式。
新手的本能是直接跳到第 4 个:加一个新动词。那通常是最贵、收益最不确定的选择。
动词的修饰:一个动作的多个版本
不加新按键,但让同一个按键产生不同结果 —— 这是性价比最高的深度来源。
还是用跳举例。同一个跳跃键,可以有这么多变体:
| 修饰维度 | 怎么做到 | 玩家要学的 |
|---|---|---|
| 按键时长 | 松手时砍掉上升速度(可变跳跃高度) | 点一下=小跳,按住=大跳 |
| 助跑速度 | 起跳时保留水平速度 | 要跳远得先跑起来 |
| 起跳位置 | 边缘起跳 + 土狼时间 | 踩到最边上再跳能多出半格 |
| 空中转向 | 空中加速度小于地面 | 方向要在起跳前就想好 |
| 落地时机 | 落地后短暂僵直 or 落地取消 | 连续跳跃的节奏 |
| 贴墙状态 | 贴墙时跳变成蹬墙跳 | 墙也是地面 |
六个维度,一个按键。玩家学会全部六项要花几小时,而这几小时里他一直在感觉自己在变强 —— 这正是你想要的。
一个实践上的小建议,会让你后面省很多事:把核心动词单独写成一个函数,而不是散在 _physics_process 里。
extends CharacterBody2D
const RUN_SPEED := 112.0
const JUMP_SPEED := 340.0
const GRAVITY := 1500.0
func _physics_process(delta: float) -> void:
velocity.y += GRAVITY * delta
velocity.x = Input.get_axis("move_left", "move_right") * RUN_SPEED
if Input.is_action_just_pressed("jump") and is_on_floor():
do_jump()
move_and_slide()
# 核心动词:单独一个函数,未来所有手感改造都发生在这里
func do_jump() -> void:
velocity.y = -JUMP_SPEED
现在 do_jump() 里只有一行。但到第 9 章结束时,它会长成十几行 —— 土狼时间、输入缓冲、挤压拉伸、烟尘、震屏全都挂在这里。
提前给动词留一个专属的位置,是让「后面能改」变得可能的第一步。如果这行代码埋在 _physics_process 中间的一个 if 里,你到时候会很痛苦。
第二个动词:什么时候加,代价是什么
你迟早会想加第二个动词。这不是坏事 —— 大多数好游戏有两到三个。问题在于时机。
加第二个动词的正确理由
只有一个正确理由:第一个动词已经被榨干了。
意思是:你已经用完了上面那三个杠杆(代价、修饰、情境),关卡设计开始重复,而你确实想不出第一个动词的新用法了。
如果你的第一个动词还没被榨干就加第二个,会发生一件很糟的事:两个都很浅。玩家学会了两个各有两三种用法的动作,而不是一个有十种用法的动作 —— 后者的乐趣要大得多。
- 「感觉有点单调」 —— 单调不一定是动词太少,更可能是情境太少。先试试杠杆 3(第 16 章讲关卡节奏)。
- 「别的游戏都有」 —— 别的游戏可能已经在这个动词上打磨了三年。
- 「我想到一个很酷的技能」 —— 那就单独记在纸上,留给下一个项目。这是最常见的死法。
加对了会怎样:一次好的爆炸
当第一个动词确实榨干了,加第二个的收益是乘法级的 —— 因为真正产生玩法的不是第二个动词本身,是两个动词的组合。
看《蔚蓝》:动词是「跳」和「冲刺」。听起来只是二加一,但实际产生的是:
跳 基础位移 冲刺 八方向的短距突进 跳 → 冲刺 跳到最高点再冲,够到最远的平台 冲刺 → 跳 贴地冲刺后起跳,超远距离 冲刺 → 撞墙 → 蹬墙跳 墙跳接续 冲刺撞到特定方块 → 冲刺重置 整个关卡设计的支柱 空中冲刺后落地前的那一帧 高手才用得出的「延长冲刺」
两个动词,七种以上的复合用法 —— 而且每一种都需要玩家自己发现,每一次发现都是一次成就感。
它能不能和第一个动词组合出「第三种东西」?
能 → 这是乘法,加。(跳 × 冲刺 = 一堆新东西)
不能,只是并列 → 这是加法,暂时别加。(跳 + 开枪,如果开枪时不能跳、跳时不能开枪,那就是两个独立的游戏塞在一起)
这条判据也解释了为什么很多游戏的技能树很无聊:技能之间只是并列关系,不产生组合。八个互不相干的技能,深度还不如两个能组合的。
怎么找到你游戏的动词
如果你现在还说不清自己游戏的动词,有三个可靠的办法。
办法一:观察你的手
玩一个和你想做的东西相近的游戏,五分钟,然后只回答一个问题:这五分钟里我的手指重复做得最多的是什么?
要具体到物理动作,不是抽象概括。「探索」不算,「按住 W 同时用鼠标转视角」才算。
办法二:删到只剩一个
把你想做的所有玩家行为列出来,然后一个一个删,每删一个问:这个游戏还成立吗?
删到删不动为止 —— 剩下那个就是核心动词。这个练习通常很快,而且结果经常出人意料:你以为核心是战斗,删到最后发现真正不能删的是移动。
办法三:看失败
问:玩家失败时,他是在哪个动作上失败的?
这个问题特别准,因为玩家会在核心动词上失败。马力欧的玩家死于跳,只狼的玩家死于弹反没按准,杀戮尖塔的玩家死于牌打错了。
如果玩家失败的原因不在你以为的核心动词上,那说明你的设计和你的意图脱节了。
比如:你以为你做的是一个关于战斗的游戏,但测试者全都死于掉进坑里 —— 那么你实际上做的是一个平台游戏,战斗只是装饰。
这时你有两个选择:承认它是平台游戏,把跳跃做好;或者改关卡,让战斗成为真正的挑战。但你不能假装没看见 —— 玩家的死亡数据不会骗人。
回到你的一页纸
上一章你写了一句话玩法。现在把它的动词单独拎出来,问自己三个问题:
- 这个动作,做得好和做得差,看得出区别吗?(如果看不出,玩家永远不会有「我变强了」的感觉)
- 它在不同情境下,最优做法一样吗?(如果一样,说明它还没有深度 —— 用那三个杠杆去加)
- 我能一口气想出这个动词的五种用法吗?(想不出五种,说明还没榨干,别急着加第二个)
第 3 个问题特别值得花半小时。拿张纸,逼自己写满五条 —— 你会发现前三条很容易,第四第五条要想很久。而第四第五条,往往就是你游戏里最有意思的那部分关卡。
本章小结
- 名词(题材、风格、世界观)是包装,动词才是游戏。玩家一辈子在执行的是动词。
- 深度 = 同一个动作在不同情境下最优解不同,且玩家能分辨情境。不是操作复杂。
- 加深度的三个杠杆,按成本从低到高:加代价 → 加修饰维度 → 加情境变化。
- 加第二个动词的唯一正确理由:第一个已经榨干。判据是两者能否组合出第三种东西。
- 写代码时给核心动词留一个专属函数 —— 后面所有手感工作都发生在那里。
「动词」在别的类型里长什么样:
- 卡牌:动词是「出牌」。深度不来自牌多,来自同一张牌在不同牌序下价值不同 —— 这就是「情境」在卡牌里的形态。一张「抽两张牌」的牌,在牌库前期和后期价值天差地别。
- 塔防:动词是「放置」。三个杠杆全都适用:加代价(造价 / 占地)、加修饰(朝向 / 升级路线)、加情境(敌人路线变化)。塔的种类是最后才该加的东西。
- 肉鸽:动词往往是「选择」(选房间、选道具、选升级)。它的深度完全来自第 2 条 —— 同一个道具在不同构筑里价值不同。如果一个道具永远该拿或永远不该拿,它就是废设计(第 6 章会给你一个真的检测器)。
- 模拟经营:动词是「分配」(时间、人力、土地)。它天然有深度,因为稀缺自动制造了情境差异。这类游戏的风险在反面:容易深到玩家读不懂。
- 叙事解谜:动词常常是「观察」和「组合」。最容易犯的错是让动词退化成「把所有东西点一遍」—— 那时深度归零,玩家在做的是穷举而不是推理。