当我们无从了解玩家与游戏的互动方式时,完善游戏设计会变得非常困难。借助A/B测试,我们就可以真正了解玩家的游戏方式,并针对性地决定设计方向。
Unity Gaming Services(UGS)的Use Cases是一个各色样例项目的集合,其中不仅应用了经典的游戏后端与设计要素、演示了如何完成特定开发任务,还特别展示了不同UGS产品位游戏后端带来的效率。
集合中的一个样本就是关于A/B测试的。你可以将玩家划分为多个测试组,通过控制变量来确定哪一种游戏要素对玩家来说最具吸引力、最显直观。案例中受测要素是升级所需的经验值。该例特别适用于单人游戏的alpha测试。但UGS产品在A/B测试方面有着更多的用途,本例中所用到的软件同样可以使用在多平台发售或多人游戏中。
什么是A/B测试?
如何在游戏中进行A/B测试
策划测试
尽管你可能已经对某个游戏设计有了改动的想法。也许是UI不够直观,也许某几位测试玩家表示第42关的谜题太容易了,可以把它放到游戏前期。
在策划这次测试时,你需要决定:
用Remote Config配置基础参数
你可以在Remote Config面板中新建参数值来完成游戏的配置。
在Game Overrides中建立实验组
在设置完基本参数后,你就可以用Game Overrides Dashboard来配置游戏版本、进行测试。你不一定需要只创建AB两种版本,而是能创建许多种版本变体或变体组合,对多个变量进行测试。
更新代码
在创建好远程参数、覆盖好设置、想好需要跟踪记录的东西后,你接着就需要将这些测试系统整合到游戏代码中。
你可以使用Remote Config的SDK来下载并应用配置好的参数到游戏中,如下方所示。以下代码将根据玩家所在组自动下载并覆盖游戏的设置。
await ConfigManager.FetchConfigsAsync(new UserAttributes(), new AppAttributes());
var abTestID = ConfigManager.appConfig.GetString("A_B_TEST_ID");
var abGroupName = ConfigManager.appConfig.GetString("A_B_TEST_GROUP");
var levelUpXPNeeded = ConfigManager.appConfig.GetInt("LEVEL_UP_XP_NEEDED");
(示例代码基于Remote Config SDK 3.1.0版本)
最后,用Unity Analytics SDK将所有发生的事件发送到后台并记录。你可以为每次事件添加自定义的参数来描述所发生的事。这些参数可在随后用于筛选。每次事件中都应包含一个识别参数,表明这位玩家在发送事件时属于哪个测试组。
var playerInfo = new Dictionary<string, object> {{"abGroup", abGroupName}};
AnalyticsService.Instance.CustomData("PlayerDidSomething", playerInfo);
如果你已经用Remote Config配置好了参数,为关键的游戏行为建立好了事件,那么你就能随时在面板上发起一次新的A/B测试来测试各个参数,而不必重新打包并发布应用更新。
用Unity Analytics查看结果
你可以用面板上的Unity Analytics Data Explorer来生成一份实验报告,查看测试的进展。然后根据这份报告来决定设计方向。
敲定修改
在真正了解到玩家的游戏方式后,你就能真正地让游戏变得更有乐趣和吸引力。由于测试的参数都用了Remote Config进行配置,你可以轻易地修改基本参数或取消覆盖某个设置,并且不必发布新版本。
现在就来使用我们的样例项目吧
Unity Gaming Services Use Cases样例集除了有A/B测试的项目外,还包括了其他几种演示项目。
请持续关注我们的GitHub仓库,更多Unity Gaming Services用例将陆续推出。
若你想进一步了解Unity Gaming Services Use Cases,请在我们最新的训练营视频学习怎样上手。