一、减法公式(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(容易出现不破防或刮痧)
- ❌ 多段攻击为主的动作游戏
相关概念
- damage-formulas — 伤害公式体系总览
- damage-percentage — 百分比减伤公式
- damage-division — 除法公式
- damage-exponential — 指数公式
- damage-hybrid-formulas — 混合公式
- arpg-damage-formulas — ARPG 伤害公式对比