Skip to main content
摘要:本文聚焦「核心数值体系定义手册」,梳理核心概念、关键方法与落地实践。
适用范围: 塔防 + 肉鸽 + 刷宝 设计参考: Path of Exile (PoE), Diablo 4, Warframe

0. 🧭 数值设计综述:给非数值策划的导读

写在前面: 如果你对数学感到头疼,请先读这一章。数值不是为了刁难策划,而是为了翻译体验。

0.1 数值到底是什么?

数值是游戏体验的翻译官
  • 策划说:“这个怪很难打。”(模糊的体验)
  • 程序问:“多少血?多少攻?”
  • 数值回答:“血量是玩家 DPS 的 20 倍,攻击力能打掉玩家 40% 的血。”(精确的体验)
数值的作用只有两个:
  1. 量化体验:把“难/简单”、“爽/憋屈”变成具体的数字。
  2. 控制节奏:决定玩家多久爽一次,多久遇到一个坎。

0.2 为什么有的游戏好像不需要数值?

像《超级马里奥》、《蔚蓝》、《只狼》这样的动作游戏,显性数值很少。
  • 技巧主导 (Skill-Based):核心是验证玩家的操作(跳得准不准,反应快不快)。
  • 二元判定:结果通常只有 0 (失败)1 (成功)。要么跳过去,要么死。
  • 隐形数值:其实它们也有数值(跳跃高度、无敌帧时间),但这些是手感参数,不需要玩家去“刷”。
结论: 如果核心乐趣是**“操作精准度”**,数值体系应极简化。

0.3 为什么本游戏(塔防/肉鸽)极其依赖数值?

因为核心乐趣是 “构建 (Build) 与 验证 (Verify)”
  • 策略颗粒度:数值提供了丰富的中间态——“打得更快了”、“暴击更多了”。
  • 成长反馈:操作水平有上限(手残党),但数值成长是无限的。这是长线留存的基础。
  • 多样性:通过不同的数值维度(攻速流 vs 暴击流),创造出不同的玩法。

0.4 给非数值策划的三个建议

  1. 先想体验,再算公式:不要上来就列公式。先描述画面:“我希望这个怪能抗住塔打 5 秒”。然后倒推:怪物血量 = 塔DPS * 5
  2. 关注比例 > 绝对值:攻击力是 100 还是 10000 不重要。重要的是杀怪时间 (TTK) 是多少。只要比例对,体验就对。
  3. 不要重新发明轮子:本文档中的公式(减伤公式、PRD、独立乘区)是业界几十年的标准答案。直接用,别瞎改。

1. ⚔️ 伤害计算总公式 (The Golden Damage Formula)

这是整个游戏最核心的公式。所有伤害计算必须遵循此逻辑,严禁随意添加乘区。 最终伤害 = 输出面板 (Outgoing) × 防御减伤系数 (DefMitigation) 其中 输出面板 的计算逻辑如下:
Outgoing = [基础伤害] × [增伤乘区] × [独立乘区] × [暴击乘区]
展开公式: Outgoing = [(面板攻击 × 技能倍率) + 技能固定伤] × (1 + Inc总和) × (1 + MoreA) × (1 + MoreB)... × 暴击期望

1.1 🧱 基础伤害的构成 (The Anatomy of Base Damage)

这是你提到的“白值”与“系数”的结合点。 公式: 基础伤害 = (面板攻击 × 技能系数) + 技能固定伤害
  1. 💪 面板攻击 (Panel ATK):
    • 来源:角色基础 + 武器攻击 + 装备附加点伤(Flat)
    • 定义: 代表角色“平 A”一下的理论强度。
  2. 🔧 技能系数 (Skill Ratio / Motion Value):
    • 来源:技能配置表 (dmgRatio)。
    • 示例: 普攻第一段 100%,强力一击 250%,多重箭 60% x 3
    • 作用: 区分“轻攻击”和“重攻击”。
  3. 🎁 技能固定伤害 (Skill Flat):
    • 来源:技能等级成长(如:火球术造成 200% ATK + 500 点伤害)。
    • 作用: 保底机制。确保前期装备差时,技能也有基础伤害;或者用于平衡高频技能(系数低,固定值高)。

1.2 🎛️ 参数详解 (Modifiers)

  1. ➕ 增伤 (Increased / Additive) —— (A 类增伤)
    • 定义: 游戏中 90% 的“增加伤害”词条都属于此类。
    • 包含: 物理伤害%、远程伤害%、全伤害%、火焰伤害%、技能伤害%、对流血敌人伤害%。
    • 算法: 所有此类词条相加,作为一个整体乘区。
  2. ✖️ 独立倍率 (More / Multiplicative) —— (B 类增伤)
    • 定义: 特殊且珍贵的词条,通常描述为“额外造成”、“最终伤害”。
    • 包含: 易伤状态 (Vulnerable)、部分终极天赋。
    • 算法: 每一个此类词条都是独立乘区

1.3 📝 实战计算案例 (Scenario Examples)

假设玩家属性如下:
  • 面板攻击 (ATK): 200
  • 使用技能: 幻影斩 (系数 150%, 附加 50 点固定伤害)
  • 词条池: 物理+20%, 近战+30%
  • 独立增伤: 1.2
  • 暴击: 2.0 (爆伤)
计算过程:
  1. 基础区间 (Base):
    • Base = (200 * 1.5) + 50 = 300 + 50 = 350
  2. 增伤区间 (Inc):
    • Inc = 1 + 0.2 + 0.3 = 1.5
  3. 最终输出 (Outgoing):
    • 350 * 1.5 * 1.2 * 2.0 = 1260

1.4 ⚖️ 暴击稳定性 (Critical Stability)

为了防止“连续不暴击导致漏怪”或“连续暴击导致瞬秒 Boss”,暴击判定必须采用伪随机 (PRD)。
  • 🐢 慢速武器 (Sniper/Cannon): 强制使用 PRD
  • 🐇 极速武器 (Gatling/Laser): 可选真随机
  • 算法引用: 详见 第 8 章:随机分布标准

2. ⚡ 速度、动画与冷却 (Speed & Time)

2.1 🗡️ 攻击速度 (Attack Speed / APS)

  • 定义: 每秒攻击次数。
  • 对于远程 (Ranged): 直接决定发射子弹的频率。
  • 对于近战 (Melee) / 动作类:
    • 问题: 太刀有前摇(Wind-up)和后摇(Back-swing)。
    • 算法: 攻速直接缩放动画播放速度 (Animation Scale)
    • 公式: AnimSpeed = BaseAnimSpeed * (1 + IncAPS%)
    • 处理前摇: 在塔防/肉鸽中,通常不建议做复杂的“卡肉”或“取消后摇”。直接整体加速动画即可。如果攻速极快(如 5.0 APS),建议简化动画为残影,避免模型鬼畜。

2.2 ⏳ 冷却时间 (Cooldown / CD)

  • 公式: FinalCD = BaseCD * (1 - min(TotalCDR, Cap))
  • 上限 (Cap): 建议锁定 CDR 上限为 75% (即 4 倍施法频率)。
    • 设计意图: 防止无限控制或服务器崩溃。

3. 🎯 射程、索敌与弹道 (Range, Acquisition & Ballistics)

3.1 🗼 静态塔逻辑 (Tower Logic)

对于不可移动的塔,索敌与攻击通常是统一的。
  • 射程 (Range): 同时代表 索敌半径子弹最大飞行距离
  • 逻辑: 怪物进入圈 -> 塔开火 -> 子弹理论上一定能打到(除非怪跑得比子弹快飞出了界)。

3.2 🏃 动态单位逻辑 (Hero/Minion Logic)

对于会移动的角色,必须拆分属性。
  • 👀 警戒范围 (Acquisition Range): 索敌专用
    • 定义: 英雄在这个范围内发现敌人,并开始移动去追击。
    • 数值: 通常较大(如 800)。
  • 🤺 攻击距离 (Weapon Range / Reach): 开火专用
    • 定义: 英雄手中的刀或枪能打多远。
    • 数值: 近战通常很小(如 150),远程取决于武器(如 600)。
  • AI 状态机: 警戒范围发现怪 -> 移动靠近 -> 到达攻击距离 -> 停止移动并播放攻击动画。

3.3 🚀 弹道与寿命 (Lifetime Mechanics)

A. 标准模式 (Standard)

射程主导,时间从属。 适用于 90% 的弓箭、子弹、魔法。
  • 配置: 策划只配 RangeSpeed
  • 公式: Lifetime = (Range / Speed) * Buffer
  • Buffer (追击冗余): 建议取 1.3 ~ 1.5

B. 燃料模式 (Fuel Limited)

时间主导,射程从属。 适用于 喷火器持续光束
  • 配置: Lifetime (燃料) 为主属性。
  • 物理结果: MaxDistance = Speed * Lifetime

3.4 🛰️ 特殊弹道模式 (Advanced Ballistics)

针对你需要实现的特殊子弹,定义如下参数:

A. 静止部署 / 地雷 (Stationary / Mine)

  • 特征: 丢在地上不动,延迟爆炸。
  • 参数设定:
    • Speed = 0
    • Lifetime = 2.0s (起爆倒计时)。
    • TriggerRadius = 2.0m (可选:感应半径,有怪经过提前炸)。
  • 逻辑: 代码检测到 Speed <= 0 时,跳过射程计算,直接使用 Lifetime。

B. 多阶段追踪 (Multi-Stage Homing)

  • 特征: 朝天发射,悬停,然后追踪。
  • 参数设定:
    • TurnRate (转向速度): 180 - 360 度/秒
    • GuidanceDelay (制导延迟): 1.0s。前 1s 仅受物理影响(向上推力),不追踪。
    • Acceleration (加速度): 配合使用。前 1s 速度慢,开始追踪后速度暴涨。

4. 🛡️ 防御属性系统 (Defense & Armor)

4.1 ⚙️ 物理防御:护甲 (Armor)

针对 物理伤害 (Physical Damage) 的减伤机制。 公式: PhysMitigation = Armor / (Armor + K)
  • K (常数): 决定曲线陡峭程度。建议取值 3000

4.2 📊 护甲收益表 (K = 3000)

护甲值 (Armor)减伤比例 (Reduction)有效生命值倍率 (EHP Mult)评价
00%1.0x裸奔
3,000 (K 值)50%2.0x黄金分割点
27,00090%10.0x极限堆防

4.3 🔥 元素防御:抗性与穿透 (Resistance & Penetration)

针对 元素伤害 (Fire/Cold/Lightning/Poison) 的减伤机制。

A. 核心公式

ResMultiplier = 1 - min((TargetRes - AttackerPen), MaxResCap)
  • TargetRes (目标抗性): 敌人的面板抗性。
  • AttackerPen (攻击者穿透): 极其珍贵的攻击词条,直接做减法。
  • MaxResCap (抗性上限): 必须锁定为 75%

4.4 💨 闪避系统 (Dodge / Evasion)

闪避提供完全免伤。
  • 机制: 为了平滑体验,闪避判定必须使用 PRD 算法
  • 算法引用: 详见 第 8 章:随机分布标准

4.5 🧐 深度分析:护甲与闪避的收益模型 (Benefit Analysis)

基于可视化分析的数学结论。

A. 护甲:减伤递减,生存线性 (Linear EHP)

护甲虽然在面板上的减伤率(Damage Reduction)随数值增加而提升变缓,但其对 有效生命值 (EHP) 的提升是 恒定线性 的。
  • 结论: 护甲是安全的属性,不存在真正的“收益递减”。
  • 数据模型 (K=3000):
阶段护甲值变化减伤率变化EHP 变化结论
初期0 -> 30000% -> 50%1.0x -> 2.0x提升 100% 生存力
中期3000 -> 600050% -> 66%2.0x -> 3.0x提升 100% 生存力
后期27000 -> 3000090% -> 90.9%10.0x -> 11.0x提升 100% 生存力

B. 闪避:生存指数级爆炸 (Exponential EHP)

闪避提供完全免伤。随着闪避率接近 100%,每 1% 闪避值的价值呈指数级飞升。
  • 结论: 闪避是极其危险的属性,必须设置硬上限 (如 75%),否则数值体系会崩塌。
  • 危险区域数据:
阶段闪避率 (Dodge%)EHP 倍率投入产出比
起步0% -> 50%1.0x -> 2.0x正常 (与护甲相当)
进阶50% -> 75%2.0x -> 4.0x收益翻倍
红区75% -> 90%4.0x -> 10.0x收益爆炸 (需仅 15% 数值)
崩坏90% -> 99%10.0x -> 100.0x游戏失控 (无敌)

5. 🌊 溢出转化系统 (Overflow Mechanics)

在肉鸽游戏中,随机性可能导致玩家某些属性溢出。为了不让玩家觉得“拿到了废品”,可以设计溢出转化。

5.1 💥 暴击溢出 (Crit Overflow)

  • 场景: 暴击率 > 100%。
  • 方案 A (Warframe 模式): 红色暴击
    • 120% 暴击率 = 100% 造成 1 倍爆伤,20% 几率造成 2 倍爆伤(即暴击了再暴击)。
    • 公式: CritTier = floor(CritRate); FinalDmg = Base * (1 + CritTier * (CritDmg - 1))
  • 方案 B (转化模式):
    • 溢出的暴击率转化为暴击伤害。
    • 公式: 每 1% 溢出暴击率 -> 增加 2% 暴击伤害。

5.2 🏹 攻速溢出 (Speed Overflow)

  • 场景: 攻速 > 10.0 APS (塔防性能瓶颈)。
  • 方案: 多重射击 (Multishot)
    • 当攻速达到上限时,不再减少攻击间隔,而是增加“每次射出的子弹数量”或“额外伤害倍率”。
    • 好处: 保护显卡,同时保证玩家收益不封顶。

5.3 ⚖️ 设计权衡 (Pros & Cons)

策略机制描述优点缺点
不做转化溢出就浪费 (Hard Cap)强迫玩家平衡属性,避免无脑堆单一属性玩家体验挫败,随机到重复词条时感觉很烂
做转化溢出转其他收益 (Soft Cap)爽感强,玩家无脑拿词条,构建更自由数值容易膨胀,难以控制后期强度

6. 🖥️ UI 面板显示标准 (UI Display Standards)

UI 上显示的数值必须与后端计算逻辑严格一致,但需要进行格式化以便玩家理解。

6.1 📊 属性面板对照表 (Stats Panel)

属性名称 (CN)属性名称 (EN)推荐显示格式 (Format)UI 完整示例 (Example)备注与来源
每秒伤害DPS{N0}12,450最核心指标。综合了攻击、攻速、暴击的期望值。
攻击力Damage{N0} - {N0}500 - 850如果最小攻击=最大攻击,则显示单值。
攻击速度Atk Speed{N2} /秒1.85 /秒显示 APS (频率),不要显示攻击间隔。
暴击率Crit Chance{P1}45.5%保留 1 位小数。如果溢出,可根据游戏设计显示 >100%。
暴击伤害Crit Dmg{P0}150%通常基础是 150%或 200%。显示的应是总倍率。
攻击范围Range{N0}650对应 Unity 单位或像素。
冷却缩减CDR{P0}25%建议显示缩减百分比,不要显示实际秒数(因为每个技能不同)。
护甲Armor{N0}3,200鼠标悬停显示具体减伤。
闪避率Dodge Chance{P1}35.0%务必显示上限 (如: 35% / 75%)。
物理减伤Phys Reduct.{P1}51.6%护甲换算后的实际效果。
抗性/穿透Fire Res/Pen{P0}75% / 15%需显示抗性上限。

6.2 📐 详细计算公式 (UI Formulas)

A. 面板 DPS (Damage Per Second)

这是玩家最爱看的数字,也是衡量强度的标准。 DPS = AvgDamage * FinalAPS * CritMultiplier 其中:
  • AvgDamage (平均 DPH): (MinDamage + MaxDamage) / 2
  • CritMultiplier (暴击期望倍率): 1 + (CritRate * (CritDamage - 1))
    • 注:如果 CritRate > 100% (红色暴击),公式依然通用。

B. 技能冷却时间显示的动态变化 (Tooltip CD)

在技能提示框 (Tooltip) 中,应当显示计算 CDR 后的实际时间。 TooltipCD = BaseCD * (1 - min(PlayerCDR, Cap))
  • UI 变色: 如果当前 CD 小于 BaseCD,用 绿色 显示,表示受到增益。

C. 有效生命值 (EHP - Effective HP)

建议在防御面板的高级信息中显示,这比单纯的 HP 更有参考价值。 EHP = HP / ((1 - DamageReduction) * (1 - DodgeChance))
  • 示例: 1000 血,50% 减伤,50% 闪避。
  • EHP = 1000 / (0.5 * 0.5) = 4000
  • 意义: 闪避和护甲乘算后,极大提升了有效血量。

7. 💪 战力计算标准 (Combat Power / Gear Score)

定义: 战斗力(CP)是对单位综合强度的静态估算用途: 关卡门槛限制、排行榜、给玩家的直观成长反馈。 核心原则: 战斗力代表“投入成本(Budget)”而非“实际输出”。

7.1 🔢 计算公式 (CP Formula)

CombatPower = sum(AttributeValue * Weight) + sum(MechanicScore)

7.2 🏋️ 属性权重参考表 (Standard Weight Table)

1 点 攻击力 = 1 CP 为锚点。权重设计应反映该属性获取的“稀缺度”。
属性名称单位推荐权重 (Weight)理由推导
攻击力 (Atk)1 点1.0基准锚点。
生命值 (HP)1 点0.2通常 HP 数值是 Atk 的 5-10 倍,权重需调低以平衡。
护甲 (Armor)1 点0.1护甲通常堆得很高 (3000+),权重需极低。
暴击率 (Crit)1%15.01% 暴击率通常比 1 点攻击力难获得得多 (约等于 15 攻)。
暴击伤害 (CritDmg)1%8.0爆伤通常比暴击率容易堆,价值约为暴击率的一半。
攻击速度 (AtkSpd)1%12.0攻速是稀有词条,直接提升 DPS,价值较高。
冷却缩减 (CDR)1%20.0CDR 有上限且极难获取,权重应给高分。
增伤 (Inc Dmg)1%5.0A 类增伤容易稀释,权重低于独立乘区属性。
独立增伤 (More)1%25.0B 类增伤极其珍贵,应给予极高权重以彰显其地位。
闪避 (Dodge)1%18.0闪避能指数级提升 EHP,且有上限,极其稀有。
穿透 (Pen)1%10.0后期提升伤害的关键手段。

7.3 🛠️ 机制分 (Mechanic Score)

对于无法量化的特殊机制,给予固定分值。
机制名称固定加分 (Score)备注
投射物穿透 +1+300质变属性。
投射物数量 +1+500巨大的 DPS 提升。
击中回复生命+200生存质变。
传奇/暗金特效+800拥有特殊词条的传奇装备保底分。

7.4 📉 动态修正 (可选)

如果希望战斗力更精准(接近真实 DPS),可以引入 Synergy Bonus (协同修正)
  • 如果 CritRate > 50%,则 CritDmg 的权重翻倍。
  • 如果 AtkSpeed > 2.0,则 OnHit 效果的机制分翻倍。
  • 注意: 这样做会增加计算复杂度,且可能导致玩家换了一件装备,明明属性变了,战力却因为阈值波动而没变,造成困惑。推荐前期只用静态权重求和。

8. 🎲 随机分布标准 (Random Distribution Standards)

定义: 游戏中所有涉及概率判定(闪避、暴击、触发)的底层算法标准。 目的: 消除真随机带来的体验方差(Bad Luck Protection),提供“符合直觉”的随机体验。

8.1 核心概念解析:真随机 vs 伪随机

A. 真随机 (True Random / Independent)

  • 原理: 每次掷骰子都是独立的。之前的失败不会影响下一次成功的几率。
  • 统计学特征:
    • 期望 (Expectation): 长期来看符合面板概率。
    • 方差 (Variance): 极高。容易出现“连续 10 次不暴击”或者“连续 5 次暴击”的聚簇现象 (Clustering)。
  • 玩家体验: “这游戏针对我!”、“这 20% 暴击率是假的吧?”。在小样本下(如一场战斗打几十下),体验极不稳定。

B. 伪随机分布 (PRD / Dependent)

  • 原理: 每次判定失败,下一次成功的几率会提升;一旦成功,几率重置为初始值。
  • 统计学特征:
    • 期望: 通过调整初始系数 C,使得长期期望严格等于面板概率。
    • 方差: 极低。它强制结果均匀分布,抑制了连续失败和连续成功的可能性。
  • 玩家体验: “稳定”、“手感好”。25% 的几率感觉真的就像“每 4 下打出 1 下”。

C. 为什么方差很重要?

  • 方差 (Variance) 衡量的是数据偏离平均值的程度。
  • 在塔防中,高方差意味着风险。如果你的主力塔攻速慢、暴击率 50%,真随机可能导致它连续 3 次不暴击,这几秒的输出空窗期足以让怪跑掉(漏怪)。
  • PRD 通过降低方差,保证了输出的稳定性,让玩家可以信赖概率属性。

8.2 伪随机分布 (PRD) 算法实现

A. 核心公式

P(N) = C * N
  • N: 失败次数计数器(初始=1,成功后重置为 1)。
  • C: 概率增量常数(查表可得)。
  • 判定逻辑:
    1. CurrentChance = C * N
    2. Random.value < CurrentChance,判定成功,N=1
    3. 否则,判定失败,N++

B. 常数对照表 (C-Table)

面板概率 (Target)常数 C (Constant)实际期望
5%0.0038接近 1/20
10%0.014接近 1/10
15%0.032
20%0.055
25%0.0841/4
30%0.118
40%0.201
50%0.3021/2
60%0.422
70%0.571
75%0.6673/4

C. 通用代码实现 (C#)

public class PRDSystem {
    // 注意:每个需要PRD的属性(暴击、闪避)都需要一个独立的计数器实例
    private int _counter = 1;

    public bool Check(float targetChance) {
        float C = LookupC(targetChance);
        if (Random.value < C * _counter) {
            _counter = 1;
            return true;
        } else {
            _counter++;
            return false;
        }
    }
}

9. 🍀 幸运与掉落系统 (Luck & Loot Distribution)

目标: 解决“塔防怪海”导致的掉落溢出问题,并定义“幸运”属性的具体作用。

9.1 ✨ 幸运属性 (Luck)

现代刷宝游戏中,幸运不再是单一的“掉落率”,而是分为两个维度。

A. 幸运一击 (Lucky Hit / Proc Rate)

  • 定义: 影响 “击中时触发特效” 的概率。
  • 公式: FinalChance = BaseChance * (1 + Luck%)
  • 示例: 技能自带 10% 几率流血。玩家幸运+50%。最终触发率 = 10% * 1.5 = 15%

B. 掉落幸运 (Loot Luck / Magic Find)

  • 定义: 影响 “物品稀有度 (Rarity)” 的判定,通常不影响掉落数量。
  • 机制: 推荐使用 双重判定 (Reroll) 机制。
    • 当系统判定装备稀有度时(例如判断是否为传说),如果判定失败,根据幸运值概率,获得一次 “再摇一次” 的机会。
    • 好处: 数学期望收益线性平滑,且给玩家“逆天改命”的爽感。

9.2 🛁 掉落平衡:怪海对策 (The Horde Scaling)

塔防游戏后期怪物数量是前期的几十倍。如果采用固定掉落率(如 1%),后期会卡死且经济崩盘。

A. 权重预算制 (Drop Weight Budget) - 推荐方案

  • 核心思想: 不是每个怪单独计算掉落,而是每个怪为“掉落池”充能。
  • 逻辑:
    1. 定义 掉落阈值 (Threshold) = 1000 点。
    2. 怪物死亡时,增加蓄水池点数:
      • 小怪 (Minion): +1 点。
      • 精英 (Elite): +50 点。
      • BOSS: +500 点。
    3. Pool >= 1000 时,强制触发一次掉落,并 Pool -= 1000
  • 优势: 无论场上有 10 个怪还是 500 个怪,每分钟掉落数量 (Drops Per Minute) 是恒定的,完全可控。

B. 分层掉落表 (Tiered Drop Table)

  • 小怪: 权重表里 90% 是金币/血瓶,只有 0.1% 是装备。
  • 精英: 权重表里 50% 是装备
  • 设计目的: 减少垃圾装备渲染,保护性能。

C. ❄️ 冷启动对策 (Cold Start Strategy)

为了解决蓄水池机制导致的“首杀不掉落”问题,确保玩家开局爽感。
  • 预填充 (Pre-fill): 关卡开始时,将蓄水池初始化为 Threshold * 0.8
    • 效果: 玩家只需击杀少量怪物,就能立刻触发第一次掉落。
  • 首杀必掉 (First Blood Guarantee):
    • 机制: 记录一个状态位 HasDroppedFirstLoot
    • 逻辑: 若为 false 且击杀的是 精英/BOSS,无视蓄水池,强制掉落并置为 true

9.3 🥺 稀有掉落保底 (Pity for Loot)

对于 传说/暗金 (Legendary) 级物品,必须有保底。
  • 不使用 PRD: 掉落频率比攻击频率低太多,查表法太复杂。
  • 推荐:熵值累加 (Entropy System)
    • 初始掉率 P = 1%
    • 每杀一只精英没出货,累加 P = P + 0.1%
    • 出货后,重置 P = 1%

10. ♾️ 无尽模式成长模型 (Endless Mode Scaling)

定义: 类似于《吸血鬼幸存者》的“生存”模式,或 TD 中的“无尽波次”。 目标: 在有限的性能开销下(同屏单位上限),通过数值与机制制造“无限”的压迫感。

10.1 🧟 视觉欺骗:动态替补 (Dynamic Refill)

解决怪海导致的性能问题。
  • 同屏硬上限 (Hard Cap): 设定为 200 - 300 (取决于平台)。
  • 替补机制:
    • 每一波的 TotalCount 可能为 5000。
    • Spawn Logic: 每帧检测 CurrentActiveCount。若小于 HardCap,立即从刷怪池中生成 min(SpawnRate, HardCap - CurrentActive) 只新怪。
  • 体验: 玩家杀得越快,怪补得越快,永远杀不完,但显卡压力恒定。

10.2 📈 数值成长模型 (Stat Scaling)

随时间/波次推移,怪物必须指数级变强。

A. 基础成长公式

Stat_Current = Stat_Base * (GrowthFactor ^ TimeOrWave)
  • HP 成长: 推荐 Factor = 1.2 (每分钟/每波)。
    • 第 10 分钟: 1.2 ^ 10 ≈ 6.19 倍。
    • 第 30 分钟: 1.2 ^ 30 ≈ 237 倍。
  • 攻击成长: 推荐 Factor = 1.1 (比血量慢,防止玩家被摸一下即死)。

B. 模型与质量膨胀 (Quality Scaling)

单纯加数值玩家看不出来,需要视觉反馈。
  • 精英替换 (Elite Swap):
    • 0-5min: 普通怪。
    • 5-10min: 替换为带盾/高甲怪 (Model Scale 1.2x)。
    • 10min+: 替换为小 Boss 模型 (Model Scale 1.5x)。
  • 巨型单位 (Colossus):
    • 当同屏怪数达到上限但压力仍不够时,生成 Colossus
    • 1 Colossus = 20 Minions 的数值强度。
    • 作用: 节省 DrawCall,增加压迫感。

10.3 🏺 无尽模式掉落控制 (Loot in Endless)

引用 9.2 权重预算制。 在无尽模式中,掉落预算必须与 时间 挂钩,而不是与杀怪数挂钩。
  • Target DPM (Drops Per Minute): 设定为 2.0
  • 动态权重: 随着时间推移,怪越来越难杀,单只怪提供的 DropWeight 应随 HP 成长系数提升。

10.4 💀 终局机制:软狂暴 (Soft Enrage)

迫使游戏在一定时间内结束(或进入下一循环),防止玩家无聊挂机。
  • A. 速度崩坏 (Speed Break):
    • 30 分钟后,怪物移速每分钟 +20%。直到快过子弹,或者直接冲过防线。
  • B. 抗性崩坏 (Resist Cap Break):
    • 30 分钟后,怪物获得 DamageReduction 层数。
    • 当减伤达到 99% 时,玩家自然死亡。
  • C. 死神 (The Reaper):
    • 生成一只无敌、无视碰撞、秒杀一切的单位清理战场。

11. 🔮 进阶属性补完 (Advanced Attributes)

为了对标《迷雾大陆》、《流放之路》等深度刷宝游戏,以下属性在构建多样性 (Build Variety) 中不可或缺。

11.1 ❄️ 控制与韧性体系 (Crowd Control & Tenacity)

A. 控制强度 (Status Potency)

  • 作用: 增加控制效果的持续时间或效果强度。
  • 公式: Duration = BaseDuration * (1 + Potency%)
  • 用途: 冰法流派核心词条。

B. 控制抗性/韧性 (Tenacity)

  • 作用: 减少受到的控制时间。
  • 公式: FinalDuration = Duration * (1 - min(Tenacity, 0.9))
  • 注意: Boss 必须拥有高韧性,否则会被永久晕眩。

C. 状态易伤 (Damage to CC)

  • 定义: 独立乘区 (More)。
  • 词条示例: “对冰冻敌人伤害 +50%”、“对昏迷敌人伤害 +100%”。
  • 价值: 鼓励玩家构建“控制+输出”的组合技。

11.2 🛡️ 格挡与屏障体系 (Block & Barrier)

除了护甲和闪避,还有两层生存机制。

A. 格挡 (Block)

  • 机制: 既然是塔防,通常采用 “定额格挡”“百分比减伤”
  • 核心数值 (双参数原则): 格挡必须由 触发率 (Block Chance)减伤效果 (Block Effectiveness) 两个数值共同决定。
  • 核心区别: 护甲是稳定减伤(每一下都减),格挡是概率减伤(有时候减,有时候不减)。
  • 计算顺序: 判定格挡 (Block Check) -> 若成功则减伤 -> 护甲减伤 (Armor Mitigation)。
  • 公式 (百分比模式 - 推荐):
    • 判定:Random < BlockChance
    • 效果:Damage = Damage * (1 - BlockAmount) (通常 BlockAmount = 50% 或 75%)。
  • 公式 (定额模式 - Flat Block):
    • 定义: 盾牌常驻属性,如“格挡 50 点伤害”。
    • 效果: Damage = max(0, Damage - BlockValue)
    • 用途: 针对高频低伤怪物的神技,对 Boss 大招无效。
  • 定位: 独立于护甲的额外生存乘区。配合护甲可达成极高 EHP。

B. 屏障/护盾 (Barrier/Shield)

  • 定义: 覆盖在 HP 之上的临时血量。
  • 特性:
    • 通常有衰减 (Decay) 或 持续时间。
    • 护盾门控 (Shield Gate): (可选高级机制) 当护盾被打破时,溢出的伤害不会扣除 HP。防止被一击秒杀。

11.3 🎇 多重施法体系 (Multicast)

爽游核心。让屏幕布满弹幕的关键。
  • 定义: 一次攻击动作,触发多次伤害判定/子弹生成。
  • 区别: 攻速是加快动作;多重是增加单次动作的产出。
  • 溢出算法:
    • MulticastChance = 150%。
    • 100% 几率触发 +1 次(共 2 次)。
    • 50% 几率再 +1 次(共 3 次)。
    • 期望: 每次攻击平均造成 2.5 次伤害。

11.4 🩸 斩杀与吸血 (Cull & Leech)

A. 斩杀 (Cull / Execute)

  • 机制: 当 “TargetHP < MaxHP * CullThreshold 时,直接 Kill()
  • 默认值: 0% (不斩杀)。
  • 词条: “获得 10% 斩杀效果”。
  • 体验: 极大地提升清怪手感,特别是对付肉盾怪。

B. 击中回复 (Life on Hit) vs 吸血 (Leech)

  • 击中回复 (LoH): 每次击中回复固定数值 (Flat)。
    • 适用: 高攻速、低单发伤害流派。
  • 吸血 (Leech): 回复伤害的百分比。
    • 塔防限制: 建议仅对英雄单位生效。如果塔也吸血,需要在塔上显示绿字,可能会导致 UI 混乱。建议塔使用“击杀回复 (Life on Kill)”。

11.5 👻 召唤继承 (Minion Inheritance)

针对“兵营”或“召唤师”职业。
  • 机制: 召唤物的属性基于玩家/塔的面板。
  • 继承系数:
    • HP/攻击力: 通常继承 100%。
    • 暴击/攻速: 通常继承 100%。
    • 特殊: 某些词条专门加成召唤物(“召唤物伤害 +50%”),这是独立乘区。

12. 💡 数值设计原理与避坑指南 (Design Rationale for Beginners)

本章不定义具体公式,而是解释**“为什么要这么设计”**,帮助新手理解数值背后的数学逻辑和体验心理学。

12.1 ⚗️ 数值膨胀的核心机制:加法、乘法与独立乘区

这是所有刷宝游戏(如 D4, PoE)的数值基石,也是控制玩家伤害不至于失控(或过弱)的关键。我们采用 “乘区理论 (Bucket Theory)” 来构建伤害体系。

A. 加法 (Additive / Inc) —— “同类稀释”

  • 定义: 绝大多数词条都属于这一类(如:全伤害+、物理伤害+、近战伤害+)。
  • 机制: 所有的 “Inc” 词条会被扔进同一个“大桶”里做加法,然后再参与最终乘算。
  • 稀释效应 (Dilution):
    • 假设你已有 +400% 增伤。
    • 再获得一个 “+50% 物理伤害” 词条。
    • 实际提升: (1 + 4.5) / (1 + 4.0) = 5.5 / 5.0 = 1.1 (即 10% 提升)。
    • 结论: 同样数值的词条,你拥有的越多,新获得的那个就越不值钱。
  • 设计目的: 作为数值的基石。保证玩家前期有明显的成长,但防止后期数值指数级爆炸。

B. 乘法 (Multiplicative / More) —— “独立增益”

  • 定义: 描述中通常带有“额外”、“总伤害”字样的稀有词条。
  • 机制: 每一个 More 词条都是一个独立的桶。它直接乘在最终伤害上。
  • 多源叠加规则: 不同来源的 More 增伤是分开乘算的。
    • 公式: TotalMore = (1 + MoreA) * (1 + MoreB) * (1 + MoreC)
    • 示例: 天赋 20% More,装备 30% More -> 1.2 * 1.3 = 1.56 (56% 提升),而非 50%。
    • 注意: 同一来源的堆叠(如: 3 层狂暴状态,每层 10% More)通常是先加后乘 (1 + 3*10%),具体视游戏机制而定。
  • 无稀释:
    • 无论你现在有多少增伤,获得一个 “额外造成 20% 伤害” 的词条。
    • 实际提升: 实打实的 20%
  • 设计目的: 作为诱饵。引导玩家去追求特定的构建(Build),因为它是质变属性。

C. 独立乘区 (Independent Buckets) —— “维度攻击”

除了上述的 Inc 和 More,还有一些天然的独立乘区。一个成熟的 BD (Build) 会尝试在所有乘区上都拿一点分,而不是死磕一个。
乘区名称作用原理提升公式
基础区技能倍率、点伤直接增加底数
增伤区Inc 词条* (1 + Inc总和)
攻速区攻击频率* APS
暴击区双倍伤害* (1 + Rate * (Dmg - 1))
易伤区敌人受到的伤害* (1 + EnemyTaken%)
抗性区穿透与减抗* (1 - (Res - Pen))
  • 黄金法则: 2 * 2 * 2 = 8,而 4 * 1 * 1 = 4
  • 指导意义: 当玩家觉得“伤害刮痧”时,不要让他再去堆攻击力了(稀释严重),引导他去堆攻速、暴击或穿透(开辟新乘区)。

12.2 🛡️ 为什么防御公式要用除法 (百分比减伤)?

A: 减法公式会导致“不破防”或“被秒杀”。除法公式保证 EHP 线性增长。

12.3 🎲 为什么要用伪随机 (PRD)?

A: 消除“脸黑”带来的极差体验(如连续不暴击导致漏怪)。

12.4 🛁 为什么要用蓄水池做掉落控制?

A: 为了保证 DPM (Drops Per Minute) 恒定,解决怪海导致的掉落溢出。

12.5 ⚡ 为什么攻速 (APS) 不能定义为攻击间隔?

A: 攻击间隔减少带来的收益是指数爆炸的。APS 保证线性收益。

13. 🚧 关卡难度增长控制 (Level Difficulty Scaling)

目标: 确保游戏从中世纪冷兵器(前期)平滑过渡到神仙打架(后期),避免玩家感到无聊或挫败。

13.1 📐 难度三维模型 (The Difficulty Trinity)

不要只加血量。难度是由三个维度构成的:

A. 数值压力 (Stat Check)

  • 定义: 玩家必须达到多少 DPS 才能杀怪,必须有多少 EHP 才能活着。
  • 控制手段: 怪物 HP、攻击力、护甲。
  • 失败反馈: “我打不动怪” 或 “怪摸我一下就死”。

B. 处理压力 (Processing Check)

  • 定义: 玩家单位时间内需要处理的信息量和操作量。
  • 控制手段: 怪物数量 (Density)、移动速度 (Speed)、技能频率。
  • 失败反馈: “怪太多了漏过去了” 或 “我手忙脚乱”。

C. 机制压力 (Mechanic Check)

  • 定义: 强迫玩家更换策略或装备的特殊门槛。
  • 控制手段: 元素抗性 (Resist)、特殊词条 (如:免疫物理、远程减伤)。
  • 失败反馈: “我的火法没用了,得换物理塔”。

13.2 📈 核心属性增长曲线 (Attribute Scaling Curves)

假设 L 为关卡等级 (Level)。
属性推荐增长公式说明
怪物 HPBase * 1.2 ^ L指数增长,核心属性。
怪物攻击Base * 1.1 ^ L缓慢指数,防止被秒。
怪物护甲StepFunction(L)阶梯式增长。每 5-10 关上一个台阶。
怪物移速Base * (1 + 0.02 * L)线性微增。必须有硬上限(如玩家移速的 1.5 倍),否则无法风筝/塔无法命中。
怪物数量min(Cap, Base + 2 * L)对数增长/封顶。受限于显卡性能,数量不能无限涨,后期靠质量(精英怪)取胜。

13.3 🧱 抗性墙设计 (Resistance Wall)

这是防止玩家“一套装备用到死”的关键机制。
  • 机制: 在特定的关卡节点(如第 10、20、30 关),大幅提升怪物的 元素抗性
  • 目的:
    • 第 1-9 关:0% 抗性。玩家随便穿什么装备都能过。
    • 第 10 关:50% 火抗。玩家原本 1000 的火伤变成了 500。
    • 玩家对策: 被迫去刷带有 “火焰穿透”“减少敌人抗性” 词条的装备,或者转修冰系。
  • 体验: 这是一种“软强制”的装备更新驱动力,比单纯加 HP 更有效。

13.4 ⏱️ 清怪效率监控 (Time to Kill - TTK)

作为策划,你需要监控的一个核心指标是 TTK
  • 小怪 TTK: 应该保持在 0.5 秒 - 2 秒 之间。
    • < 0.5s: 割草感强,但容易无聊。
    • 3s: 玩家会觉得塔很弱,产生挫败感。
  • 精英 TTK: 应该保持在 5 秒 - 15 秒
  • 调整方法:
    • 如果玩家 DPS 膨胀过快(TTK < 0.1s),通过 怪物护甲/HP 倍率 压回来。
    • 如果玩家打不动(TTK > 20s),检查是否投放了足够的 独立增伤 (More) 词条。

📚 扩展阅读与数学模型 (References)

⚔️ 伤害公式 (Damage Formulas)

🛡️ 防御机制 (Defense Mechanics)

🎲 伪随机算法 (PRD)