战斗技能
功能说明
战斗技能就是我们常说的技能,之所以加上“战斗”两个字,是因为现在的游戏里还可能会有怪物技能、生活技能、江湖技能、帮会技能等等。
战斗技能最主要的就是各样计算公式,还有技能效果了。一个游戏的战斗技能如果做的好,可以极大地提高一个游戏的耐玩性。技能平衡是游戏战斗设计永恒的难题!
战斗技能从实现方式上来说主要分为两种,一种叫子弹技,另一种叫伤害标签。子弹技的意思是,技能释放出来的像是一个真实的子弹,它只在碰撞到敌人的时候才会去计算伤害效果,操作好的话是有可能躲掉的。而伤害标签是技能施展的一瞬间,伤害在服务端就已经计算好了,等到特效打到角色身上之后,才会把伤害播放出来,这种就是无法躲避的。子弹技常备用于竞技性比较强的游戏,如dota、LOL,而伤害标签的典型代表就是《剑网三》。子弹技因为每次释放技能都要产生子弹实体,所以性能方面会要求很高,但技能的玩法会变得更加多样,趣味性更强。
一般测试战斗技能,肯定需要创建多个不同的角色,学习不同的技能,然后尝试施展,验证技能效果的正确性。有些概率触发的,比如几率使敌人眩晕,还需要调整概率后才便于测试。最常见的有些属性之间在设计上会相互克制,比如抗眩晕免疫眩晕,那免不免疫定身?又比如毒抗降低中毒时的伤害,那中毒前有毒抗和中毒后有毒抗的状态变化是否正确?除了这些有明确设计的属性之间的影响,还要注意一些隐藏性的规则,最好能够跟开发技能的程序同学核对清楚每条属性背后的实现逻辑,曾今就有一个游戏,它的眩晕和定身其实是同一个属性,只是加了不同的表现效果,结果玩家同时中两个状态的时候,两个状态会互斥,只有一个生效。
测试用例
下载地址及位置:功能测试用例库
问题示例
《剑侠情缘网络版2》的技能在施展的时候会有一个“出字暴击”的效果,其实实现的原理就是有几率触发释放出另一个更高级的技能。当时的程序忘记做基础技能和高级技能之间的互斥了,所以明教阵兵在放置一个暴击的五行旗之后,可以再放置一个普通的五行旗,而设计上同时只能存在一个五行旗,后释放的要替换掉前一次释放的。
《奇迹破坏神》有一个宠物“出战”时的附加属性是对战士职业造成额外5%的伤害,但在“宠物”休息时没有移除这个属性,结果可以通过反复“出战”叠加属性,打战士职业的角色时,十几点伤害一下变成了几万点,可秒杀对手。所技能中的buff效果要注意各种添加和移除的判断,以及buff本身的属性效果能否叠加。
《剑荡八荒》有一个夺旗战场,里面有一个“武神旗”拿到可以给角色加一个buff。拿到“武神旗”的角色可以通过退出战场将“武神旗”带出来,甚至可以继续参加并带到下一轮战场。