引言:为什么游戏需要数值分析

一款游戏让人玩得"上瘾"还是"骂娘",玩法只是表象,数值才是骨架。同样一个"骑士打哥布林"的场景,攻击力 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 中尤其糟糕。

DEF DMG 0 200(=ATK) 400 减法 max(ATK-DEF, 1) 比例 ATK²/(ATK+DEF) 假设 ATK=200。横轴为 DEF,纵轴为最终伤害。

图 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%

关键牌张数 K P(抽到≥1) 10% 28% 0 1 3 5 7 N=30, n=3。每多带一张关键牌,开局命中概率约升 9%(边际递减)。

图 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(永远到不了)。玩家堆得越多收益越少,但"再堆一点"永远还有意义——这是极其漂亮的无限渐近设计。

堆叠值 x 实际效果 x_cap (渐近线) 软帽:x_cap·(1-e^(-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 小时:整体成长 / 装备体系

把这四层循环都校准好,玩家才会觉得游戏"耐玩"。这是真正难的部分——也是数值策划这个职业存在的意义。

结语

游戏数值设计,本质是用数学语言翻译体验。攻防公式翻译"对抗",卡牌经济翻译"决策",成长曲线翻译"投入感"。三个领域看似互不相关,却共享同一套审美:每一次输入都要有可感知的输出,每一次累积都要有递减但不归零的收益,每一次随机都要有期望但不刻意的方差

下一次你打开任何一款游戏,不妨多看一眼属性面板——你看到的不只是数字,是设计师与你之间精心编织的一场博弈。