引言:为什么游戏需要数值分析
一款游戏让人玩得"上瘾"还是"骂娘",玩法只是表象,数值才是骨架。同样一个"骑士打哥布林"的场景,攻击力 10、防御力 5 还是 100、5,体验天差地别——前者是"互砍三回合"的紧张博弈,后者是"一刀爆头"的索然无味。数值设计的目标,是让玩家在每一次决策里都能感到选择有重量、成长有曲线、对抗有反馈。
本文从三个最经典的子领域入手——攻防公式、卡牌对战策略、RPG 成长曲线——把它们背后的数学拆开来看。所有公式都来自实战项目(《暗黑破坏神》《魔兽世界》《炉石传说》《精灵宝可梦》《最终幻想》等),而不是教科书的玩具。
一、攻防公式:把伤害变成可调的旋钮
"打了 100 点伤害"听起来很简单,背后其实在回答三个问题:
结算公式
:攻击 / 防御如何相互抵消?
边际收益
:堆 100 点防御与堆 1000 点防御,价值差几倍?
数值膨胀
:玩家从 1 级到 60 级,输出会涨多少倍?设计师如何避免后期"数值爆炸"?
1.1 减法公式:最朴素的对抗
最早期的网游(如《传奇》《奇迹 MU》)几乎都用减法公式:
\text{Damage} = \max(\text{ATK} - \text{DEF},\ 1)
它的优点是直观——玩家看到"我攻击 200,对面防御 150,应该打 50"——心算就能验证。但它有一个致命缺陷:边际收益不连续。当 ATK ≤ DEF 时伤害恒为 1,这就出现了"装备压制"——高防御一方完全免疫,低防御一方瞬间被秒。这种断崖式的对抗体验在 PVP 中尤其糟糕。
图 1:减法公式存在 ATK=DEF 处的"硬截断",比例公式则在全程平滑下降,永远不会归零。
1.2 比例公式:暴雪的经典解法
《魔兽世界》《暗黑破坏神 III》采用一类比例减伤公式(armor-based mitigation)。简化形式为:
\text{Damage} = \text{ATK} \times \frac{K}{K + \text{DEF}}
其中 K 是与等级相关的缩放常量(《WoW》里大约是 K = 467.5 × Level - 22167.5,魔兽 60 级时约 478,500,不同版本会调)。它的几何含义是:每多 K 点 DEF,相当于把伤害减半。
这个设计让"增加多少防御"始终有意义——从 0 到 100 的收益,与从 1000 到 1100 的收益看起来相同(都是 10% 左右),但后者实际等效血量收益更高(详见 1.4)。这种"看起来线性、实际指数"的错觉,正是优秀数值设计的甜蜜区——玩家被持续奖励,却不会出现"无敌"或"被秒"的极端。
1.3 命中、闪避与暴击:随机性如何被驯服
除了基础减伤,几乎所有 RPG 都引入三个独立掷骰:
命中(Hit)
:是否打中?
暴击(Crit)
:是否打出 1.5× / 2× 伤害?
闪避(Dodge / Evasion)
:防御方是否完全躲开?
把它们组合成期望伤害公式:
E[D] = P_{hit}\cdot(1-P_{dodge})\cdot[(1-P_{crit})\cdot D_0 + P_{crit}\cdot k_{crit}\cdot D_0]
其中 D_0 是"基础伤害"(即 1.1 / 1.2 算出的那一坨),k_{crit} 是暴击倍率。这套结构的好处是每个属性都是独立的旋钮——设计师可以让"会心流"、"命中流"、"闪避流"形成横向分支,玩家堆什么属性就走什么 build。
但这里有一个常被忽视的细节:方差控制。如果暴击率 30%、暴击倍率 2.0,期望伤害 = 1.3 × 基础,但方差很大(玩家会感到"这把脸黑、那把脸白")。《最终幻想 14》里通过"暴击溢出转化为伤害"把超过 100% 暴击的部分变成线性提升,就是降低高端方差的工程手段。
1.4 EHP:为什么"防御=血量"
设防御减伤系数为 r \in [0, 1),玩家实际血量为 HP。则有效血量(Effective HP)为:
\text{EHP} = \frac{HP}{1 - r}
这意味着减伤从 50% 提升到 60%(看起来"只多 10%"),EHP 从 2× 涨到 2.5×——边际价值反而更高。这就是为什么高端玩家堆护甲堆得越来越多——每一点护甲的"等效血量回报"是递增的。
聪明的设计师会用这个公式反推数值上限。比如希望 60 级 BOSS 战时坦克 EHP 不超过 5×,意味着 r ≤ 0.8。再把 r = K / (K + DEF) 代入,就能算出 DEF 的硬性帽。这是"通过体验目标反推数值参数"的标准做法。
二、卡牌对战:从"运气"到"策略"的微妙平衡
卡牌对战类(CCG/TCG)游戏的数值设计,从《万智牌》到《炉石传说》,本质都在解决三个问题:
资源曲线
:每回合能打几张牌?
卡牌经济
:一张牌"值多少"?
抽卡概率
:手牌厚度与卡组深度如何平衡?
2.1 法力曲线:暴雪的"费用 = 强度"信仰
《炉石传说》的数值骨架是法力水晶系统——每回合最多消耗 N 点法力,N 随回合数线性递增。这就强制了卡牌强度与费用挂钩:3 费的牌不能比 6 费的牌"更划算",否则曲线就崩了。
暴雪在公司内部用一套被称为 "vanilla test" 的基线衡量随从(minion)的费用合理性:
V = \text{ATK} + \text{HP},期望 V \approx 2 \times \text{Cost} + 1
意思是:N 费的"白板随从"(无任何特效)合计属性值应该约为 2N+1。比如 3 费的"工程师学徒"(3/3)= 6 = 2×3,略低于基线,但因为带"抽一张牌"的特效,整体就划算了。设计师用这套基线给所有非白板卡牌的特效定价:抽一张牌 ≈ 1 点统计值;造成 1 点直伤 ≈ 1 点;嘲讽(taunt)≈ 0.5 点。
这套"定价 - 特效折算"机制是 CCG 的灵魂。哪怕只有十几个特效维度,组合起来也能产生数千张可平衡的卡牌。
2.2 卡组深度与抽卡:超几何分布
玩家最关心的问题是:"我卡组里 3 张关键牌,开局 3 抽抽到的概率多大?"这是经典的超几何分布问题:
P(X \geq 1) = 1 - \frac{\binom{N-K}{n}}{\binom{N}{n}}
其中 N 是卡组总张数,K 是关键牌数量,n 是开局抽数。
带入炉石的 30 张卡组、3 张关键牌、开局 3 抽:
P(至少抽到 1 张) = 1 - C(27,3)/C(30,3) = 1 - 2925/4060 ≈
27.96%
若是先手 3 张,后手 4 张(含币):P 升至 ≈
36.13%
图 2:超几何分布下,"带几张关键牌"是个有明确数学答案的优化问题——这就是构筑式卡牌的核心乐趣。
2.3 卡牌经济:为什么"过牌"如此珍贵
有一个 CCG 玩家间流传的箴言:"Card advantage wins games"。背后的数学是:双方初始卡牌数相同,每回合抽卡速度固定(炉石每回合 1 张),如果一方能把"1 张牌打 2 张牌"——即过牌或解二——双方手牌差就会指数扩大。
把双方手牌差记作 \Delta_t,单次"过牌型"操作产生 +1 的卡差,理想策略下 t 回合后:
\Delta_t = \sum_{k=1}^{t}\Delta_k^{op}
看似线性,但每张额外手牌的"威胁价值"不是线性的——手牌越多,可选解空间越大,对面预读的难度越高(信息论意义上的熵增)。这就是为什么"5 卡差"在炉石里几乎等同于必胜。
2.4 决斗均衡:Nash 与"石头剪刀布"环
顶级卡牌设计追求三角克制(rock-paper-scissors):快攻克控制、控制克中速、中速克快攻。从博弈论看,三类卡组在天梯环境中的占比应趋于 Nash 均衡——任何一类胜率超过 55%,玩家就会蜂拥构筑它,进而提高被克者出现频率,最终把它压回 50%。
《炉石传说》设计师 Iksar 公开过:他们目标把每个 expansion 上线后两周内的胜率方差压到 ±3%,否则就开 hotfix。这本质上是用市场反馈实现"动态 Nash 调参"。
三、RPG 成长:让等级 1 到 60 的每一步都有意义
RPG 的成长曲线设计,要解决一个看似矛盾的问题:
低级时
升级要快
,让新手有持续的正反馈;
高级时
升级要慢
,让老玩家觉得"每一级都是奖牌";
但高级又要
保留刷怪可行性
,否则玩家会卡墙离开。
3.1 经验值曲线:指数 vs 多项式
主流 MMO 的升级所需经验有两类典型设计:
幂律型(如早期《魔兽世界》):EXP(L) = a \cdot L^p,常见 p ≈ 2.5~3.0
指数型(如《精灵宝可梦》成长组之一 fast):EXP(L) = \frac{4 L^3}{5}
《精灵宝可梦》本体里有六种成长组,差距巨大——快组(fast)100 级需要 800,000 经验;慢组(slow)则需要 1,250,000。同一只精灵选不同组,会改变它在团队里的"投入产出比",迫使训练师做策略选择。
3.2 战力曲线:堆叠效应的几何意义
RPG 的属性增长不是孤立的——攻击力、暴击、暴击伤害、命中、穿透往往相乘。设玩家每升一级各属性都涨 5%,则总战力增长是:
(1.05)^n \cdot \text{基础} \approx \text{基础} \cdot e^{0.0488 n}
当 n=60 时,相乘后的战力是基础的 ≈ 18.7 倍。这就是"乘法堆叠陷阱"——设计师以为自己在做"线性 5% 提升",实际系统是指数膨胀的。
《暗黑破坏神 3》在 2.0 之后引入"诅咒等阶"(Difficulty Tier)—— BOSS 血量与伤害也按指数翻倍——本质就是用同步指数抵消玩家的乘法堆叠,把相对体验拉回线性。这是数值膨胀失控后的"对冲修补",不是首选方案。
3.3 边际效益与"软帽"
不限制堆叠就会失控。绝大多数 RPG 引入软帽(soft cap)——超过某阈值后增长率衰减:
\text{Effect}(x) = x_{cap} \cdot (1 - e^{-x / x_{cap}})
这条曲线的特点:x 远小于 x_cap 时几乎线性,x → ∞ 时趋于 x_cap(永远到不了)。玩家堆得越多收益越少,但"再堆一点"永远还有意义——这是极其漂亮的无限渐近设计。
图 3:软帽 = "渐近线下方的指数饱和"。它让玩家的每一次提升都仍有意义,又不会让属性爆炸。
3.4 怪物经验:动态匹配玩家水平
"打高级怪经验高、打低级怪经验低"是经典直觉,但具体怎么衰减?《魔兽世界》的怪物经验公式(简化版):
EXP_{mob} = EXP_{base}(L_{mob}) \cdot f(L_{player} - L_{mob})
其中 f 是分段函数:玩家比怪物高 5 级以上 → f 急剧下降到 0;同级 → f = 1;玩家比怪物低 → f 略微增加,但 BOSS 战经验另算。
这个设计的妙处在于"惩罚刷低级怪"——你想稳赚就去打同级怪,刷低级怪的"经验/时间"比是负优化。它把玩家从"利益最大化"导向"挑战最大化",体验也就上来了。
四、数值设计的元方法论
三个领域看完,可以总结出几条跨流派的设计原则:
4.1 "用体验目标反推数值"
不要先定数值再看体验。先问自己:
新手前 30 分钟要打过几次"差点死掉"?
满级 BOSS 期望战斗时长几分钟?
PVP 同段位双方胜率方差应该小于多少?
把这些体验指标翻译成数学约束,再倒推参数。《尼尔:自动人形》制作人横尾太郎讲过:"数值表是最后写的,不是最先写的。"
4.2 "线性表现,指数实质"
玩家界面看到的数值要线性可读("+5 攻击"),底层结构却可以是非线性的(暴击堆叠、护甲软帽、EHP)。这种"视觉线性 / 实质指数"的不对称,是优秀数值设计的甜区——既保留新手友好,又给老玩家深挖空间。
4.3 "用方差控制乐趣"
纯确定的对抗(A 攻 100、B 防 50、A 必胜)是无聊的。纯随机的对抗(每次都看脸)是糟心的。优秀数值设计永远在两者之间:期望可控、方差有意义。暴击、闪避、抽卡——本质上都是设计师精心调过方差的随机变量。
4.4 "跨循环平衡"
真正的数值难题不在单局对抗,而在多个时间尺度的循环耦合:
10 秒内:技能 cd / combo 节奏
10 分钟:单局战斗 / 一场对战
10 小时:单个赛季 / 一段主线
100 小时:整体成长 / 装备体系
把这四层循环都校准好,玩家才会觉得游戏"耐玩"。这是真正难的部分——也是数值策划这个职业存在的意义。
结语
游戏数值设计,本质是用数学语言翻译体验。攻防公式翻译"对抗",卡牌经济翻译"决策",成长曲线翻译"投入感"。三个领域看似互不相关,却共享同一套审美:每一次输入都要有可感知的输出,每一次累积都要有递减但不归零的收益,每一次随机都要有期望但不刻意的方差。
下一次你打开任何一款游戏,不妨多看一眼属性面板——你看到的不只是数字,是设计师与你之间精心编织的一场博弈。