Search Unity

Metric Validation はいかにしてゲームを緻密に調整するか

, 11月 13, 2020

この 1 年間にわたって、Unity Game Simulation は、開発中にクラウド上で複数のプレイスルーを並行で実行し、ゲームのバランス調整を行うことのできるサービスを開発者のみなさんに提供してきました。この度、今後リリースしていく最適化機能の先駆けとなる Metric Validation をリリースすることで、バランス調整のワークフローのさまざまな側面を自動化するための次のステップを共有できることを嬉しく思います。このブログ記事では、Unity Game Simulation のバランス調整フレームワークをレビューし、新しい Metric Validation 機能を紹介し、パートナーの Furyion 社が、Unity の次世代最適化機能を使って、ゲームバランスの調整を 10 倍高速化したケーススタディを共有します。

今すぐ無料で Game Simulation をお試しください

ゲームをローンチする際には、ソフトローンチ、大規模プレイテスト、ベータ版へのアーリーアクセスなどを通じて、プレイヤーに設計のプロセスに参加してもらうことが、プレイヤーを喜ばせる上で最良の方法の 1 つとされています。

これらのテクニックは有効ですが、ゲームが時間の経過とともに複雑になるにつれ、プレイヤーにゲーム内のすべての異なるパスや戦略を反復的に検証してもらうことは、退屈でコストがかかる作業と化してしまい、場合によっては不可能な仕事作業となることもあります。Unity Game Simulation チームは、ゲームを一通りプレイする作業を自動化してゲームバランスを測定できる強固なフレームワークがあれば、テストプレイに必要とされる人間のプレイヤーからのデータの量を大幅に削減できると考えています。

ゲームバランスのためのフレームワーク

3 つの重要な要素

私たちが開発しているフレームワークは、ゲームの 3 つの重要な要素であるメトリクス、テストケース、パラメーターに焦点を当てています。メトリクスとは、ゲームを一通りプレイした結果として測定される、ゲームバランスや健全性を達成する上で重要な指標のことです。テストケースとは、ゲーム内で評価したい様々なシナリオのことです。最後に、パラメーターとは、これを変更することでゲームを変えることができる設定で、メトリクスに直接影響を与えます。

さまざまな車が登場するシンプルなレースゲームのバランス調整を行う場合を考えてみましょう。ゲームのバランスを取るときの私たちの目標は、プレイヤーが特定の車を選ぶことで極端に有利にならないようにしつつ、楽しさと個性的な体験を提供することです。同じようなスキルを持ったボットやプレイヤーがお互いにレースをすることで、選んだ車による有利不利を測定することができます。ゴールまでの時間の差が、選んだ車による有利さを評価するためのメトリクスになります。このメトリクスを使用して、すべての車について評価を行います。そのためには、ある 2 台の車のすべての組み合わせが互いに競い合う一連のテストケースを設定します。テストケースが期待通りの結果を示さなかった場合は、車の性能を変更する方法が必要です。各車両の速度、加速、または特別なパワーアップに影響を与えるパラメーターを作成することで、より良い結果が得られるまで車の性能を変更することができます。このように、3 つの要素を組み合わせることで、ゲームバランスを評価し、設計目標を達成するために調整を行うことができます。

Unity Game Simulation では、1 つの実験ですべてのテストケースとパラメータをリストアップすることで、このような実験が可能になります。次にグリッド検索が実行され、すべてのテストケースのすべてのパラメーターの組み合わせが作成され、その組み合わせごとに自動的に通しプレイが実行されます。最後に、テストケースとパラメーターが各種メトリクスとともに返されるので、すべてのテスト結果をその時の設定と紐づけることができます。

メトリクスに基づいて行動に出る

上の例における設計目標は、「任意の車のペアにおいて、2 台の車のゴールまでの時間の差は 0 秒から 20 秒の間に収まらなければならない」というシンプルな式に集約することができます。Unity が新しく提供する Metric Validation では、これらの式を定義し、自動的に評価することができます。自動的に通しプレイを実行して得られたメトリクスは、そのメトリクスが指定した範囲内にあるかどうかに応じて、1 または 0 と評価されるブーリアンシステムによってスコアがつけられます。より一般的には、Metric Validation では、開発者はそれぞれのメトリクスに下限と上限を設定することができます。このシンプルで一貫性のあるスコアを使用することで、これらのメトリクスの境界条件を満たすパラメーターの組み合わせを見つけることが容易になります。最善のパラメーターの組み合わせは、すべてのテストケースのスコアが 1 となるものです。 これらの最善のパラメーターのセットは、より詳細な分析のためにプレイテスターに渡されたり、実際のプレイヤーに対して A/B テストを行うために活用したりすることができます。さらに、調整によるゲームの変化を確認するためのバランスの再テストは、選択したパラメーターの組み合わせで通しプレイを再実行して、すべてのスコアが 1 のままであるかを確認するだけの作業となります。

これらのスコアはグリッド検索よりも効率的なシステムの実現を可能にし、Unity が今後提供する最適化機能の一部となる予定です。スコアをリアルタイムで処理すれば、パラメーターとメトリクスの関係を知ることができます。この関係を知ることで、最適化システムはランダムな探索からターゲットを絞った探索に切り替えることができます。これは、すべてのテストケースを合格させる可能性の高いパラメーターに焦点を当てることを意味します。最適化を行うことで、初期のバランステストやバランスの再テストの効率を大幅に向上させることができます。さらに、このシステムはゲームをより直接的にバランス調整フレームワークに接続できるようにします。この接続を行うことで、開発初期からリリースまでのあらゆる段階でバランスを簡単に検証できるようになります。

ケーススタディ:Furyion『Death Carnival』のバランス調整

私たちは、ゲームバランスに関する理解を深めるために、iLLOGIKAFuryion のようなスタジオといくつかのケーススタディを行ってきました。このフレームワークを開発する際、私たちは Furyion の『Death Carnival』について振り返りを行い、私たちのバランス調整フレームワークの 3 つの重要な要素がゲームのバランスを改善するためにどのように寄与しうるかを実証しました。

Death Carnival』のメトリクスは、サンプルのステージで NPC が倒された回数と、サンプルのステージをクリアするまでにかかった時間です。Furyion は、NPC が倒された回数を 16~22、ステージクリアまでの時間を 500~750 秒としました。この範囲は、ゲームプレイに悪影響を与えることはありませんが、プレイヤーが自分の選択がゲームプレイに影響を与えていると感じるには十分な幅を持っています。パラメーターには、武器のダメージ、特殊武器の効果、またはさまざまな武器の持つ修飾語によるボーナスの強度などがありました。これらのパラメーターは武器の強さに影響を与え、その結果、ステージクリアにかかる時間と NPC が倒された回数を減少させました。さらに、テストケースには、「spread」(広範囲)、「piercing」(貫く)、「fiery」(燃え盛る)など、武器にかかる修飾語が含まれていました。Furyion は、どのような修飾語を選択しても、与えられたメトリックの範囲内に収まるようにしたいと考えていました。その結果、11 万回以上の通しプレイ(22,000 通りの組み合わせと各組み合わせについて 5 回の試行)を行い、200 通りあまりのパラメーターの組み合わせがすべてのテストケースを通過するメトリクスであることがわかりました。

人間のテスターがテストを行ったとしたら、Furyion のケースでは、コンテンツ追加や大きな変更のためのテストの再実行を含めずに、少なくとも 3,650 時間のプレイ時間が必要となります。インディーズスタジオにとって、これは現実的ではありません。Unity Game Simulation は、何百万もの異なるパラメーターの組み合わせをサポートする Unity のクラウドシミュレーションプラットフォームに、多数の同時ビルドをデプロイすることで、このようなゲームプレイのデータをすべて測定することができます。今回の Furyion の実験では、3,650 時間分のゲームプレイを約 4 時間で完了でき、テストを始めたその日のうちにデータの分析を開始することができました。Metric Validation は、プレイヤーが選択できるすべての異なる選択肢の中から、ゲームのバランスとゲームのプレイしやすさを測定するための、より費用対効果の高いソリューションを提供します。

私たちは一歩進んで、私たちのフレームワークの最後の部分の測定を開始したいと思いました。つまり、『Death Carnival』での最適化システムの評価を行うということです。私たちはリアルタイムでスコアを収集し、どのパラメータの組み合わせがテストに値するかを特定するために、これらの結果を使用しました。私たちは、可能な 22,000 通りのパラメーターの組み合わせのうち、5 つの有効な組み合わせを特定しました。この 5 つの有効な組み合わせは、2,000 回分の通しプレイでのみ見られました。この結果、シミュレーションのコストをグリッド検索と比較して 10 分の 1 に、ランダム検索と比較して 2 ~ 3 分の 1 まで圧縮することができました.システムの効率性を向上させることで、開発者はゲーム内に存在しうる無限のパスを探索することができ、新しくビルドを作るたびにバランス調整を行うことを可能にします。

最適化システムはまだ開発段階にあり、現在は限られた数のスタジオに向けて試験的に公開しています。ご関心がありましたら、ぜひ gamesimulation@unity3d.com までお問い合わせください。

Metric Validation でより良いバランス調整を

Metric Validation は、バランス調整のための通しプレイを自動化し、これを活用してゲームバランスを測定する方法を提供します。これにより、ゲームのテストプレイに必要なエネルギーと時間を大幅に削減することができます。これらの節約により、小規模なスタジオでは数人の開発者でゲームのテストプレイを行うことができ、大規模なスタジオではソフトローンチのラウンド数を減らすことを可能にし、テスターがいかに楽しくプレイできるかといった、ゲームを遊ぶ人の感情に関わる部分に集中できる時間を増やすことができます。私たちは、ゲームスタジオがより多くのゲームバランスのテストを重ねられるようにするため、ゲームスタジオと協力して Metric Validation を改良していきたいと願っております。

Try Metric Validation today.

5 replies on “Metric Validation はいかにしてゲームを緻密に調整するか”

“Simulation” isn’t QA-in-a-box, it is not an AI that plays your game.
It is a play automation with stats variation. *YOU* need to make the bot that plays your game.

Could you please increase the ratio of developer technical blog posts?
It’s been a while since the topics gets irrelevant for developers, and even if it’s interesting for others, I way more enjoy tips and tricks or how to achieve technical things in the engine.
Thanks

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です