个人认为,在当前市面上大多数游戏的数值策划的工作主要包括两个方面,分别是战斗数值和经济数值。(浅见,如有补充欢迎提出。)
战斗方面的数值最显而易见的就是伤害公式,表现为在对战过程中自身属性和敌人属性之间的关系造成的伤害数值。常见的伤害公式分为两种,减法公式、乘法公式。
1,减法公式的基础形态为
DMG = ATK - eDEF
即:伤害 = 攻击 - 敌方防御(enemy)
减法公式最明显的缺点就是,当敌方防御不低于我方攻击力太多的时候,伤害很刮痧;甚至当敌方防御高过我方攻击力的时候,我方无法破防也无法造成伤害。如果使用减法公式的话,需要对减法公式进行适当修改以适应它将面对的复杂状况。
DMG = (ATK - eDEF) * (1 + (eLV - LV)/20) * random(0.9,1.1) * CRIR
其中,若eLV - LV < -3 , 取-3;若eLV - LV > 0 , 取0。random(0.9,1.1)符合正态分布。若random(0,1) CRI = 0.2,则CRIR = 150%,反之CRIR = 100%;CRI为暴击率,CRIR为暴击伤害。(在常见的游戏引擎中,模型之间的关系来自于接触。)
上面的公式在基础公式中加入了等级判定,高等级打低等级伤害降低,低等级打高等级无法破防,目的还是鼓励玩家升级。使用随机函数可以为战斗增加波动,加入暴击也是这个目的,当然随机函数可以设置成心跳的节奏,只要期望回归1就好。当然考虑到属性克制,种族加成,装备套装加成等,这个公式还可以继续优化,直到变成最终形态(Rider Kick!)
2,乘法公式的基础形态有
DMG = ATK * (1 - eDEF/100)
也就是攻击力乘一个减伤公式,也可以在防御力前乘一个很小的系数k,来增高防御力的上限。并且1 - eDEF/100 < 0时,取0。衰减函数可以提供另一种减伤思路,
减伤 = a/(1 + b/eDEF)
在对手防御力很大的时候,减伤量无限接近与a,通过引入参数b来调节减伤曲线的平滑程度。(解释一下,这里是书里看来的,过段时间我应该分析一些案例来检验我对这些内容的掌握。)
3,在笔试的过程中,我遇到了几次除法公式的计算题。
DPS=ATK * ATK/(ATK + DEF)
除法公式是魔兽世界的伤害公式。如下图可以看出,当攻击力大于对手防御力的时候,斜率接近1,一点攻击力等于等于一点战斗力;当防御力低于对手攻击力的时候,斜率接近-0.5,一点防御力等于0.5战斗力。
ps.另外补充一点就是,很多游戏大概会把角色的等级加入到战斗公式的计算中,例如只狼的血条会补充越来越多,但是能够抗住的伤害次数并没有相应增加太多。