搜索 Unity

用UGS Use Cases开展游戏难度的A/B测试

2022年6月15日 类别 游戏 | 8 分 阅读
Different level bars
Different level bars

当我们无从了解玩家与游戏的互动方式时,完善游戏设计会变得非常困难。借助A/B测试,我们就可以真正了解玩家的游戏方式,并针对性地决定设计方向。

Unity Gaming Services(UGS)的Use Cases是一个各色样例项目的集合,其中不仅应用了经典的游戏后端与设计要素、演示了如何完成特定开发任务,还特别展示了不同UGS产品位游戏后端带来的效率。

集合中的一个样本就是关于A/B测试的。你可以将玩家划分为多个测试组,通过控制变量来确定哪一种游戏要素对玩家来说最具吸引力、最显直观。案例中受测要素是升级所需的经验值。该例特别适用于单人游戏的alpha测试。但UGS产品在A/B测试方面有着更多的用途,本例中所用到的软件同样可以使用在多平台发售或多人游戏中。

什么是A/B测试?

A/B测试是指同时测试游戏的两个或以上版本,通过比较来找出表现更好的那一个。通过向用户开放相似但不同的游戏版本,你可以对比不同版本,并确定那些可以应用进游戏中的改动。A/B测试能让你明确哪一个版本能产生期望的结果。 

测试中的两个版本通常会被称为A版和B版。为了防止数据出现偏差,所有用户都会被随机分配一个版本。

如何在游戏中进行A/B测试

策划测试

尽管你可能已经对某个游戏设计有了改动的想法。也许是UI不够直观,也许某几位测试玩家表示第42关的谜题太容易了,可以把它放到游戏前期。

在策划这次测试时,你需要决定:

  • 需要测试哪些配置。
  • 哪些数据能显示出各个配置的表现。
  • 测试将持续多长时间。

用Remote Config配置基础参数

你可以在Remote Config面板中新建参数值来完成游戏的配置。

Remote Config dashboard

在Game Overrides中建立实验组

在设置完基本参数后,你就可以用Game Overrides Dashboard来配置游戏版本、进行测试。你不一定需要只创建AB两种版本,而是能创建许多种版本变体或变体组合,对多个变量进行测试。

Game Overrides dashboard

更新代码

在创建好远程参数、覆盖好设置、想好需要跟踪记录的东西后,你接着就需要将这些测试系统整合到游戏代码中。

你可以使用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来生成一份实验报告,查看测试的进展。然后根据这份报告来决定设计方向。

Unity Analytics Data Explorer

敲定修改

在真正了解到玩家的游戏方式后,你就能真正地让游戏变得更有乐趣和吸引力。由于测试的参数都用了Remote Config进行配置,你可以轻易地修改基本参数或取消覆盖某个设置,并且不必发布新版本。

现在就来使用我们的样例项目吧

Unity Gaming Services Use Cases样例集除了有A/B测试的项目外,还包括了其他几种演示项目。

  • 战利品箱:用Cloud Code赠与玩家Economy上的随机代币。
  • 有冷却时间的战利品箱:每隔一段时间赠与玩家随机的代币和物品。
  • 新手包:用Cloud Code开放一次性购买的新手包供玩家购买。
  • 季节性事件:在特定时间段启动特殊事件,远程更新游戏内容。
  • 放置小游戏:实时更新权威服务器上的游戏状态,实现类似放置类和社交媒体小游戏的机制。
  • Cloud AI小游戏:在权威服务器上运行的井字棋里与UGS的AI行对抗,游戏带有状态保存、代币奖励、数据统计功能,以及一个直来直去的AI。
  • 命令批处理:将游戏命令归入一条队列,然后让服务器一次性批量处理,减少游戏过程中调用服务器的次数和频率。
  • 战斗通行证:一种带有免费奖励与付费奖励、每赛季更新一次的双轨制奖励系统。关于该样例项目的详情可在这篇博文中了解。
  • 激励式广告与Unity Mediation广告聚合:让玩家有机会通过积累奖励槽和观看广告来提高关卡结束时的奖励。
  • 每日奖励任务:这种被广泛采用的游戏特色能通过不断升级的奖赏来吸引玩家持续性地登陆并游玩。
  • 虚拟商店:作为许多游戏的关键特色,一个多页面、由服务器掌管的商店能让玩家用游戏代币购买物品和资源。

请持续关注我们的GitHub仓库,更多Unity Gaming Services用例将陆续推出。

若你想进一步了解Unity Gaming Services Use Cases,请在我们最新的训练营视频学习怎样上手。

2022年6月15日 类别 游戏 | 8 分 阅读