一、减法公式(Subtractive)

公式

Damage = max(ATK - DEF, 0)

或 RPG Maker 变体:

Damage = ATK × 4 - DEF × 2

数学特性

特性表现
上限无(伤害随 ATK 线性增长)
下限0(不破防)
DEF 收益线性:每点 DEF 减少固定伤害
ATK 收益在 DEF 固定时线性;但 ATK 接近 DEF 时边际收益剧烈波动

EHP 推导

致死次数 = HP / (ATK - DEF)
无 DEF 致死次数 = HP / ATK
防御等效生命 = HP × DEF / (ATK - DEF)
EHP = HP × ATK / (ATK - DEF) = HP / (1 - DEF/ATK)

关键洞察:EHP 取决于对手的 ATK,而非仅自身属性。这意味着减法公式的防御价值是”环境依赖”的。^[腾讯游戏学堂 - 基本战斗公式应用性探讨]

核心问题

1. 不破防死锁

当 ATK ≤ DEF 时,伤害为 0,战斗陷入死锁。

解决方案(按复杂度递增):

  • Scratch Damage(保底伤害): max(ATK - DEF, 1) — 简单但削弱防御价值
  • 分段公式: ATK ≥ DEF 时用减法,ATK < DEF 时用 ATK²/DEF — Tung’s Word Box 提出的”最简非问题公式”
  • 百分比保底: 伤害至少为 ATK 的 5%(明日方舟物理伤害采用此方案)

2. 边际收益爆炸

ATK=1010 vs DEF=1005 → 伤害=5 ATK=1055 vs DEF=1005 → 伤害=50(仅 +4.5% ATK,伤害暴增 900%)

这意味着在数值高端,极小的属性差导致巨大的战斗差异。

3. 多段攻击惩罚

10 段 × 20% ATK 的技能 vs 1 段 × 200% ATK:

  • 减法公式下,每段都被 DEF 扣减
  • 10 段总伤害 = 10 × max(0.2×ATK - DEF, 0)
  • 1 段总伤害 = max(2×ATK - DEF, 0)
  • 多段攻击被严重惩罚

除非将 DEF 改为百分比形式,否则多段攻击天然劣势。^[GameDev StackExchange]

真实游戏实现

火焰纹章系列(Fire Emblem)—— 几乎所有作品

Damage = ATK - DEF(物理)
Damage = ATK - RES(魔法)
暴击倍率 = ×3(多数作品)或 ×2(FE4、FE5)
  • 最低伤害 = 0(FE: Gaiden、Echoes 例外,最低为 1)
  • FE4 特殊:暴击先乘 ATK 再减 DEF,即 (ATK × 2) - DEF
  • FE: Three Houses:最大伤害上限 999

命中系统补充(True Hit / 2RN):

FE 从《封印之剑》起采用”双随机数”系统:掷两个 0~99 的随机数取平均值,与显示命中率比较。效果:

  • 显示 50% 命中 → 实际约 50%
  • 显示 80% 命中 → 实际约 92%(比显示高)
  • 显示 30% 命中 → 实际约 16%(比显示低)

这使得高命中更可靠、低命中更危险,与减法伤害配合创造了”精确计算型”战术体验。^[Fire Emblem Wiki - True Hit]

Terraria

实际伤害 = (基础伤害 - DEF × 模式系数) × (1 - 百分比减伤)
模式系数:普通 0.5,专家 0.75

混合了减法和百分比减伤。专家模式提高 DEF 系数以平衡敌人增强的伤害。^[Terraria Wiki - Defense]

适用场景

  • ✅ 战棋/策略游戏(FE、FFT)— 数值精确可控
  • ✅ 小数值系统(DEF 在 0~30 范围)
  • ❌ 大数值 RPG(容易出现不破防或刮痧)
  • ❌ 多段攻击为主的动作游戏

相关概念