|
本帖最后由 smallcorpse 于 2013-11-26 20:20 编辑
在翻huori旧帖子的时候发现了这么一篇《伸手党二次逆袭,数值模型的几个问题》,里面有一个问题是 “四:耗蓝怎么建模?现在是以HP为基准点,算出各自职业的技能所占的点数后,我用初始百分比算的,但我感觉这很不靠谱。”
在回复中很多人都对此问题发表了看法,我觉得很有启发,正好自己曾经做过类似的建模,经过修改后发上来让大家斧正了。
正文:
1,前提;
前提指的是此模型需要在何种条件下才能成立。
战斗人物拥有HP,MP。所有动作均耗费MP(也就是不存在不耗蓝的普通攻击,用于简化模型)。战斗人物的动作可以直接作用在目标上,不考虑距离因素(同样为了简化模型)。所有动作均在战斗后进行。
2,定义;
动作分类:
动作分类指的是战斗人物可以进行的动作分类。
单个目标伤害:直接对单个目标产生伤害的动作。
多个目标伤害:直接对多个目标产生伤害的动作。
单个目标削弱:对单个目标的战斗力进行削弱的动作,拥有持续时间。(可以用debuff理解)
多个目标削弱:对多个目标的战斗力进行削弱的动作,拥有持续时间。
个人状态维持:对单个目标增加削弱抗性或者清除掉已添加的削弱状态的动作,抗性拥有持续时间。
团队状态维持:对多个目标增加削弱抗性或者清除掉已添加的削弱状态的动作,抗性拥有持续时间。
个人状态增强:对单个目标的战斗力进行增强的动作,拥有持续时间。
团队状态增强:对多个目标的战斗力进行增强的动作,拥有持续时间。
个人血量回复*:暂不考虑。(简化模型)
团队血量回复*:暂不考虑。
单位血量(单位伤害),单位蓝量;
一次普通单纯伤害技能对一个无防御减免伤害的单位消耗的血量称为单位血量,此普通单纯伤害技能所耗的蓝量为单位蓝量。
3,基础模型;
为了方便了解,先用具体数值进行举例:每个战斗单位均拥有20单位血量,30单位蓝量。也就是说在1v1情况下。战斗单位有20单位的蓝量用于正确的造成伤害,10单位的蓝量用于失误或者与对方博弈。而这20单位的正确伤害蓝量是目标伤害、目标削弱、状态增强联合运用的。比如我手上有5单位的蓝量,1单位用于目标伤害动作,2单位用于目标削弱,2单位用于状态增强。最后打出来的伤害是5单位血量。
以上拍脑袋的数值肯定是行不通的,因为我好不容易做了这么多步,冒了这么多风险,降低了这么多期望(按照所有可能出现的情况等概率计算),最后的结果竟然和我单纯用5次目标伤害所造成的血量一样,这不能忍。
然后我们还差一维标准量,我们称之为“轮”(可以理解成回合,但是这个模型可以建立在即时战斗上),比如我们定义3秒为一轮,那么我进行了一个单体目标削弱行为消耗了一轮时间,进行了单体的状态增强行为消耗了一轮时间,对目标伤害消耗了一轮时间,也就是说我执行这三步操作一共消耗了3轮时间。
那么在一轮内对对方造成的伤害,就是我们熟知的广义DPS了。
首先是“目标伤害”行为,我们要考虑它的伤害量和消耗轮数。例如某个目标伤害行为会在两轮时间内造成3单位血量的减少。那么,我们计算他的蓝耗要考虑这个行为是否有可能在第一轮被打断或者第二轮被打断或者顺利的被释放了出来。那么他顺利释放的期望为:0*1/3 +0*1/3+1*1/3 = 1/3。也就是说一般来说造成3单位血量伤害的技能需要三单位蓝量,但是由于期望的减小,使得蓝耗相应减少,也就是此技能蓝耗为3*1/3 = 1单位蓝量。
然后是“目标削弱”行为,我们可以把这个行为看作“蓄力”,也就是说先将蓝量消耗掉,用于后续的目标伤害技能打出更高额的伤害。当然这个行为是有持续时间的,我们假设某个目标削弱行为会在接下来的4轮时间内对下一次的伤害提升一个单位血量。那么这个行为有可能被触发了4次(每轮都触发),3次,2次,1次,和0次。那么这个行为的期望为:4*1/5+3*1/5+2*1/5+1*1/5+0*1/5 = 2 。那么这个行为能够对对方造成的单位血量伤害期望就为:2*1 = 2 。那么这个技能的蓝耗就为2。
同理可以推算出状态增强行为,不再赘述。
“状态维持”行为由于分为两种模式,添加抗性与“目标削弱”行为“状态增强”行为的计算方式类似。清除掉削弱状态与“目标伤害”行为的计算方式类似,再此也不赘述,只是额外的将对目标造成单位血量伤害变成豁免自己受到的单位血量伤害。
不过“状态维持”这类行为我个人觉得还是有待商榷,总觉得有什么不对劲儿但是说不出来。
以上都是对单个目标进行计算。对多个目标进行计算的时候只需要按照单个目标的蓝耗进行扩展。按照作用人数的期望进行增加蓝耗。
假设某个游戏设定一般都是5人一个小队,一般而言技能的效果都是会对1,2,3,4,5个人作用。那么这个技能的作用人数期望为:1*1/5+2*1/5+3*1/5+4*1/5+5*1/5 = 3 。那么这个技能耗蓝就要在基础蓝耗上*3。
当然,实际制作的时候会有混合类型行为的技能出现,比如在造成伤害的同时削弱目标。此时就要按技能内行为的比例进行蓝耗的的分配。比如某个技能不可被打断在一轮内对目标造成一单位血量伤害同时削弱目标,在4轮内提升一个单位血量伤害。那么他的蓝耗就为1+2 = 3 。不过有些细节需要注意,是造成伤害在前还是削弱目标在前。我倾向于如果差距不是太大的话,拍脑袋就好了……增加游戏乐趣嘛。
以上就是对蓝耗的一个建模,说是建模,其实就是对整体的蓝耗定一个基准,并对所有可能发生的情况进行期望分析以他的期望去确定蓝量。那么在概率上这个耗蓝模型就是成立的了。那么在玩家博弈的时候,谁的概率落在高于期望值得行为上,那么他就会产生优势。这就可以形成一个正当的竞技行为了。
如果有任何疑问或者质疑,欢迎指出讨论。
谢谢收看,我们再见。
补充一下……在huori那个原帖中有个回复说得很在理:
“1、依然是pve方面,法系职业多久耗空mp,取决于你的pve战斗时间有多长、游戏卖不卖蓝药、药水的CD等等……
2、pvp方面,相对要严谨些,不要搞的大家可以无穷无尽的战斗,一般pk时间控制在3分钟即可,太长容易让人厌倦,太短则毫无趣味可言。”
蓝量总额是为了控制一场战斗的时长,其中包含有效蓝量和无效蓝量。有效蓝量指的是能够对目标产生相应血量伤害所消耗的蓝量。其中还需要考虑是否有蓝量补充的问题。
所以为了简化模型,我并没有对“补充蓝量”和“补充血量”进行建模……是因为加进去的话感觉就太麻烦了……希望有心人能够归纳总结……
ps:
其实还有一个问题没有考虑到,比如有个技能是在两轮时间内直接对目标造成1单位血量伤害。另一个技能是在一轮时间内直接对目标造成1单位血量伤害。如果放在以上模型中,这两个技能蓝耗竟然是一样的……这个肯定不能忍。如何把这个维度考虑进去,就交由给位解决了。我倾向于耗蓝/轮数。
|
|