中文站

游戏策划数据检查的几种方法

       游戏策划人员一般通过文案和数值体现其价值。文案一般指游戏系统、玩法等设计,比如某个副本的流程是怎么样的,帮会的组成架构是如何的;数值一般是游戏平衡性方面相关的,比如物品获取概率、角色属性强度等。那么当游戏策划制定好这些策略后,如何反应到游戏中呢?

    我们知道,程序通过代码去实现相关的功能逻辑,策划呢,就是通过填写策划表去实现相应的文案和数值。大部分的游戏的策划表其实就是excel文件,策划通过在excel文件中填写一定规则的内容,实现自己的设定。那么游戏最终怎么去读取这些excel文件呢?一般而言,程序会对这些excel文件,也就是策划表进行预处理,将其转换成游戏项目(也就是游戏代码)可读的数据类型,比如说lua、c#、dll、python等,最终结合程序编写的代码,一起构成了整个游戏世界。

    介绍完了背景知识,现在开始这篇文章主题,即作为QA,我们如果对这些种类繁多、内容巨大的策划数据(策划表)进行检查呢?下面结合笔者目前所在项目组的实际,介绍3种策划数据检查的方法。

    第一种检查,可以在策划表预处理成目标语言文件的时候进行,比如在将excel表预处理成lua或者dll的时候。

    我们可以预先在excel表中填写检查规则,然后预处理程序读取后,对相关的excel内容进行检查,如果没有符合预先的规则,则转换成目标语言文件失败,并提示相关错误信息给策划。比如我们在策划表中预先定义这个如下规则:


其中红色框内的uint就是一个预先定义的规则,表示这一列从第7行开始,都应该是uint类型的。如果某个策划在这一列中填写一个2.4,那么在策划表预处理成目标语言的时候,就会失败,并且抛出下面的错误:


这里只举一个简单的例子,你可以根据项目组的实际情况,进行其他的检查。

       第二种方法:可以在预处理完成后进行,即策划表预处理成目标语言文件,比如lua或者dll后,我们对目标语言文件进行检查。

       这里拿笔者所在项目组来说,策划数据会被预处理成dll(c#)文件的形式,那么我们可以实现一个工具,通过加载读取这个dll文件,获取所有的策划数据,然后站在全局的角度去检查。可能有些朋友会发现,第一种方法中,大部分的检查都是针对某一张策划表内部的数据的,很难做一些跨表,或者全局性的检查。那么在这个方法中,我们就可以轻松实现跨表的检查,比如A表中的某个字段值必须在B表中出现;或者A表中的某个字段值应该和B表中某个字段值是互斥的等。我们还可以通过使用Roslyn的CSharpSyntaxTree,获取到dll所对应的语法树,然后解析这个语法树,做进一步的更深入的检查。

       第三种方法:结合自动化测试进行策划表检查。

在游戏自动化进行功能测试的时候,将通过游戏内接口获取的属性信息和策划表数据进行比较,以达到检查策划表数据填写是否合法、程序使用策划数据是否合理的目的。如果读者对自动化测试有点疑惑,可以看作者以前的相关介绍文章,或者直接留言。

上述介绍的就是目前笔者所在项目组开展的针对策划表的三种检查方法,如果有更好的方法,希望可以得到反馈,一起讨论。当然了,个人觉得,如果在功能测试的过程中不去思考、在bug修复后不去反思,那么检查的方法再多,也没用。只要当我们不断去思考,不断去反思,才能从庞大的策划数据中发现规律,然后通过工具的形式帮助我们QA进行检查,最后达到效率提高、质量提升的目的。

本文来自网易实践者社区,经作者朱洁授权发布。  

【声明】文章来源于网上采集整理,如有侵权,请邮件反馈yidunmarket@126.com,我们将尽快核实修改。