PIGIAMA KASAMAで、ライブマルチプレイヤーVRゲームの速いペースに適応する

2022年に設立されたPIGIAMA KASAMAは、自社IP『Kasama』などのゲームを開発するゲーム制作会社です。The Awakening、 、および他のブランド向けにゲーム開発サービスを提供しています。
彼らの最新作『PICKABOOM』は、探索、混沌としたインタラクション、リアルタイムのマルチプレイヤー協力プレイを核とした次世代ソーシャルVRゲームである。プレイヤーは予測不能な洞窟システムに降り立ち、荒唐無稽な自然災害を生き延び、自ら笑いと緊張と勝利の瞬間を創り出す。
共同創業者であるマッテオ・ファンチンとパリデ・ステラに話を伺い、彼らが初めてのライブマルチプレイヤーVRゲームを開発する過程で、ネットワーク不安定性、再接続失敗、パフォーマンス低下、そして迅速なコンテンツ更新サイクルといった課題にどのように取り組んだのかについて議論した。
PICKABOOMの主な目的は何でしたか?
パリデ・ステラ:私たちの主な目標は、生き生きとして予測不能で、何度でも遊びたくなるような高エネルギーなソーシャルVRゲームを作り出すことでした。プレイヤーが協力し、共に生き残り、自然と共有したくなるような瞬間を生み出す世界です。
ライブゲームとして、PICKABOOMには迅速な対応が求められます:毎週更新をリリースし、コミュニティから報告される問題を絶えず修正し、パフォーマンスを安定させながら新コンテンツを追加しています。これにより、スケールしたシステムを設計し、複数のプレイヤー間で物理演算を同期させ、スタンドアロンヘッドセット上で高いパフォーマンスを維持する必要がありました。
混沌とした協力型サバイバルとクリエイター文化が融合した感覚を目指しました。環境、災害、物理演算のインタラクションがプレイヤーを常に驚かせ、協力へと駆り立てるのです。

PICKABOOMの開発において、最大の技術的課題は何でしたか?
マッテオ・ファンチン:PICKABOOMは当スタジオ初のマルチプレイヤータイトルであり、ネットワークの不安定性、再接続の失敗、物理演算イベント発生時のパフォーマンス低下といった課題に直面させるとともに、毎週の更新をリリースしつつゲームプレイの品質を継続的に向上させるというプレッシャーにも直面させました。

チームはそれを克服するためにどのようなステップを講じたのか?
MF:問題を段階的に分解した——ライブコンテンツパイプラインの構築と継続的プロファイリングの実装である。ライブコンテンツパイプラインでは、ツールと敵キャラクターをモジュール化し、新規コンテンツを迅速に投入できるようにするとともに、更新によって過去のビルドが壊れないことを保証し、必要に応じて週次スケジュールを調整しました。
継続的なプロファイリングのため、定期的なパフォーマンス検証を実施し、実際のコミュニティプレイヤーを用いたマルチプレイヤー負荷テストを実施。さらに、メモリ使用量、ガベージコレクション、GPUスパイクに対するVR特化型最適化を優先的に行いました。このアプローチにより、開発を遅らせることなく安定した週次更新を提供することができました。

Unity 6の特徴と更新は、チームが直面した技術的課題を克服するのにどのように貢献しましたか?
追伸:ゲームのスケーリングに伴い、以下の特徴と更新によりイテレーション時間を短縮し、パフォーマンスを向上させました:
ビルド時間の短縮:ライブゲームでは頻繁なビルドの要件がある。マルチプレイヤーの性質上(最大10人同時プレイ)を考慮すると、社内チームと外部チームの両方でテストを実施することが極めて重要であった。ビルド時間の短縮により、開発時間を大幅に節約できた。
ユニバーサルレンダーパイプライン (URP)のパフォーマンス改善:VR向けの開発は、ハードウェアの制限により常に困難を伴う。URPの改良により開発が容易になり、性能向上が実感できるものとなった。混沌とした環境下での明瞭さと視認性を高めるため、照明、影、マテリアルを調整しました。
Shader Graphのアップグレード:Shader Graphを多用し、アセット作成スピード、プロシージャルエフェクト、キャラクターカスタマイズ、最適化の向上を図りました。
パフォーマンスコストを最小化しながら、複雑なマテリアルをプロシージャルに描画するカスタムマップシェーダーを開発しました。シェーダーは複数の視覚的バイオームを生成できる。非常に少ないリソースを使用しながら、GPUとメモリへの負荷を抑えつつ、劇的に異なる外観を創り出します。
Shader Graphは、アバターマテリアルシステムの構築においても重要な役割を果たしました。カスタムパイプラインを通じて、テクスチャに依存することなく単一のマテリアルを全キャラクター間で共有可能でありながら、プレイヤーがアバターのほぼ全ての要素(ネイルの色といった細部まで)をカスタマイズできる。この手法により、多数のキャラクターやアクセサリーが同時にディスプレイされる場合でも、最高のパフォーマンスが保証されます。

Unity Physicsのパフォーマンス改善:Unity Physicsは、投げる、掴む、敵の反応、災害など、あらゆるインタラクションを駆動します。マルチプレイヤー向けに十分な決定性を維持するため、リジッドボディの設定を最適化しました。
Unityオーディオシステムの改善点: Unityオーディオシステムは、位置情報の手がかり、プレイヤーの声、敵、爆発音に使用され、プレイヤーがリアルタイムで連携し、コミュニケーションを取るのを支援しました。これらの改良により、混沌とした瞬間においても明確な空間音響手がかりが実現された。
Addressables安定性:キャラクター、オブジェクト、アクセサリーのライブ更新をサポートするためにAddressablesを採用し、最大限の柔軟性を確保するとともに、プロジェクトの長期的なスケーラビリティを実現しました。

チームはGPU最適化効果をどのように実装したのか?
追伸:まず植生と宝石に対してGPU インスタンシングを適用し、GPU 最適化効果を実装しました。これはVFXとパーティクルのパフォーマンスへの影響を軽減する上で重要な役割を果たした。その後、各シェーダーを可能な限り軽量に保つよう最適化し、その目的に厳密に必要なロジックのみを含めるようにしました。
また、ポリゴン数とドローコールを可能な限り低く抑えるため、ジオメトリを最適化しました。当社の複雑な洞窟システムは非常に軽量であるため、スタンドアロン型VRハードウェア上でも滑らかな動作を実現します。当社独自開発のマップエディターにより、PICKABOOMマップの大部分を2営業日以内にプロトタイプ化、テスト、展開することが可能です。
最後に、照明コストを削減しました。このゲームのビジュアルスタイルは、リアルタイム照明の使用をほぼ完全に最小化するように設計された。リアルタイムライトは、特定のVFXシーンやプレイヤーの松明など、絶対に必要な場合にのみ使用されます。当社のカスタムマップエディターには、洞窟環境向けに特別に構築された適応型ライトプローブシステムが搭載されており、わずかなパフォーマンスコストで安定した、現実味のある照明を実現できます。
この手法の各部分を、Quest 3およびQuest 3Sで60fps以上を達成するようベンチマークしました。

コンテンツストリームの目標は何ですか?
MF:毎週、新項目、新ミニゲーム、安定性の改善、プレイヤーからのリクエストに応えた特徴を含む新更新をリリースしています。2~3週間先まで計画を立てますが、プレイヤーのフィードバックやクラッシュレポートに基づいて柔軟に対応します。モジュール化されたコンテンツ、ラピッドプロトタイピング手法、およびAddressablesを活用することで、コンテンツを非常に短期間で展開することが可能です。
チームはどのようなパフォーマンス関連の問題に直面しましたか?
追伸:災害ゲームプレイ中に物理演算のスパイク、リジッドボディの爆発、ネットワークのジッター、GPU負荷の問題に直面した。これらの課題に対処するため、物理レイヤーの簡素化、コライダーの最適化、GPU インスタンシングと低コストシェーダーの採用、同期頻度の向上、不要なオブジェクト更新の削除を実施しました。
Unityプロファイラーとフレームデバッガーは非常に役立ちました。また、ガベージコレクションの問題を特定するためにDeep Profilerに依存し、ランタイム診断にはAndroid Logcatも活用しました。

あなたが最も誇りに思っている成果は何ですか?
MF:何よりもまず、Quest 3およびQuest 3Sで安定した60fps以上を達成できたことを嬉しく思います。また、何百ものネットワーク接続された物理オブジェクトをパフォーマンスの低下なくサポートし、週次更新において「ブロッカー」バグをゼロに維持していることを誇りに思っています。最後に、フレーム落ちなしで高品質な映像をキャプチャできるカメラシステムがあるのは素晴らしいことです。
VRゲームのスケールアップを目指す開発者に、どのようなアドバイスをしますか?
追伸:私のアドバイスは、まず素早くプロトタイプを作成し、後で改良することです。マルチプレイヤーアーキテクチャは、スケーリング前にシンプルに保つことも重要であり、常にプロファイリングを継続すべきである。
MF:コンテンツはモジュール単位でビルドし、ビジュアルよりもフレームの安定性を優先することが不可欠である。また、実際のプレイヤーとのテストを週次で実施し、ツールを早期に開発することをお勧めします。
Made with Unityで作成されたプロジェクトの詳細については、リソースページをご覧ください。
