类似云顶之弈的游戏战斗内的战斗公式如何测试,包括伤害公式,属性计算等,
列如公式
伤害=攻击伤害 - 防御等这样的公式。
现阶段需要测试这些功能,望大佬指点一二
个人需要知道的:
1、梳理公式 List:梳理清楚所有的公式 List,最好是找策划要,配置表或者战斗的 Lua 计算都可以,视情况而定;
2、梳理公式计算优先级:常见的就是公式中常见的属性稀释了;
以上都知道后,开始着手去针对性的排练组合了;
测试手段的话,使用自动化的方式排列组合公式;
因为你是自走棋,所以是分阶段的,按照阶段性的配置,去使用脚本进行所有的组合进行伤害计算;
特:因为自走棋中会存在一些概率性的一些内容,也按特殊的配值关注表现即可,如:0%,50%,100%;看起来如果没有问题的话基本没什么问题,另外如果不放心想多跑,也可以自动化的方式进行。
插眼,也想了解一下行内人士怎么测。
单纯只是测试战斗公式的话,逐步对公式内的参数进行组合模拟,然后验证比实际伤害值与预期是否一致其实就行了吧。
好几年没搞游戏了,出局人献丑两句。测试这些东西,我个人思想就一点,由点及线,由线及面。
如果你让我测试战斗公式:
1、每个英雄基础属性都是配表决定的,那么你要有一个高效的导表方式去更改游戏中的数值(最好要有一键导表之类的工具)。比如让 A 英雄攻击力和防御力变为 0,B 英雄攻击力和防御力为 100,导表重启服务,看看是否生效。
2、验证初步的公式计算,比如你这个非常简单的:伤害=攻击 - 防御。首先需要确定如何看伤害:可能有 debug 方式可以界面显示,也可能服务器日志能打印(打印伤害值还是打印英雄血量?另外配置也可以更改攻速方便测试)。然后快速指令进入战斗,看 A 攻击 B。你需要设计不同的数值来验证。比如 100-0=100?100-101 那么不扣血?比如法抗随便改,防御不变,伤害没变说明法抗不起作用是对的?比如有小数点怎么算伤害?
3、验证前后端是否一致:前端显示的伤害数、血量显示变化等,或者前端如果有日志更好;以及后端的伤害日志;
至此完成点的测试。
至于线的测试,不好意思上班中,没想出来,最好有点实际业务场景以及策划文档看,一般我都是喜欢看着文档看着实际场景才会想的出来。。。通常说,你多测几个点,差不多就形成了线了。
(看到 1L 的概率)多说一句:类似概率暴击这种,也是在第二步中测试的。通常来说怎么测试,取决于你们的战斗公式,取决于具体业务设置。假设有个很简单的概率暴击。那么第一,你需要把概率改成 0,测试。第二,你改成 50%,测试看看伤害;第三,你改成 100,改成 200 等看看;第四,你需要由点及面,需要验证很多次的情况下概率正确与否。两个验证方式:1、让战斗多次打,打的很快都行。反正 A 英雄你可以设置很多血。B 设置攻速很快,然后看日志去算。2、把开发的概率那段代码看一下,单独拉出来在你本地执行单元测试,设置一些固定变量去跑代码。至此,点的测试完成。复杂线以及面,比如多并发下代码是否会出问题,讲道理这个阶段你可能并不需要把重点放在这。这块要看具体场景来搞了。
让开发团队直接写个战斗公式工具会不会更快,他们应有现成的公式
Mark 一下,看看游戏大佬怎么测试
这种一般都会写一个公式的测试脚本,输入各种参数,一直在那里跑的。
核心是跑公式,但现实中随着机制增加可能不会这么简单,拿米游社的各种攻略做例子,对加算、乘算跟减抗、减防、无视防御、易伤等名词计算公式,都能写个好几万字,仿佛上了一学期高数
还有类似原神开服莫娜事件:玩家理解的易伤是乘算(大众游戏 + 自家崩坏三也是乘算),后面原神被扒出来加算,导致玩家投入资源白给,然后被疯狂被 diss 的问题;这意味着可能还要看与竞品的是否相似/一致,否则换成某些小工作室的游戏搞出这种事就等着凉凉了,想想就挺头疼的
个人理解的对于属性和技能伤害的方面的一些参考:
其实,策略都有,但简单的说,这些都是基于黑盒测试的逻辑来处理的,方法虽好但,针对于实时战斗来说有点不好处理,因为需要关注实时战斗中的数值变化,可能需要的是相关白盒测试的经验或者可实施的方法