GameTech/游戏设计
文章

文明 6(四)战斗:只看差值的指数伤害公式

文明 6 的战斗只有一个核心公式:双方战斗力相减,代入指数函数。简单到可以心算,却撑起了从石器时代到现代战争的所有战斗。

战斗系统数值分析规则:风云变幻

1. 伤害公式

地图上的城市与军队
单位在六边形地图上移动、包围和交战,地形直接影响战斗力。图片:Steam 商店页官方截图 © Firaxis Games / 2K
伤害 = 30 × e^(0.04 × 战斗力差) × 随机(80%~120%)

每个单位 100 点生命。战斗力差 = 进攻方的战斗力(远程用远程攻击力)− 防守方的战斗力,所有加成都先算进去再相减。Wiki 注明这是玩家研究得出的公式,并总结了几个性质:

战斗力差−20−10−50+5+10+20
期望伤害13.520.124.630.036.644.866.8
打死满血要几下8554332

2. 战斗力修正

修正数值说明
受伤−round(10 − 生命/10)30 生命 −7,1 生命 −10
侧翼每个 +2攻击方每有一个友军与目标相邻(不算自己),最多 6 个;只有近战单位能吃到
支援每个 +2防守方每有一个友军相邻,最多 10 个
有利地形+3丘陵、树林、雨林;丘陵叠树林 / 雨林共 +6
不利地形−2沼泽、泛滥平原
固守+3 / +61 回合 / 2 回合以上没动
隔河+5防守方被隔着河的近战攻击时
近战打抗骑兵+5兵种克制

出处:文明 Wiki Combat、Flanking and Support 页面。侧翼和支援需要先解锁"军事传统"市政。还有晋升、伟人、政策卡、文明特性等大量加成没有列出。

3. 战斗计算器

试试这个:两个 36 战力的单位,防守方在丘陵上固守了 2 回合(+3 +6),差值变成 −9,进攻方只能打出约 21 点、自己反而受约 43 点——硬冲很亏。再拉 3 个友军包围(侧翼 +6),差值回到 −3,伤害回到 27 左右。地形和站位能抵消相当大的战力差距。

4. 设计分析

只看差值:加成永远有用

如果用比例(像文明 5 的 +10%),后期大数值单位之间,+2 这种小加成几乎没有意义。按差值计算后,固守的 +3、侧翼的 +2 在石器时代和现代同样值钱,地形和站位始终是战术的核心。

指数函数:差距越大越悬殊

每点战力约 ×1.041 的伤害,是乘法而不是加法——差 10 点时伤害多一半,差 20 点时翻一倍多。科技代差(比如长矛打坦克)会被放大成碾压,但同时代内的小差距仍然可以靠战术翻盘。

随机范围收窄,让结果可预测

±20% 的随机让每次攻击有点变化,但期望值稳定。游戏在攻击前还会显示预测伤害——玩家做的是"算得出的决策",而不是赌运气。

受伤惩罚:防止残血单位白白送死

生命越低战力越低,最多 −10。残血单位既打不动也守不住,玩家需要轮换前线、撤下休整,战线有了"呼吸"。

5. 参考资料