数值关系与游戏曲线
Numeric Relationships & Game Curves
游戏中的数字只有相对于其他数字才有意义:250 点伤害对 25,000 HP 的怪是杯水车薪。Schreiber 与 Romero 把数值关系分为取舍关系 (Tradeoff) 与进程关系 (Progression),并用"曲线 (Curve)"——一种资源随另一种资源增加而变化的图——描述它们;常见形状有恒等、线性、指数、对数、三角数与定制曲线,F2P 游戏还会刻意使用成本混淆曲线(第 2 章 p.36–38,第 4 章 p.63–78)。
数字只在关系中有意义(第 4 章 p.63–65)
- 开篇引语:新手看满级好友在《魔兽世界》里打出夸张的伤害数字,但对照其面对的怪物 HP,这些数字是平衡的。
- 经验需求逐级翻倍时,必须与战斗、任务给的经验以及升级带来的 HP/属性/技能提升协同,升级才有意义。
- 没有角色等级的 FPS 进程在玩家技能上:怪物数量与 HP、地形难度、子弹与血包数量随玩家技能提高而收紧;单把枪通常不会变强。电竞团队游戏(《火箭联盟》《守望先锋》)局内不升级,但队伍之间的数字仍需相互对照。
- 平衡不只由数学决定,也由玩家对这些关系的感知决定:"这把剑相对伤害是不是太贵?""是不是好久没升级了?"——数字只与玩家脑中积累的预期相比较。
两类核心关系(p.64–67)
取舍关系:游戏要求玩家用一样东西换另一样。所有游戏至少有一种资源——玩家的时间;大多数有趣的决策都含某种取舍。判断"一击 50 伤害是否平衡"需要看:它在经济宏观规划中的位置、怪物要承受多少伤害、武器的威力区间、怪物护甲、相对位置(勉强命中的投掷物伤害低)、设计师希望遭遇持续几击。等比缩放不改变实际代价:把 250 金的"终极神剑"涨到 500 金、同时把所有金币奖励翻倍,玩家付出的时间与努力完全不变。
进程关系:本质上也是取舍——玩家放弃时间换取进展。四类:
| 进程类型 | 含义 | 对应的"关系" |
|---|---|---|
| 角色进程 | 角色通过玩家行动成长 | 角色/时间 |
| 玩家技能进程 | 玩家通过练习变强 | 玩家/时间 |
| 叙事进程 | 故事随行动或时间推进 | 叙事/时间 |
| 机制进程 | 玩得越久加入的机制越多,游戏更深更难 | 机制/时间 |
这些关系形成玩家能感觉到时机的模式("好久没升级了!"),并固化为主导类型的预设 (affordance)。
曲线(第 2 章 p.36–38;第 4 章 p.67–78)
"曲线"取数学含义:跟踪一种资源随另一种资源增加时如何变化;可能是直线、缓坡或起伏的山谷,也叫"坡 (ramp)"。数学上曲线就是函数,因此更精确的叫法是用两端命名,如"等级/经验曲线"(第 2 章脚注 4)。学习曲线指玩家需要多快学会;难度曲线可与之同义,也可指怪物相对强度、两个 PvP 竞技场的水平差等。资深设计师认得曲线形状,会有意识地按某种形状设计。F2P 游戏常见做法是在某个点把玩家"坡"走 (ramp the player out):难度陡增,只留下付费玩家,让产品经理聚焦核心付费群体(p.37、67–68)。
| 曲线 | 公式 | 书中例子 | 用途与注意 |
|---|---|---|---|
| 恒等 (Identity) | 某些版本《太空大战!》能量与护盾 1:1 随时互转;城里 1 金买 1 食物 | 两种资源完全等价时可考虑合并为一种;保留两种的理由:只能在城里买(地下城中 NPC 可能要 30 金一份)、题材上不能吃金子、只能买不能卖且食物会被消耗、同一资源对不同对象有不同曲线 | |
| 线性 (Linear) | 治疗术 5 MP 治 25 HP(1:5),有效 HP ≈ HP + 5×MP;每点伤害 100 金;"对巨人双倍伤害"加价 1000 | 恒等是 的线性;物品属性常按"每点 X 的价格"线性计价 | |
| 指数 (Exponential) | ;经验从 100 起每级翻倍;《炉石传说》每次被指定就翻倍攻击的随从 | 想快速变大且越来越快时用;会失控或让升级拖沓——多数策略游戏与 TCG 中翻倍效果稀少且受限(短时、带副作用、昂贵)。初版《万智牌》全套只有 Berserk 一张写着"double",长期被限制;《炉石》翻倍卡多,是因为场上随从脆弱、活不过几回合 | |
| 对数 (Logarithmic) | (即 ) | 等级相对经验:1→2 级 20 XP、2→3 级 40 XP | 指数的反函数,"严厉的收益递减";经验对等级是多对一 |
| 三角数 (Triangular) | :1, 3, 6, 10, 15, 21… | 《兔子与乌龟》《车票之旅》;《博德之门:黑暗联盟》经验曲线为纯三角数 | 增长介于线性与指数之间、玩家熟悉易懂,是最常用的递增收益公式;需要中间增速时先试三角数再改 |
| 定制 (Custom-Crafted) | 手工表格或分段公式 | 法术前三级 150 MP、第四级 300;见下例 | 标准曲线不合用时;也常见"前几级指数,之后改为手工"以抑制级间暴涨,并把数字取整到以 0 结尾便于记忆 |
曲线组合:Civilization: Revolution 的后期乘数(p.72):能力、城市升级、科技在终局产生巨大乘数,看似失衡,实为刻意设计——加速"胜负已分只是走过场"的终局并带来史诗胜利感;若乘数早出现,会导致过早结束与明显的早期优势策略。
二倍法则 (Rule of 2,Box 4.1,p.72):(归于 Sid Meier)不知道某个数该改多少时,就翻倍或减半,比一次次减 10% 更能看清该值的影响。这与 Schell 在 游戏平衡 中的"加倍与减半"及 Adams & Dormans"一次只改一处并夸大改动"一致。
定制曲线例 1:经验表从 13 级改用 1.5 倍(p.74–75)——左列每级需求纯 2 倍,右列 13 级起改为 1.5 倍(已逐行验算):
| 等级 | 纯 2 倍 | 13 级起 1.5 倍 |
|---|---|---|
| 12 | 102,400 | 102,400 |
| 13 | 204,800 | 153,600 |
| 16 | 1,638,400 | 518,400 |
| 20 | 26,214,400 | 2,624,400 |
定制曲线例 2:按"击杀所需次数"定价(p.75–76)——敌人大多 4 HP 时,伤害 2 与 3 都要两击,伤害 4 一击:
| 伤害 | 1 | 2 | 3 | 4 | 5 | 5+n |
|---|---|---|---|---|---|---|
| 价值/成本 | 1 | 2 | 2.5 | 4 | 4.5 | 4.5 + n/2 |
3 点比 2 点只多一点抗"−1 伤害"减益的余量;5 点以上几乎不比 4 点好。
定制曲线例 3:《Roll Through the Ages》的骷髅(p.76)——0–1 个骷髅无影响;2 个自己失 2 分(坏);3 个所有对手失 3 分(好);4 个自己失 4 分(很坏);5 个以上失去资源与回合(最坏)。非单调的函数配合"非骷髅骰最多重掷两次",使玩家在一回合内时而祈祷别再出骷髅(已有 1、3、4 个时)、时而盼望再来一个(2 个时),制造多次反转与紧张感。
xychart-beta title "Roll Through the Ages: 骷髅数与结果好坏 (示意, 0=无影响)" x-axis ["0-1", "2", "3", "4", "5+"] y-axis "对自己的好坏" -6 --> 4 bar [0, -2, 3, -4, -6]
(上图数值为示意:书中只给出"好/坏"的顺序,5+ 的 −6 表示"最坏",非原书数值。)
成本混淆曲线(p.76–78)
F2P 常让游戏内货币与真钱的换算难以心算:$2 = 15 单位意味着 1 单位约 13.3 美分,几乎没人会算 9 单位值多少、批量包和促销是否真的省钱;若改成每单位 10 美分就容易算,复杂的数学让玩家更少质疑价格。有的游戏大包单价反而更贵,利用玩家"买得多省得多"的信任:
| 单位 | 价格 ($) | 单价(书中) | 单价(验算) |
|---|---|---|---|
| 15 | 2 | 0.133 | 0.133 |
| 30 | 4 | 0.133 | 0.133 |
| 50 | 7 | 0.133 | 0.140 |
| 100 | 12 | 0.12 | 0.12 |
| 250 | 30 | 0.12 | 0.12 |
| 500 | 60 | 0.12 | 0.12 |
| 1000 | 140 | 0.14 | 0.14 |
| 3500 | 560 | 0.16 | 0.16 |
更进一步的是双重"可刷"货币(如金币与金条):两者都可购买也都可在游戏中刷到,只是一种稀有得多;物品同时标价"500 金币 + 3 金条"时,玩家难以判断真实代价与是否值得"充值补足",有钱又想要的玩家更可能直接买。课后练习 4.5 以《Gordon Ramsay Dash》为例:只需正好 500 补给时,最省是 2 × 250 补给 = 80 金,再用 35 + 35 + 10 金的组合买 80 金,共 **9.99 便宜;按书中价格表穷举验算)。
各经济常用的曲线(p.78)
| 经济 | 常见曲线 |
|---|---|
| 经验值 | 指数 |
| 经验等级 | 对数 |
| 物品价值 | 相对造成/抵挡的伤害线性,再按稀有度与效用手工调整 |
| 技能树与属性提升 | 恒等(1 点奖励点换 1 点技能) |
| HP 增长 | 线性加区间随机(如 5 级 +25 HP ±10%) |
| 怪物强度 | 线性 |
| 战利品掉落 | 线性,与怪物强度挂钩,带区间随机 |
怪物与物品的曲线很少平滑:设计师常手改表格加入尖峰与低谷——拿到神剑、遇到超强敌人往往是最好的时刻(参见 兴趣曲线 中 Schell 的"尖峰")。
凡事适度(p.78)
任何公式推到极端都会出问题;即使通常情况平衡,极端处也常坏掉。若只在边界失效,不一定要改通用公式,两种常见办法:为极端情况写特例,或设置硬上限阻止玩家到达极端。
课后练习要点(p.79–82)
- 找一款游戏的等级/经验表,用电子表格散点图加趋势线(线性、二次/三次多项式、指数)比较 ,分段拟合。
- 用 Machinations 建模资源流(见 Machinations 图示语言)。
- 放置游戏练习:初始 1 金/秒,六种金矿(+1/+5/+20/+100/+700/+10,000 金/秒,底价 15/100/300/2000/15,000/250,000),第 N+1 座价格 = 底价 × 向上取整(15 → 17 → 19…),用 900 行表格模拟 15 分钟并用公式写出"无代码 AI"。
原书问题
- p.70 "HP = 10MP (10 magic points get you 1 hit point)" 自相矛盾:按 , 表示 1 MP 换 10 HP;括号里的说法对应的是 。且与本节前文"5 MP 治 25 HP"的 1:5 例子也不同。
- p.71 经验公式写作 ,但正文说第一级需要 100 XP(Level = 1 时公式得 200),应为 ;同页称"9 到 10 级需要近 800 万 XP",而按该公式只需 (或 102,400),800 万对应的是图中刻度(接近 级别),文图不一致。p.70 的 一行误印为 "5 * 5 * 5 * 5 * 55 * …"。
- p.73 对数公式后写 "So, New Level = Current XP * 2",这是指数关系的误写;按其例子(每级需求翻倍)应为 。
- p.74 三角数公式写作 ,代入 得 0, 1, 3,与其列出的 1, 3, 6 错位一项;标准式为 。
- p.77 价格表 50 单位 $7 的单价应为 0.14 而非 0.133(7/50 = 0.14)。
- p.78 "Loot Drops: Linear, tied to create strength" 中 create 应为 creature。
与其他书的对照
出处
- Game_Balance_-_Ian_Schreiber_Brenda_Romero.pdf
- Ian Schreiber & Brenda Romero《Game Balance》第 1 版(CRC Press, 2022, ISBN 978-1-4987-9957-7)第 2 章 Critical Vocabulary 中 Curves 一节(印刷页 p.36–38)
- Ian Schreiber & Brenda Romero《Game Balance》第 1 版(CRC Press, 2022, ISBN 978-1-4987-9957-7)第 4 章 The Components of Progression—Curves(印刷页 p.63–84)