平衡锚点与数值粒度
Balance Anchors & Granularity
锚点 (Anchor) 是能与其他所有资源直接换算的那一个资源,通常就是胜负条件本身(RPG 的 HP、桌游的胜利点);先手工定下锚点的值,再让其余数字都相对它生成。没有共同货币时用比较锚点 (Comparative Anchor)(如属性总和)。配合数值粒度 (Granularity) 的选择与对系统交互的警惕,就能完成第一轮平衡(第 5 章,p.85–96)。
什么是锚点(p.85–87)
开篇引语(一位 30 年经验的主设计):"锚点基本上是游戏的 alpha 数字,其他所有数字都要向它看齐——通常是 HP 或货币,而用治疗术或血包可以拿钱买 HP,所以二者有时是一回事。"
第 4 章的关系都是两种资源之间的;三种以上资源之间如何平衡?以 HP、MP、攻击、防御四属性的 RPG 为例逐对分析:
| 关系 | 为什么都能折算成 HP |
|---|---|
| 防御 ↔ HP | 减少所受伤害=能多挨几下,等同加 HP |
| 攻击 ↔ HP | 杀得更快=敌人出手次数更少=每场少掉血,等同加 HP |
| MP ↔ HP | 治疗(MP→HP);攻击法术(杀得更快);增益/减益(打完状态更好)——都是把 MP 换成 HP |
HP 既是失败条件又与一切相关,所以物品或行动的价值归结为它对 HP 的净影响:比较治疗术与攻击法术,就看典型情境下不用攻击法术会多掉多少 HP、治疗术能回多少 HP;比较加攻击与加防御的装备,就看各自在典型战斗中省下多少 HP。现实中的锚点是货币:数百万种商品两两互换有万亿种汇率,用货币后每种只需一个价格("时间就是金钱"——基本需求满足后,时间比钱更重要)。
用曲线缩放锚点:武器价格表(p.88–90)
设定每点 HP(伤害)值 10 金、每件武器比上一件强 25%(写作 125% 方便乘法);灰色格子为手工输入(价值/HP、提升率、初始伤害),其余由表格生成——便于只改几个数就整体重平衡,也减少手输错误。成本以最大伤害为基础(也可用平均或最低伤害)。
| 武器 | 伤害区间 | 生成成本 | 取整后 |
|---|---|---|---|
| 剑 | 5–10 | 100 | 100 |
| 剑 +1 | 6–13 | 125 | 125 |
| 剑 +2 | 8–16 | 156 | 160 |
| 剑 +3 | 10–20 | 195 | 195 |
| 特殊之剑(尖峰) | 10–50 | — | 500 |
| 剑 +4 | 12–24 | 244 | 245 |
| 剑 +5 | 15–31 | 305 | 305 |
| 剑 +6 | 19–38 | 381 | 385 |
| 剑 +7 | 24–48 | 477 | 480 |
| 剑 +8 | 30–60 | 596 | 600 |
生成成本 (按未取整的最大伤害 × 10 计);伤害区间也是逐件 ×1.25 后四舍五入(已逐行验算)。尖峰 (peak):特殊之剑每点 HP 的价格合乎规则,但伤害超出 25% 的增长轨道,可放在商店或作为远早于 +8 剑的稀有掉落;高价也提高回售价(通常为买价一半)。武器、角色、敌人都按同一轨迹增长会使挑战恒定而无聊,尖峰对防止厌倦至关重要。
flowchart LR A["设定锚点的值: 10 金/HP"] --> B["设定提升率: 125%"] B --> C["设定起始伤害 5-10"] C --> D["表格生成伤害区间与成本"] D --> E["取整 (方便玩家心算)"] E --> F["手工加入尖峰"] F --> G["试玩后只改输入格重平衡"]
技能型游戏的锚点:《DOOM》(p.90)
1993 年《DOOM》的 8 种武器没有价格,锚点仍是 HP(怪物 HP 按武器伤害设定;死斗中 HP 归零对手得一分)。John Romero 用弹药、离玩家的距离、装弹/射击时间、在关卡中的位置(去拿这把枪还是去对面拿护甲?)等因素区分武器:双管霰弹枪伤害高但装弹慢、近距离最强;火箭筒远距离伤害惊人但有爆炸半径,近距离会炸到自己——因此拿到新武器后旧武器不会过时,而这在角色进程型游戏里通常是刻意设计的。
比较锚点(p.91–92)
起始角色、种族与职业之间没有共同货币时,按玩家预期定一组初始数字、求和、以总和为锚点设计其他职业:
| 属性 | 战士 | 法师 | 忍者 |
|---|---|---|---|
| 力量 | 80 | 40 | 60 |
| 智力 | 30 | 80 | 60 |
| 敏捷 | 50 | 40 | 80 |
| 灵巧 | 60 | 50 | 70 |
| 体质 | 85 | 60 | 40 |
| 魅力 | 12 | 80 | 40 |
| 合计 | 317 | 350 | 350 |
战士偏低的补救:认定体质(关联 HP 成长)本身更值钱;给额外能力;给更低的经验曲线(早期 RPG 常见,现在少用);最简单是上调其属性。属性总和不必完全相等——Brenda Romero 正在做的一款游戏有 13 个角色,总和差异很大,用其他方式补偿;过了属性总和这一步,比较锚点就只剩设计直觉(如《文明:变革》各文明以各自方式超模的非对称设计,与 PC 版更对称的《文明》不同,但同样成立)。
附加效果的定价(p.92):双倍伤害、对某类敌人暴击、全伤害抗性、装备时缓慢回血等,通常按原价的百分比加价,或用稀有度、冷却时间抵消(如"命运之剑" 50,000 金,带暴击的版本 100,000 金);研究同类游戏如何为同种附加效果定价,看是否存在通行的数学模式(详见第 23 章)。
系统之间的交互(p.92–94)
大型游戏常把战斗、物理、探索、经济、对话、叙事等系统分开设计和平衡,直到 alpha 才第一次合在一起——这时资源跨系统连锁,线性、指数、三角等关系互相叠加或抵消,进程可能被大幅改变,有些交互直到上线才被发现。
| 案例 | 交互 | 结果 |
|---|---|---|
| 《雷神之锤》火箭跳 | 火箭的范围伤害 + 物理击退:对脚下开火同时起跳被推得更高更远 | Romero:"不是计划中的,它实际上打破了所有关卡原本的玩法";收益远大于自伤,现已成为 FPS 标配 |
| 《雷神之锤》兔子跳 | 跳跃中左右转动鼠标,角速度转化为前进速度(Quake 的 bug 引起的涌现行为) | 正常移动 320 单位速度,兔子跳可达 3–4 倍;因需要熟练度,反而增加了竞技性 |
| 《Ravenwood Fair》(2010)收入腰斩 | 测试期金币掉落很慷慨;上线约两周后调低,收入骤降超过 50% | 玩家用大量金币买建筑,建筑要用稀缺的其他资源"尾款 (balloon payment)"才能完工,否则一直是木架子——玩家为了美观花真钱补尾款;金币少了,买的木架子少了,付费也少了。改动被回滚,金币保持慷慨 |
粒度(p.94–96)
粒度指数字之间的间距:太细像细沙,太粗像巨石。
| 等级 | 经验(左) | 经验(右,×100) |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 1 | 100 |
| 3 | 3 | 300 |
| 4 | 6 | 600 |
| 5 | 10 | 1000 |
| 6 | 15 | 1500 |
两套系统按比例完全相同(若经验奖励也 ×100),但右边粒度更大,留出平衡与扩展空间。
| 问题 | 表现 | 对策 |
|---|---|---|
| 粒度太低(间距不够) | 伤害 1–10 的 10 把剑之间塞不进新剑,除非引入小数伤害与小数 HP;对 TCG、定期出资料片的网游尤其致命——限制设计空间 | 用 10–100 或 100–1000 代替 1–10(敌人 HP 同比放大),预留插入空间 |
| 粒度太高(数字过大) | 百万 HP、上万伤害时除以 100 或 1000 毫无损失;数字大到失去感知意义;桌游难以计算;低端数字变得微不足道 | 去掉无意义的位数 |
| 审美 | 小数、分数比整数难;拿到 100 金比 10 金更兴奋,1000 金更甚 | 乘到整数;"加个零"即弹珠台数字 (pinball numbers)——弹珠台每代都多加几个零让分数更刺激 |
完成第一轮平衡(p.96)
第 3 章定宏观骨架(见 内部经济 中 Schreiber & Romero 一节)→ 第 4 章选进程曲线(经验指数、等级对数、物品定制……,见 数值关系与游戏曲线)→ 本章找锚点(精确或比较),用它扩展广度(职业、《DOOM》式武器)或深度(不断增强的物品、怪物、效果)。作者推荐研究《暗黑破坏神》系列的武器与《魔兽世界》《守望先锋》的角色平衡——暴雪资源充足、命中率高,数据在网上也有详细记录。
课后练习:街机游戏找锚点(p.97–98)——以《超级马力欧兄弟》为例,命、金币、时间、敌人都指向分数,因此分数是天然锚点:
flowchart LR C["金币"] -->|"100 枚 : +1 命"| L["命"] C -->|"1 枚 : 200 分"| S["分数"] T["时间"] -->|"剩余时间换分 (书中: 1 : 100)"| S E["敌人"] -->|"1 个 : 100-1000 分"| S E -->|"碰到 -1 命"| L T -->|"超时 -1 命"| L L -->|"失命重置关卡"| C
原书问题
- p.89 称价格"四舍五入到最接近的 5",但表中 156→160、381→385、477→480、596→600 都是向上取到 5 的倍数(最接近的 5 应为 155、380、475、595);按表实际做法是向上取整。p.90 图的纵轴标为 Damage,画的却是成本(0–700)。
- p.97 称《超级马力欧兄弟》剩余时间"每单位 100 分";初代 SMB 关末每单位剩余时间为 50 分(见 Super Mario Wiki "Super Mario Bros." 计分说明或实机)。
- p.92 "a cool-own time" 应为 cool-down。
与其他书的对照
出处
- Game_Balance_-_Ian_Schreiber_Brenda_Romero.pdf
- Ian Schreiber & Brenda Romero《Game Balance》第 1 版(CRC Press, 2022, ISBN 978-1-4987-9957-7)第 5 章 Finding an Anchor(印刷页 p.85–100)