地图分线
功能说明
很多MMORPG游戏都会有分线的概念,一般玩家在游戏里切换了分线之后,并没有发现有什么特别的变化。因为分线的主要作用就是分流,游戏中的场景地图可容纳的人数是有上限的,当玩家数量超出上限时,肯定不能阻止玩家进入,而是将地图复制一份,让多出的玩家进入到拷贝的地图里。它的底层原理其实跟游戏里的副本(Mission)是一样的,只不过副本的主要目的是避免不同玩家体验相同功能时相互影响,从技术实现角度来说也几乎是相同的。
之所以要测试分线:
其一,可以进一步理解游戏开发中副本(Mission)底层机制,尤其是其创建和回收的规则,可以更有效地帮助测试人员分析和定位问题。
其二,对副本测试是一种补充,因为我们一般测试副本时,其关注的重点主要是副本的开始到结束的流程,以及过程的玩法和最后的奖励,但副本在其底层实现上可能隐藏着问题,一旦出现就会影响到所有的游戏副本。
其三,对比常见的副本(Mission),分线主要用于一些常规地图,例如主城,野外,很多功能都依托在这些场景里,玩家主要也集中在这些地图,一旦出现问题影响很广泛;而且它的开启与回收规则与副本略有不同,在测试副本的时候并不能覆盖到分线部分的逻辑,所以有必要对分线进行单独的测试。
测试分线时,最主要的就是验证分线的开启和回收。如果分线开启失败,玩家就不能正常参与功能,而如果回收失败,有可能会一直开启,占用服务端的系统资源。最糟糕的是旧的分线副本不回收,还不断开启新的,最终会导致分线副本的创建达到上限,不能再创建新的分线副本,玩家也不能正常游戏了。分线副本之所以存在上限的原因,是因为绝大部分程序实现都是用“副本池”来进行管理,这样可以避免频繁的创建和销毁副本数据,直接将回收的副本数据重新初始化就可以拿来用了,效率会高很多,而“副本池”的大小基本就是固定的,是服务端一启动就分配好的。
测试用例
下载地址及位置:功能测试用例库
问题示例
《卧虎藏龙2》的运镖活动只在1线开启,玩家领取任务后切换到其他分线,点击活动的自动寻路不会自动切换到1线,而是在当前分线寻路,无法完成活动。
《剑荡八荒》的主城地图采用了分线复制了多份,但标识成了不同势力阵营。玩家接了一个副本任务后,跑到敌方阵营点击进入副本,从副本出来后,客户端场景显示异常。这是因为默认玩家不能直接传送敌方阵营,只能通过寻路走过去,但副本结束后又要将玩家传送回之前进入副本的地图,两个规则相冲突,于是角色就被丢在了一个不存在的场景里。