Odyssey Interactive は、ライブサービス ゲームである Omega Strikers を、いかにしてモバイル デバイス、コンソール、PC で同時にリリースしたのか

Odyssey Interactive の CTO、Chris Shankland
私は、Odyssey Interactive の CTO であり、以前は Omega Strikers の技術リーダーでもあった Chris Shankland と申します。Omega Strikers は、まず敵をアリーナの外に叩き出してゴールまでの道を切り開くところから始まる、超高速の 3 対 3 の肉弾サッカーゲームです。弊社では Omega Strikers を、PC、PlayStation、Xbox、Nintendo Switch、iOS、Android など、主要なプラットフォームのすべてでリリースしました。そこで、モバイル デバイスで高品質で競争力のあるビジュアル体験を実現するために採用しているテクニックの一部をご説明しましょう。Omega Strikers をこのように高速かつ高品質なゲームとして出荷できたのは、弊社のチーム全体の努力のおかげでした。私は、弊社が直面した課題と実現したソリューションを通じて、同じようなゲームに知見や価値を提供したいと願っている、ただの案内役です。

Omega Strikers の核心は対戦ゲームなので、対戦ゲームとしての完成度を何よりも優先しました。これは実際問題として、パフォーマンスやゲームプレイのわかりやすさや操作性を徹底的に大事にすることを意味しています。この基本線から始めて、さらにビジュアルの質を高めていって、弊社の驚異的なビジュアルが際立つようにしたのです。ビジュアルやパフォーマンスに関する弊社の野望を実現するためには、メモリ、CPU、および GPU というお馴染みの制約をうまくやりくりする必要があります。ここで、その各領域から具体的な例を挙げて、リリースを妨げるような課題を特定して、最終的に解決するために採用したプロセスをご紹介しましょう。

メモリ

Omega Strikers はキャラクターベースのゲームで、リリース時に 15 人ラインナップされていたキャラクターは、定期的なコンテンツ アップデートを通じて増え続けています。開発当初に遡ると、キャラクターももっと少なかったし、カスタマイズできる設定も少なかったし、グラフィックスもプレースホルダーでした。当時は、キャラクターや関連するあらゆるコンテンツについて、グローバルなハード参照のセットを保持することがきわめて好都合でした。この設定で、最低スペックのデバイス上での内部テストを行っても、開発の大部分では何の問題もありませんでした。リリースが近づくと、ビジュアルの質や量が劇的に強化されました。このような高品質のアセットでしばらく開発を続けているうちに、メモリの問題が蓄積した結果、最低スペックのデバイスではゲームが起動しなくなりました。

Omega Strikers 初期ビルドのパッケージの可視化
この段階で可能な一般的な戦略は 2 つありました。アセットのサイズを減らすか、それとも、アセット管理を完全にオーバーホールして、常時ロード方式からオンデマンド ロード方式に移行するかです。オンデマンド方式は、ライブサービス モデルに求められるスケーラビリティに対応しているので、弊社ではこちらの方向に進みました。このリファクタリングは、テクスチャやキャラクターのようなより大きなアセットへのあらゆるハード参照を、ソフト参照に変換することから成り立っていました。このゲームでは、ゲームのあらゆるデータを表すアセットのセットをメモリ内に保持しているので、アセットを同期しながらすばやく解決することができます。この方法により、必要なリファクタリングが管理可能な量に限定されたので、この変更全体をたった 1 週間で完了することができました。このソリューションを採用したおかげで、Omega Strikers では、メモリの問題を再発させずに、新しいマップやキャラクターを含む大きなコンテンツ アップデートを 4 回リリースすることに成功しました。
Unreal Insights のメモリキャプチャ - ハード参照
Unreal Insights のメモリキャプチャ - ソフト参照

CPU

CPU のパフォーマンスは、リリース期限を確実に守るために、常に監視していた対象の 1 つです。このことは開発全体を通じて守られていたため、リリース時に大幅な最適化が必要になるような事態をうまく避けられました。ここでの戦略は、必ず最低スペックのデバイスで定期的にプレイして、パフォーマンスの低下に優先的に対処することです。問題が発生したときに決まって利用する診断ツールが Unreal Insights です。

GPU

さまざまなモバイル デバイス間のグラフィックスのパフォーマンスの違いも課題の 1 つです。プレイヤーは、ハイエンドのデバイスにはハイエンドのビジュアルを期待しますし、どんなデバイスにもそれなりに高いパフォーマンスを期待します。Omega Strikers では、広範囲のグラフィックスのスケーリングを実現するために、カスタム環境品質設定に加えて、テクスチャやメッシュに対する標準的な LOD のテクニックを利用しています。この設定は CVar を介して公開され操作されます。これによりデバイス プロファイルを作成して、ユーザー独自の設定をカスタマイズできるようにしています。最適化の指針として使われるプロファイリング データの取得も、大部分はやはり Unreal Insights に頼りました。特定のデバイスのパフォーマンスを深く追求する際や、細かいタイミングの調整が必要な際に、利用したもう 1 つのツールは、RenderDoc とそのプラグインです。

PSO キャッシングは、モバイル デバイス上でシェーダーが初めて使われる際のヒッチを避けるための必須の機能として、またたく間に認知されました。弊社では、特定の物理デバイスにデプロイされるあらゆる品質設定で、可能なあらゆるビジュアルを自動的にレンダリングするゲームのバージョンを作成する自動処理を開発しました。このアプリケーションは、自動実行が終わると、完全な PSO キャッシュをビルド パイプラインの中に公開して、将来のビルドに取り込めるようにします。

サマリ

Omega Strikers を小規模なチームでモバイル デバイス向けにリリースしてコンスタントにアップデートすることは、最初からモバイル デバイスを想定して開発し、さらに、Unreal Engine で開発過程を最適化するために提供されているツールを利用することで、初めて可能になります。弊社でよく採用した戦略としては、低機能のデバイス上での処理を減らしたり、少ないメモリ バジェットに合わせてアセットやデータをストリーミングしたり、どうしても必要な場合にはモバイル専用のソリューションを利用したり (UI やコントロールはその好例)、といったものがあります。 最低限のスペックのデバイスで定期的にゲームを評価することは、問題を発生しだい認識して、マイルストーン到達時に驚かされたりしないことを保証します。弊社では、開発初期に計画的にテストを行うことにより、制作をスケールアップする前に、適切な戦略やバジェットを確実に用意しておくことができました。このようなソリューションのすべてが、弊社の驚異的なチームの手によって、Omega Strikers が可能な限り広い範囲のプラットフォームで成功し、今後もライブ サービスとしてほとんど望みうる限り最高にスムーズに運営を続けることを可能にしています。

弊社の教訓が今後リリースされるゲームに役立つことを願っていますし、私はそのようなゲームをプレイする日を待ち望んで止みません。

Omega Strikers Logo 2

    今すぐ Unreal Engine を入手しましょう!

    Unreal Engine は、世界で最もオープンで高度な制作ツールです。
    あらゆる機能を備え、完全なソース コードにアクセスできる Unreal Engine を使用すれば、すぐに制作を開始できます。