Unity 最新上线了Unity Gaming Services (UGS) Use Cases 学习手册,其中的每一个样例都采用典型的游戏后端和游戏设计,用户可以参考项目中的代码来学习各种 Unity Gaming Services 的应用方法。样例的代码清晰明了,所有水平的开发者都能轻松地阅读并理解。

https://github.com/Unity-Technologies/com.unity.services.samples.use-cases

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

https://github.com/Unity-Technologies/com.unity.services.samples.use-cases/blob/main/Assets/Use%20Case%20Samples/AB%20Test%20Level%20Difficulty/README.md

什么是A/B测试?

A/B 测试是指同时测试游戏的两个或以上版本,通过比较来找出表现更好的那一个。通过向用户开放相似但不同的游戏版本,你可以对比不同版本,并确定那些可以应用进游戏中的改动。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 {{"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 测试的项目外,还包括了其他几种演示项目。

战利品箱:用 Cloud Code 赠与玩家 Economy 上的随机代币。

有冷却时间的战利品箱:每隔一段时间赠与玩家随机的代币和物品。

新手包:用 Cloud Code 开放一次性购买的新手包供玩家购买。

季节性事件:在特定时间段启动特殊事件,远程更新游戏内容。

放置小游戏:实时更新权威服务器上的游戏状态,实现类似放置类和社交媒体小游戏的机制。

Cloud AI 小游戏:在权威服务器上运行的井字棋里与 UGS 的 AI 行对抗,游戏带有状态保存、代币奖励、数据统计功能,以及一个直来直去的 AI。

命令批处理:将游戏命令归入一条队列,然后让服务器一次性批量处理,减少游戏过程中调用服务器的次数和频率。

战斗通行证:一种带有免费奖励与付费奖励、每赛季更新一次的双轨制奖励系统。关于该样例项目的详情可在这篇文章中了解( )。

激励式广告与 Unity Mediation 广告聚合:让玩家有机会通过积累奖励槽和观看广告来提高关卡结束时的奖励。

每日奖励任务:这种被广泛采用的游戏特色能通过不断升级的奖赏来吸引玩家持续性地登陆并游玩。

虚拟商店:作为许多游戏的关键特色,一个多页面、由服务器掌管的商店能让玩家用游戏代币购买物品和资源。

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

https://github.com/Unity-Technologies/com.unity.services.samples.use-cases

Unity 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧

每一个“在看”,都是我们前进的动力