Virtual Player(ゲームをプレイするエージェント)を作成して、Game Simulation でテストプレイを大規模に実行することで、テストプレイを容易に自動化できます。iLLOGIKA、Furyion、Ritz Deli の 3 社におけるケーススタディをお読みいただき、各社がどのように Virtual Player を作り、Game Simulation に約 40,000 時間(4.5 年)分の自動化されたテストプレイを 実行させたか、その方法を学びましょう。
プレイヤーが自分だけの体験を作り上げるための自由度が残されているという、ゲームを楽しくする要因は、そのままゲームをテストするの困難さにつながっています。そのため、ゲームにはバグや設計上の欠陥が露呈する可能性のある領域がかなり残されてしまいます。開発者は、問題を解決し、確実に納期を守るために、頻繁に、かつ広範囲にテストを行わなければなりません。
これまでは、開発者はカバレッジは低いがテストの頻度を高くする(CI パイプラインでのユニットテスト)か、カバレッジを高くする代わりにテストの頻度を下げる(大規模リリース前のテストプレイ)かのどちらかを選んでいました。
私たちは、開発者がテストプレイのカバレッジとユニットテストの頻度を両立させてテストできるように、Unity Game Simulation を開発しました。Unity Game Simulation を使用すると、開発者はクラウド上で自動化されたテストプレイを実行することができます。Unity Game Simulation は、以下の手順で使うことができます。
このブログ記事では、1 つ目のステップである、自動テスト用の Virtual Player の作成に焦点を当てています。2 つ目から 4 つ目のステップは簡単で、Game Simulation のドキュメンテーションにも記載されています。Game Simulation は、今すぐ無料でお試しいただけます。
Virtual Player は、実際のプレイヤーの入力をエミュレートして、ゲームのいくつかの要素をテストするためのものです。ゲームが例外を発生させずに 60 分間実行できるかどうかを検証するなどの簡単なテストでは、Virtual Player は、シーンを起動してランダムなアクションを実行する数行のコードを含む C# スクリプトとして、簡単に記述できます。
すべての武器がおおよそ同じ強さであるとか、すべてのステージがクリア可能であるとかのより複雑なテストを行う場合は、ノンプレイヤーキャラクター(NPC)を作るために一般的に使われるメソッドで作成することができます。これには次のものが含まれます。
ここからは、3 社のスタジオの事例から、これらのスタジオがどのように Virtual Player を作成し、合計で 40,000 時間近いテストプレイを Unity Game Simulation に行わせたのかを見ていきたいと思います。特に注目するに値することは、これら 3 社のスタジオすべてにおいて、Virtual Player を作成するためには比較的単純なアプローチを取ったにも関わらず、Game Simulation を利用することで莫大な価値を生み出したということです。
独立系スタジオの Ritz Deli 社は、50 人以上のキャラクターを使ったつないで消すパズルゲーム『Eraser Blast』を開発しました。このゲームでは、登場するキャラクターにそれぞれゲーム中で違った特徴を持たせています。Ritz Deli 社は Unity Game Simulation を使用して何百ものシミュレーションを実行し、各キャラクターが経験値レベルの上昇に応じて、より多くのスコアとコインを発生させるようになっているかを確認しました。
Ritz Deli 社の CTO 兼技術リーダー、Eric Jordan 氏はつないで消すパズルを解くことができる Virtual Player を作成する必要がありました。彼は、シンプルなヒューリスティックによる貪欲法に基づいた C#スクリプトで Virtual Player を実装しました。『Eraser Blast』では、このアルゴリズムは、同じタイプのバブルが作る可能な限り長いチェーンとのマッチを取ります。具体的には、次のような手続きです。
iLLOGIKA 社は、プレイヤーによる対戦型(PvP)ランニングゲーム『Rogue Racers』を開発したスタジオです。プレイヤーはパワーアップを含むカードのデッキを構築し、レース中に使用します。iLLOGIKA 社は、すべてのカードの組み合わせをテストし、強すぎるカードやデッキがないことを Game Simulation を使用して確認しました。
iLLOGIKA 社の開発者は、C# スクリプトを使って Virtual Player を作成しました。次のような手順となります。
Furyion 社は『Death Carnival』の開発会社です。このゲームは、ユニークな武器ソケットシステムを搭載した見下ろし型のシューティングゲームで、プレイヤーは武器、弾薬、武器モジュールの組み合わせを 10 万通り以上から選択することができます。選んだ組み合わせによって、ゲームプレイもまた違ったものとなってきます。
Furyion 社の創業者でありディレクターでもある Herbert Yung 氏は、「Behavior Designer」と呼ばれるビヘイビアツリー作成ツールを使用して Virtual Player を作成し、武器、弾薬、武器モジュールの組み合わせごとにステージクリアまでの平均時間を推定しました。その後、Herbert は Unity Game Simulation を使って何千ものシミュレーションを実行して各武器ソケットの組み合わせをテストしました。これは、600 時間以上のプレイスルー時間の節約となりました。
Herbert は、直感的な Behavior Designer の UI と Behavior Designer の多くの既製のタスクを活用して、Virtual Player を作成しました。手順は次の通りです。
Behavior Designer でボットを作成する方法の詳細については、Behavior Designer のアセットストアページのドキュメンテーションを参照してください。
Unity Game Simulation チームは、QA テストのための Virtual Player をはじめ、自動テスト用の Virtual Player の作成をお手伝いします。QA テストのための Virtual Player を作成するための新しいツールと機能をいち早くお試しになりたい方は、ぜひ Unity までお問い合わせください。
Unity Game Simulation を始めるための詳しい情報については、こちらのページをご覧ください。無料でお試しいただけます。ご質問は Game Simulation チームまでお寄せください。
Is this article helpful for you?
Thank you for your feedback!