四、指数公式(Exponential)

公式

Damage = c^(ATK - DEF)

c 为大于 1 的常数(建议 1.01~1.1)。

数学特性

特性表现
上限→ ∞(ATK >> DEF 时)
下限→ 0(DEF >> ATK 时,但永远 > 0)
DEF 收益恒定:每点 DEF 总是减少 c^ATK 的固定比例
ATK 收益恒定:每点 ATK 总是增加固定倍率

EHP 推导

致死次数 = HP / c^(ATK - DEF)
无 DEF 致死次数 = HP / c^ATK
DEF 增加的致死倍率 = c^DEF

每点 DEF 总是让生存时间乘以 c 倍。如果 c=1.1,每点 DEF = +10% 生存时间,无论当前 DEF 多高。^[yujiri.xyz - Damage Formulas]

核心优势

1. 完美一致性

  • 0→1 DEF 的效果 = 100→101 DEF 的效果(相同百分比)
  • 不存在”低端无效、高端恐怖”的问题
  • 设计师可以精确预测:每点属性 = 固定百分比变化

2. 对称性

ATK 和 DEF 的效果完全对称:每点 ATK 增加 c 倍伤害,每点 DEF 减少 c 倍伤害。

3. 等级差可控

通过控制属性成长速度,可以精确控制等级差带来的战斗力差距。

核心弱点

1. 数值膨胀极快

c=1.1 时:

  • ATK-DEF=10 → 伤害 = 2.59× 基础
  • ATK-DEF=50 → 伤害 = 117× 基础
  • ATK-DEF=100 → 伤害 = 13,780× 基础

需要严格的属性范围控制。

2. 实现复杂度

  • 需要浮点运算(整数运算会丢失精度)
  • 需要处理 ATK=DEF=0 的 NaN 情况
  • 负值输入产生异常结果
  • 玩家难以心算预测伤害

3. 暴击/装备系统的整合困难

传统 RPG 的暴击(×2)和装备加成在指数系统中需要重新设计,因为乘法加成在指数系统中效果不同。

真实游戏实现

指数公式在主流商业游戏中极少直接使用,但其思想影响了多个系统:

  • DOTA2 的负护甲公式: 增伤 = 2 - 0.94^(-Armor) — 负护甲区间使用指数
  • War3 的负护甲公式: 增伤 = 2 - 0.94^(-Armor) — 同上
  • 英雄无敌系列的伤害系统: 攻防差值通过查表转换为倍率,本质上是离散化的指数关系
  • 部分独立游戏/理论设计: 作为”理想化”公式被讨论

适用场景

  • ✅ 竞技游戏需要完美属性对称
  • ✅ 数值范围严格可控的系统
  • ✅ 设计师愿意投入大量平衡调优
  • ❌ 大数值 RPG(膨胀不可控)
  • ❌ 需要玩家心算的休闲游戏
  • ❌ 需要穿甲/减甲等衍生机制的系统

相关概念