手工关卡是负债,不是资产
过早设计锁定"是怎么发生的,以及为什么 Dead Cells 那类"宏观约束 + 微观随机"的管线能把密度变成参数。
Daniel Cook 在 Goodbye Handcrafted Levels(2010)里交代了《Steambirds Survival》为什么放弃手工关卡,他用的词我觉得是整个关卡设计领域最被低估的一个:premature design lock-down(过早的设计锁定)。
机制是这样的:关卡一被手做出来,设计就改不动了。不是因为文件锁住了,而是因为改一个手摆的关卡等于重做它,于是所有人本能地保住已完成的摆位,把设计决策冻结在最早的那个版本上。他把手工关卡直接定性为 static disposable content —— 一次性静态内容:投入最大、最难改、上线即开始贬值。
对照数字也很实在:他给的工作室常态是"20 个昂贵关卡"这一档投入,而《Steambirds Survival》换成算法波次之后,用 24 种初始战机配置的组合 换到了"几十到几百小时"的重玩价值。代价他写得同样明确:丢掉精确的叙事节拍和敌人摆位。
我认为这笔交易在多数项目里划算,但"丢掉叙事节拍"这一项要提前跟团队讲清楚,否则它会在后期变成一句"为什么这里的节奏不对" —— 而那是设计选择,不是 bug。
生成不是二选一,是三层约束
Sébastien Bénard 讲《Dead Cells》的随机地图(indienova 授权编译版,原文 2017)给了一条很坦诚的路线:他们先试全手工,因为团队规模和周期在 2015 年初被迫放弃;转成纯程序化之后,问题立刻变了 —— 游玩时长上去了,但空间逻辑混乱、难度曲线失衡。最终落点是"宏观蓝图约束 + 微观模块随机",分成六段:世界基调与动线 → 带多组开关属性的预制房间 → 以大关卡为单位的节点拓扑(含总长、关键房间配额、探索密度)→ 逐格抓取并带回退重试 → 敌人按间距/平台限制实例化 → 战利品开放配置接口。
这篇里我最想抄的是那两个可比数字:《Spelunky》用 4×4=16 房的网格;《Dead Cells》以 250 个战斗单元为基数,"每 5 个地图块放 1 个敌人"就得到 50 个敌人。
也就是说,密度变成了一个比值参数,而不是"感觉不够就多摆点"。一旦它能被写成比值,它就能被讨论、被回归、被调;否则关卡调整永远是某个人的手感。我自己现在把这类比值叫"关卡预算表"——它和性能预算是一回事:没有预算的调优就是瞎摆。
"布局就是玩家的教程"
这句口号出自育碧关卡策划的一次分享(中文整理稿,2016,Teddy Dief / Jolie Menzel 与 Harrison G. Pink),它和我另一篇写 1-1 的观点一致,但给了可执行的五步:
- 明确目标人群与预期情绪;
- 把关卡拆成互动单元,并画出强弱起伏曲线;
- 找非职业玩家实测,记录迷路点与滞留区;
- 每次只调一个流速节点;
- 用固定符号植入隐藏资源。
第 2 条("节奏 = 随时间变化的体验强度",高压战后必须放安全缓冲带)是最好写也最容易被忽略的一条。第 4 条我认为是全部经验里唯一真正难的:一次只动一个变量,否则实测数据无法归因 —— 而这正是我平时写代码调试时的习惯,套在关卡上一样成立。第 3 条最贵,因为"找人实测"意味着排期里要有找人和改的两段时间。
同一篇还提到动线要混用直线/回环/发散,并用视角转换与垂直落差去打断行走疲劳 —— 这是把"玩家会不会走累"从感觉问题变成了几何问题。
Dana Nightingale(Ubisoft《Steep》/《Riders Republic》关卡)那次分享的中文整理(腾讯新闻刊出的编译稿,2025-06)在组织层面补了一刀:团队十年间从 12 人扩到约 26 人,改用"map lead + 专项专家"的分工,并取消阶梯式排期,改成首席关卡 + 战斗设计 + 技术关卡主管三方联合审查、提案人当场辩护。教学同样不用强制 UI,靠分层环境叙事、灯光导向、affordance 判断和 SFX/VFX(机械异响、环境微粒)做隐性引导。
那句"三方审查"对单人开发者也有用:你只有一个人,所以要把三种角色拆成三次独立的 pass。 同一次修改里既当关卡又当战斗又当技术,等于没有评审。
失控常常是分工问题,不是审美问题
云风在 GDC China 2014 见闻(2014)里给了两个我认为是中文语境里最好用的对照。一个是国外团队可以"10 个人 8 个月"只磨一个作品,而国内环境不允许这种节奏。另一个更扎心:他自己做 MMO 时想在单人副本里改善游戏性,因为系统策划与数值策划职能割裂,导致关卡节奏失控,最后没做出满意的效果 —— 他强调战斗与探索模块的自然切换才是节奏。
也就是说,那次的失败不是没人有审美,而是没有任何一个人同时掌握节奏和数值,于是没人对"这一分钟什么感觉"负责。这个教训放在全栈身上就是:你的引擎、玩法、数值都能改,所以你就是那个联合审查,不要指望分工来替你发现节奏问题。
我会照做的四条
- 给手工内容标"锁定成本"。做完一关先问:改它要多久?如果答案接近重做,那它就是负债,先别做。
- 把密度写成比值参数(房间数、敌人配比、探索配额),不接受"再多摆点"。
- 一次只调一个流速节点,否则实测数据不能归因。
- 一个人也要分三次 pass 审:关卡视角、战斗视角、技术视角分开跑。
参考来源
- Steambirds Survival: Goodbye Handcrafted Levels — Daniel Cook, Lostgarden(2010)
- Dead Cells 的随机地图生成 — Sébastien Bénard(Motion Twin,2017;indienova 授权编译版,英文原站当时不可达)
- 育碧关卡策划讲解:全心投入设计关卡 — GameRes 整理(2016)
- 如何集工作室之力设计好的关卡(GDC / Dana Nightingale) — 中文编译稿(2025-06)
- GDC China 2014 见闻 — 云风(2014)