Skip to main content

🧙‍♂️ 游戏数值框架构建指南

“数值不是数学题,而是体验的翻译官。” 很多新手设计师一上来就纠结“防御力公式用减法还是除法”,这是战术层面的细节。数值框架 (Framework) 是战略层面的顶层设计,它决定了游戏能玩多久、爽感来源以及付费深度。

📚 1. 理论基础 (Theoretical Basis)

🏗️ 数值架构的三条腿 (The Three Pillars)

构建任何游戏的数值框架,都需要先确定这三个核心维度:
  1. 战斗数值 (Combat): 决定单局内的爽感。核心指标是 TTK (Time to Kill)
  2. 经济数值 (Economy): 决定资源的产出与消耗循环。核心指标是 购买力 (Purchasing Power)
  3. 成长数值 (Progression): 决定游戏的寿命。核心指标是 成长曲线 (Power Curve)

📈 膨胀模型的选择 (Inflation Models)

你希望玩家的属性怎么涨?
  • 线性模型 (Linear): Level * 10
    • 优点: 易于控制,PVP 平衡好做。
    • 缺点: 后期无聊,升级带来的爽感递减(10 对 100 提升很大,10 对 10000 无感)。
    • 适用: 传统 FPS, MOBA, 竞技 RTS。
  • 指数模型 (Exponential): Base * (1.1 ^ Level)
    • 优点: 永远有爽感,每升一级都是质变。
    • 缺点: 极易崩坏,后期数字如果不压缩会变成 1aa, 1bb
    • 适用: Diablo, 放置游戏, 卡牌 RPG。
  • 分段模型 (Bounded):
    • 适用: 我们的 Vampirefall。塔防部分相对克制(确保策略有效),肉鸽部分允许指数爆发(确保爽感)。

🛠️ 2. 实践应用 (Practical Implementation)

⚓ 第一步:确立“锚点” (Define the Anchors)

不要凭空捏造数字。你需要一个基准单位。
  • 标准单位 (Standard Unit): 比如“1 级步兵”。
    • 生命值 (HP): 100 (方便心算百分比)。
    • 攻击力 (ATK): 10
    • 攻击速度 (ASP): 1.0 (每秒 1 刀)。
  • 推导 TTK:
    • 100 HP / 10 DPS = 10秒
    • 这就是你的基准战斗节奏。如果此时感觉怪死太慢,就调整 HP 或 ATK,而不是改公式。

⚗️ 第二步:选择战斗公式 (Combat Formulas)

这是数值框架的“引擎”。
  1. 减法公式 (Subtraction): Damage = Atk - Def
    • 特点: 破防机制带来极致快感。如果不破防就是 1 点伤害。
    • 风险: 极其敏感。防御力增加 1 点可能导致受击伤害直接减半。
    • Vampirefall 策略: 慎用。或者仅用于护盾系统。
  2. 乘除法公式 (Multiplication/Division): Damage = Atk * (1 - DefReduction%)
    • 通常 DefReduction% = Def / (Def + Constant) (如 LOL/王者荣耀)。
    • 特点: 收益平滑,不会出现不破防的情况。
    • 风险: 堆防御有边际效应递减。
    • Vampirefall 策略: 主要采用。因为塔防怪海需要稳定的伤害预期。

🌳 第三步:铺设成长线 (Progression Curve)

使用 Excel 模拟玩家在不同等级的标准属性。 Vampirefall 标准模型表 (示例):
等级 (Lv)标准生命 (HP)标准攻击 (ATK)升级倍率 (Rate)预计游戏时长 (Hour)
1100101.00.5
10500501.25.0
5050005001.520.0
10050000050002.0100.0
  • 注意: 在 50 级后开始引入指数膨胀,以维持后期作为“割草游戏”的爽感。

🎮 Unity 数据结构设计

不要把数值写死在代码里。
[System.Serializable]
public struct CombatStats
{
    public float BaseHP; // 基础生命
    public float BaseAtk; // 基础攻击

    // 成长系数,通常从配置表读取
    public float GrowthMetrics;

    public float GetHP(int level)
    {
        // 混合成长公式:线性基底 + 指数修正
        return BaseHP * level * Mathf.Pow(1.05f, level);
    }
}

⚖️ 3. 核心议题:小数值 vs 大数值 (Core Topic: Scale of Numbers)

数值的大小不仅仅是数学问题,更是心理学 (Player Psychology)系统设计 (System Design) 的核心决策。

3.1 心理学与机制对比 (Psychology & Mechanics)

🐁 小数值 (Small Numbers)

代表作: Kingdom Rush, 炉石传说, 杀戮尖塔, 龙与地下城 (D&D)
  1. 心理学效应:确定性 (Determinism)
    • 可预测性高: 当一个怪 10 HP,你打 3 伤害。你的大脑瞬间算出:“我要打 4 下”。
    • 计算零负担: 玩家不需要把鼠标悬停在怪身上看详细数据,仅仅通过血条的一格一格就能预判战局。
    • 策略反馈感强: “+1 攻击力”在小数值系统里是质变(从打 4 下变成打 3 下)。玩家会极其珍惜每一个增益。
  2. 致命缺陷:成长感缺失 (The Trap)
    • 瓶颈来得快: 1 级攻击力是 10,100 级攻击力如果是 20,玩家会觉得这 100 级白练了。如果是 1000,那初期的怪就是纸糊的。小数值很难支撑长线 RPG

🐘 大数值 (Big Numbers)

代表作: 魔兽世界, 暗黑破坏神 3/4, 放置类游戏 (Cookie Clicker), 绝大多数国产 MMO
  1. 心理学效应:多巴胺轰炸 (Dopamine Rush)
    • 视觉冲击: 屏幕上跳出一个 999,999 的暴击大红字,会直接刺激大脑的多巴胺分泌。
    • 成长错觉: 哪怕只是单纯的通货膨胀(怪血量加倍,你伤害加倍),玩家也会觉得“我变强了”。
    • 模糊计算: 玩家放弃计算,只凭感觉。“反正我伤害很高,A 过去就完了”。适合割草体验。
  2. 致命缺陷:数字脱敏 (Numbness)
    • 变成乱码: 当攻击力变成 4.2e18 时,它就不再代表力量,只是一个无意义的字符串。玩家会完全麻木。

3.2 头脑风暴:小数值 vs 大数值 50 问 (The 50 Points List)

为了辅助决策及作为未来面试/设计的谈资,这里列举了详细的设计维度对比。

🐁 小数值 (Small Numbers)

👍 优点 (Pros)
  1. ✅ [设计] 心算友好: 玩家看到 3 攻击打 10 血,立刻得出“打 4 下”的结论。
  2. ✅ [设计] 每一个点都珍贵: 攻击力从 1 变成 2 是 100% 的提升
  3. ✅ [UI] 排版美观: 界面整洁,不会溢出文本框。
  4. ✅ [程序] 永远不溢出: int8/byte 甚至都能存。
  5. ✅ [平衡] 穷举法可行: 策划可以用 Excel 列出所有组合,确保无必胜解。
  6. ✅ [PvP] 竞技公平感: 觉得是“智商的比拼”而不是“谁充钱多”。
  7. ✅ [美术] 血条刻度清晰: 可以真的画 10 个格子代表 10 HP,视觉反馈直观。
👎 缺点 (Cons)
  1. ❌ [成长] 升级无感: 升一级加 0.1 攻?感觉没加一样。
  2. ❌ [奖励] 缺乏细分: 很难通过“每日签到”给玩家发“0.5 个金币”。
  3. ❌ [付费] 挖坑浅: 很难卖“强化+10”的道具,因为+10 就无敌了。

🐘 大数值 (Big Numbers)

👍 优点 (Pros)
  1. ✅ [心理] 爽!: 看到 999999 暴击,本能的肾上腺素飙升。
  2. ✅ [成长] 升级感强: 每升一级都在变强。
  3. ✅ [设计] 容错率高: 策划填错 100 点攻击力也无所谓。
  4. ✅ [运营] 活动好做: “全服赠送 88888 钻石”听起来很霸气。
  5. ✅ [付费] 挖坑深: 可以设计从“强化+1”到“强化+100”。
  6. ✅ [社交] 炫耀资本: “战力 500 万”比“战力 50”听起来牛逼。
👎 缺点 (Cons)
  1. ❌ [UI] 排版灾难: 1.24aa, 1241512 经常挤爆 UI 框。
  2. ❌ [程序] 大数库性能: 需要 BigInteger,计算慢,GC 多。
  3. ❌ [理解] 门槛高: 后期玩家对数字麻木。
  4. ❌ [PVP] 秒杀: 数值高一点点直接秒杀。

3.3 本项目的抉择:混合策略 (Hybrid Strategy)

Vampirefall 不走极端,而是采用分层设计:
  1. 防御塔 (小数值): 保持个位数/两位数的攻击力。
    • 理由: 塔防是策略核心,玩家必须能心算塔的效率。
  2. 词条倍率 (中数值): 暴击率、冷却缩减用百分比(如 15%)。
    • 理由: 符合通用认知。
  3. 最终伤害 (大数值): 通过频率放大。
    • 理由: 虽然塔单发伤害低 (20 点),但攻速快 (5.0) + 多重射击 (x3) + 暴击 (x2),最终每秒跳出的总伤可以是几百上千。
    • 结果: “思考时很清晰 (小数值),战斗时很爽 (大数值)。”

🦄 4. 深度案例库 (Case Study Library)

4.1 [大数值] Diablo III: 独立乘区的爆炸 (The Power of Multipliers)

  • 框架: 极度夸张的指数膨胀
  • 特点: 满级后伤害直接放大 50000%。为什么能突破 万亿 (Trillion)?因为所有增伤都是独立乘区 (Separate Multipliers)
公式解剖:
Final Dmg = Base _ (MainStat%) _ (Crit%) _ (Skill%) _ (Set%) _ (Legendary%) _ (Vuln%)
只要有 4-5 个相互独立的乘法因子,数值就会像核裂变一样指数爆炸。
  • 借鉴: Vampirefall 的 Roguelike 局内成长可以参考,但要小心控制“独立乘区”的数量,防止溢出。

4.2 [小数值] Slay the Spire: 精密计算的美学 (The Beauty of Precision)

与暗黑相反,STS 是小数值的巅峰。 公式解剖:
Final Dmg = (Base + Strength) _ (Vulnerable 1.5) _ (Stance 2.0)
  • 特点: 基础伤害 6,加了 4 点力量就是 10
  • 爽感来源: 生死一线。你打出 30 伤害把怪打死,和你打出 25 伤害被怪打死,是生与死的区别。
  • 借鉴: 在小数值系统中,爽感不来自于数值的大小,而来自于**“刚好够用”的解题成就感**。

4.3 [混合] Archero: 视觉密度膨胀 (Visual Density)

弓箭传说展示了如何把小数值和大数值结合。 核心机制:
  • 局外成长 (Linear): 装备提供的攻击力是线性叠加的 (+100, +50)。
  • 局内成长 (Exponential): 进场后的 Buff 是乘算的 (连射 x2、攻击强化 x1.3)。
Vampirefall 启示: “视觉密度膨胀” 是比 “数值膨胀” 更健康的爽感来源。让满屏都是特效(箭矢数量变多),比让怪物头顶跳出一个 1亿 更好。

4.4 [加法流] Brotato: 属性利用率 (Stat Scaling)

Brotato 走出了第三条路:基础属性流 (Flat Stat Scaling) 公式解剖:
Final Dmg = [WeaponBase + (FlatStat * Ratio)] * (1 + Dmg%)
Scaling Ratio (属性加成系数):
  • 冲锋枪: Base 3, Scaling 50%。(+10 伤害 = 3 -> 8, 提升 166%)
  • 狙击枪: Base 50, Scaling 100%。(+10 伤害 = 50 -> 60, 提升 20%)
借鉴: 让“攻击力+1”在不同塔上有不同效果。加农炮吃高攻加成,激光塔吃高攻速加成。

4.5 [极简策略] Kingdom Rush (皇家守卫军)

  • 框架: 极简的小数值体系。
  • 特点: 3 级箭塔攻击力 10-15,哥布林血量 30。
  • 优点: 玩家一眼就知道大概要射 2-3 下,策略极度清晰。
  • 借鉴: 塔防部分应保持这种清晰度。

4.6 [软上限] Elden Ring (艾尔登法环)

  • 机制: 软上限 (Soft Cap)
  • 特点: 力量从 10 加到 40 收益很高,40 到 60 收益变低,80 以上几乎没收益。
  • 优点: 防止单一属性造神,鼓励多修(水桶号)。

🔗 5. 参考资料 (References)