『Anipang』:Unity Game Simulation のケーススタディ
『Anipang』は韓国で大人気を誇り、2012 年に公開されてから 350 万回以上もダウンロードされています。SundayToz のチームは『Anipang 4』で、数えきれないほどの新しいレベルをデザインする一方で、新しい機能、ゲームモード、ストーリーテリングを実装することで、プレイヤーの需要に応えました。飽きることを知らないファンベースのために前作よりもはるかに多くのコンテンツを制作することには、開発と運用の両面でさまざまな新しい試みが必要でした。SundayToz は、実行できるテストの数を飛躍的に増やし、素晴らしいゲームプレイ体験を確保するために、Unity Game Simulation に目を向けました。
-
課題
大勢に愛される古き良き名作の最新作のために大量のレベルコンテンツを制作する
-
目標
Unity Game Simulation を使用して難易度のバランスを調整し、エラーを検出することで、チームがゲームプレイに注力できるようにする
-
プラットフォーム
Android
-
チームメンバー
330 人(Unity ユーザー 110 人を含む)
-
所在地
ソウル、韓国

より多くのコンテンツを短時間で制作してテスト
『Anipang 4』は人気のマッチ 3 モバイルパズルゲームの形式を、アニメーション化された愛らしいキャラクターにより発展させています。マッチ 3 ゲームはより多くのコンテンツが求められることでよく知られており、カジュアルプレイヤーがやり尽くすのに数えきれないほどのレベルを必要とし、『Anipang』のような熱狂的なファンベースではそれがさらに求められます。十分なコンテンツを時間内に制作するために、SundayToz は Unity Game Simulation を使用して人間によるテストを補完し、難易度や失敗率を調整する作業を委任することで、チームはもっと素晴らしいコンテンツを制作することに注力できました。

成果
- 毎週新しいレベルがリリースされるときに、各レベルにつき 1,000 回のテストプレイを実行する
- 以前の人力による作業よりも 1 つのレベルにつき 100 倍以上のテストを実行した
- 開発者の時間を 1 週間につき 1 日節約した
- 楽しいものにする要素を分析することにより多くのチームの労力を注いだ
- 『Anipang 4』は公開後の最初の 2 か月で 250 万回以上ダウンロードされ、1 日あたりアクティブユーザー数は 30 万人を超えた

ファンのお気に入りに新しい観点を
『Anipang 4』に関しては、SundayToz は愛らしい動物、カジュアルなソーシャルプレイ、マッチ 3 パズルという、何百万人ものファンに愛されている要素はそのままにする一方で、最初のリリースから 10 年経ってもゲームを新鮮で真新しいものであるように感じてもらうために、20 人のプレイヤーによるリアルタイムバトル、ギルドベースのソーシャル要素(Fams)、ストーリーテリングレイヤーを混ぜ込みたいと考えていました。しかし、変更が多くなるということは、作業が多くなることを意味し、チームにはそのような大量の新しいコンテンツを制作してテストするのに、より効率的なツールが必要でした。

より短時間でより多くのレベルを
「パズルゲームに関して最も重要な部分は、レベルを制作することです。」SundayToz のテクニカルディレクター Donggun Kim 氏はこう説明しています。「平均して、私たちは毎週アップデートを実施しており、その間 20 のマップを追加します。社内的には 30 ほどのマップを制作し、その中の 60% 程度をアップデートに含めます。」
これほど多くのコンテンツをリリースすることには、チームに大量のプレッシャーがかかります。第一に、プレイヤーを熱中される革新的な方法を見つける必要があること、次に迅速にテストプレイを行い、リリース前に新しい各レベルをチェックすることです。
プロデューサー兼ディレクターの Hyunwoo Lee 氏は「開発チーム内のメンバーは、ゲームについてそれぞれ異なるアイデアを持っていました。そのため、何かを迅速に実装する、それをテストして結果をチェックする、リビジョンを再実装するというサイクルを経ることは不可欠でした」と言っています。

チームの時間を最大化
「ゲームの質を高めるうえで最も大きな課題の 1 つは、時間や人的資源に限りがあることでした。」Kim 氏はこう述べています。チームは、フルバージョンのリリースと定期的なアップデートに向けて十分なコンテンツを制作するには、レベルの難易度を調整してエラーを検出するためのテスト時間を減らす必要があることに気付きました。
SundayToz は社内システムの開発に着手しましたが、このプロジェクトに開発リソースが独占されてしまうことにすぐに気付きました。チームは既存のシミュレーションソリューションを探し始め、幸いなことにそれほど遠くまで探すことなく、Unity Game Simulation を見つけました。品質保証と難易度テストを Game Simulation に委任できたことで、「私たちはシミュレーションインターフェースを作り出すことではなく、自らの仕事に注力することができました。」Kim 氏はこのように述べています。

ソリューション
「ゲーム開発プロセスにおいて、Unity Game Simulation がテスト部分を担ってくれます。」Kim 氏はこう説明しています。これにより、パズルの難易度を予測し、データエラーを検出するシミュレーションにタスクを割り当てつつ、チームの時間をコンテンツの制作と楽しいものにする要素のテストプレイに充てられるようになりました。
「私たちは難易度の予測精度を高め、エラー検出にかかる時間を減らすことでコストを削減できることに期待しています。」Kim 氏はこのように言っています。「一般的に、私たちは制作した各レベルにつき、10 回程度のテストを実施してエラーを検出し、難易度が適正であるかどうかを評価します。Auto Play を使用することで 1 回のテストにかかる時間を 1 分以内に減らし、Game Simulation を通じて何百回ものテストを繰り返すことができるようになることを期待しています。」

仕組み
まず、SundayToz は Game Simulation を使用して Auto Play ボットを微調整します。そのボットでシミュレーションを実行し、それを実際のプレイヤーデータと比較してから、プレイヤーと同じような行動を取るようになるまでボットのパラメーターを微調整します。微調整されたボットを使用して新しいレベルのシミュレーションを実行し、それらのレベルの難易度を判定してエラーを探します。
SundayToz は各レベルを、指定のターン数、特定のブロックタイプ、ミッション数などの一連の入力パラメーターでテストします。出力される指標は、各レベルの失敗率です。シミュレーションが完了したら、SundayToz は出力されたその指標が望ましい範囲内に収まっているかどうかを判定します。収まっていない場合は、ターン数を減らしたりなどしてパラメーターを調整し、シミュレーションを再実行します。失敗率が正しい範囲に収まったら、そのレベルの難易度は適正であると見なされます。

試行錯誤
次に、チームはテストを実行して、新しいレベルにエラーがないかどうかを確認します。SundayToz は、Auto Play が指定されたターン数をすべて使い切る前にプレイを停止したシミュレーションにフラグを付けます。これが発生すると、SundayToz はそのエラーの原因(ミッション数が正しくない、オブジェクトの配置が正しくない、クラッシュなど)を特定します。そのエラーの原因を修正した後、SundayToz はシミュレーションを再実行して変更の妥当性を確認します。
「私たちは Game Simulation から得られた結果を使用して、概算を出します。」SundayToz がそのソリューションを難易度分析にどのように活用しているかについて、Kim 氏はこう説明しています。「基本的に、私たちはすでに公開済みのゲームのユーザーデータをベースに概算を出して、ユーザーの行動に影響を及ぼす可能性がある入力値の範囲を定め、その後 Unity Game Simulation を通じてその概算の妥当性を確認します。」

テストすることでゲームが成功を収める可能性を高める
Kim 氏はこのように言っています。「パズルゲームのランダム性により、10 人が同じレベルをプレイすると、そのうちの 7 人は何とかクリアできるものの、3 人はエラーにより行き詰ってしまうことも考えられます。」Game Simulation は特定のレベルのプレイスルー回数を大幅に増やし、プレイ回数が増えるほど、平均はより正確になるため、より優れた結果が典型的なプレイヤーの体験を反映します。
「Game Simulation を使い始める前は、チームメンバーがそれぞれ新しく制作されたレベルを 10 回プレイし、バランスをテストしていました。しかし、今ではエラーを検出し、その難易度を評価するために、新しく開発されたレベルを 1,000 回程度かそれ以上テストします。」Kim 氏はこう説明しています。その結果、最終リリースにまで残る問題は少なくなり、プレイヤーの体験が大幅に改善され、チームの時間が取られることがなくなりました。

楽しいものにする要素に注力
「以前よりも効率的にパズルゲームのレベルを制作することに時間を使うことができます。」Kim 氏はこう言っています。「過去には、パズルを楽しいものにする要素のチェック、難易度分析、エラー検出に同じくらいの時間を割り当てていました。今では、難易度分析やエラー検出は Game Simulation に任せ、ゲームを楽しいものにする要素をチェックすることにより多くの時間をかけることができます。」
「現在、私たちはパズルの難易度を予測することと、データエラーの検出にのみ注力していますが、その用途をパズルゲーム以外の他の領域に拡張することを計画しています。」彼はこう言っています。「私たちの次のミッションは、Game Simulation に全体的な機能をテストさせる一方で、新しい機能や重要な機能の動作をテストすることに人的資源を集中できるようにすることです。」