プレイヤーがどのようにゲームを操作しているのかが分からないままでは、ゲームのデザインを完成させるのは難しくなります。A/B テストを行うことで、プレイヤーが実際にどのようにゲームをプレイしているかに基づいて、デザインを決定することができます。
Unity ゲーミングサービス(UGS)Use Cases は、ゲームのバックエンドにおける典型的なユースケースとゲームデザイン要素を実装したサンプルのコレクションで、特定の開発タスクを解決する方法を示し、プロジェクトにさまざまな UGS パッケージを統合することによって、ゲームのバックエンドにおいて実現できる効率性を提示するものです。
これらのサンプルの 1 つに A/B テストに関するものがあります。このサンプルでは、プレイヤーを複数のテストグループに分け、特定のゲーム要素について、どのバージョンが最も魅力的か、または直感的かを判断することができます。今回ご紹介するサンプルは、レベルアップに必要な経験値(XP)の量をテストする例です。この例は、1 人用ゲームのアルファ版プレイテストなどに適しています。しかしこれは一例にすぎず、公開済みのゲームやマルチプレイヤーゲームについても、UGS を使った A/B テストが活用できる場面は数多くあります。
A/B テストとは何か
ゲームに A/B テストを導入する方法
テストを計画する
ゲームのデザインで効果のない部分について、すでにある程度考えがおありではないでしょうか。ユーザーインターフェースの一部が直感的でないのかもしれませんし、ベータテストのプレイヤーから「ステージ 42 のパズルが簡単すぎたので、ゲームのもっと早い段階で出してよいのでは」という声が上がっているのかもしれません。
調査の計画を立てるときに、以下のことを決めておく必要があります。
Remote Config でベース値を設定する
Remote Config ダッシュボードを使ってキーと値のペアを作成して、ゲームの一部について設定を行うことができます。
Game Overrides ダッシュボードで実験グループを設定する
基本値の設定が終わったら、Game Overrides ダッシュボードを使って、テスト用のバリアントを設定することができます。A/B テストでは A バリアントと B バリアントの 2 つの比較だけでなく、必要なだけバリエーションや変化の組み合わせを作り、多くの変数を持たせたテストを行うこともできます。
コードを更新する
リモート値、オーバーライド、および追跡したい内容に関するいくらかのアイデアが準備できたので、次はゲームのコードにこれらのシステムをきちんと統合する必要があります。
Remote Config SDK を使用すると、以下のようにしてゲーム内で使用する設定値をダウンロードすることができます。これにより、プレイヤーが割り当てられたグループに応じた Game Override の値が自動的にダウンロードされます。
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 を使用していて、重要なアクションにアナリティクスイベントを設定している場合、ゲームを再コンパイルしてプレイヤーにアプリのアップデートを配信しなくても、ダッシュボードからいつでもそれらの値の 1 つについて新しい A/B テストを開始することができます。
Unity Analytics で結果を見る
ダッシュボードの Unity Analytics Data Explorer を使用すると、実験の進捗状況を示すレポートを作成することができます。このレポートに基づいて、デザインに関する意思決定を行うことができます。
デザイン変更の最終決定
実際にプレイヤーがどのようにゲームをプレイしているのかが分かるので、プレイヤーにとってより楽しく、魅力的なゲームになるように最適化することができます。Remote Config で設定したものをテストしていたわけですから、単純にベース値を変更してオーバーライドを削除すればよいのです。ゲームの新しいバージョンをリリースする必要はありません。
サンプル集を今すぐ見てみる
UGS Use Cases コレクションには、A/B テスト以外にもいくつかのサンプルが含まれています。
このプロジェクトは、Unity ゲーミングサービスの使用例を増やすために成長し続けるので、時折 GitHub リポジトリをチェックしていただければと思います。
Unity ゲーミングサービスのユースケースについて詳しく知るには、最新のブートキャンプ動画をご覧ください。