パフォーマンスとスピード向上のための『Subway Surfers City』のスケーリング

Mar 24, 2026
サブウェイ・サーファーズ・シティ | SYBO

SYBOは、最新リリース『Subway Surfers City』を『Subway Surfers』シリーズの新たな一章として開発しました。前作が世界を舞台にしていたのに対し、今作ではプレイヤーをサブウェイ・シティに定着させ、個性豊かな地区や、より多彩なゲームプレイを展開します。

定番のエンドレスランナーモードに加え、本作では回転イベントやシティツアーといった限定コンテンツも導入されています。これらの新モードは、世界中の何百万人ものプレイヤーにとってこのシリーズの特徴となっている操作の反応の良さとプレイの流れを保ちつつ、ゲームの進行やゲームプレイシステムをさらに拡充します。

このビジョンの中核をなすのは、ゲームのグラフィックス品質の向上であり、アニメーションの強化、より豊かな環境、そしてゲームプレイの特徴の拡充が特徴です。ただし、こうした機能強化は、明瞭さやランタイム時の効率を犠牲にしてはならない。

今回の課題は、オリジナル版が累計45億回以上のダウンロードを記録し、グローバルな大ヒットとなった要因である「即座に楽しめる」という魅力を維持しつつ、ランナーゲームというジャンルに現代的な解釈を加え、プレイヤーにとって「馴染み深くも新鮮」な体験へと進化させることでした。

課題:

『Subway Surfers』の続編として、高い忠実度を実現し、幅広いデバイスで滑らかに動作し、安定したパフォーマンスを維持する

プラットフォーム:

iOS、Android

開発拠点:

デンマーク、コペンハーゲン

プロジェクトのスタッフ:

35

サブウェイ・サーファーズ・シティ:Unity のケーススタディ

開発チームは、『Subway Surfers Cityを、大規模な書き換えを必要とせずに、長年にわたり継続的なコンテンツ追加、新メカニクスの導入、および高画質化をサポートできるスケーラブルなライブゲームとして構築しました。「技術面でのスケールは、デザインやコンテンツのクリエイティブな面と同じペースで進めなければならなかった」と、SYBOのリードゲームデザイナーであるアタシュ・カシムは語る。

チームは、モジュール性とパフォーマンスを重視してアーキテクチャを設計した。これらはシステムをカプセル化し、拡張することで、デザイナーがゲームプレイの核心となるループを崩すことなく、ゲームプレイ要素や環境の変化を追加できるようにした。

一方で、表現力の向上はパフォーマンス上の課題ももたらしました。詳細な環境描写、高ポリゴン数のアセット、そしてより精巧なアニメーションは、中・低スペックのデバイスにとって負荷となる可能性があります。「我々は、メッシュとシェーダーの複雑さに関する厳しいバジェットを設け、品質レベルや解像度スケーリングが異なる段階的なレンダリングパスを実装し、代表的なデバイス全体で継続的にプロファイリングを行いました」と、SYBOのテクニカルディレクターであるガブリエル・ラスカノ氏は説明する。「また、シェーダーの事前準備を行う最適なタイミングを見極めるため、多大な労力を費やしました。これにより、ロード時間の短縮と、ランタイムでのシェーダーコンパイラーによるカクつきとのバランスを取っています。」

彼らは、やみくもに最適化を行うのではなく、タイルベースのGPUにおける過剰なマイクロ三角形の密度やフラグメントのオーバードローなど、真のボトルネックを特定しました。その結果、安定性と幅広いデバイス互換性を維持しつつ、複雑さを増しても対応できる、適応性が高く、パフォーマンスを重視した基盤が実現しました。

サブウェイ・サーファーズ・シティ

成果

  • 常に60fpsをヒットする
  • パフォーマンス最適化の実施後、デバイスサポートが5.9倍に増加した
  • スカイラインを26万個からごく少数の頂点に削減し、ドローコールを27回からわずか数回に減らした
  • ローエンドデバイスにおいて、フレームごとにGPUの処理完了を待つ10ミリ秒の遅延を解消しました
  • アニメーションおよび描画のオーバーヘッドを約50~60%削減し、ローエンドのAndroidデバイスにおいてメインスレッドのCPU時間を約2ミリ秒分確保した

迅速なイテレーション開発に向けたステージ設計

Subway Surfers City』のレベルデザインは、スピードと自由度を重視して作られています。このシリーズの特徴である多様性と応答性を実現するため、チームはチャンクベースのプロシージャルシステムを採用し、デザイナーがUnity エディター上で、独立したセグメントを個別に作成、モディファイアで修正、組み合わせられるようにしました。

各チャンクには、一貫性を保ちつつ、繰り返しプレイしても飽きさせないよう工夫された、多層的な要素とバリエーションのルールが含まれています。このシステムにより、スケーラブルなレベル拡大が可能となり、パス全体を再定義することなく、エンドレスモードや有限モードに新しいチャンクを直接追加することができます。

デザイナーはエディタを使用して、障害物の動きをシミュレーションしたり、インタラクションをプレビューしたり、動的要素をリアルタイムでテストしたりできます。「プレイヤーは、ゲームを最後まで再生しなくても、その『チャンク』がどのようなものか、まさに体感することができるのです」とラスカーノは説明する。

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

スナップ機能付きの配置ツールとUnityのコライダー可視化機能により、イテレーションがさらに効率化され、正確かつ迅速な調整が可能になりました。「シティツアー」のような段階的なモードの場合、デザイナーはプロジェクト全体のコンパイルサイクルをバイパスし、エディタ内で特定のブロックやステージを直接実行しました。

このモジュール構造体は、コンテンツの迅速な変更をサポートします。「当社のレベル構成は非常にモジュール式になっています」とカシムは言う。「レベルデザインの要素にはさまざまなバリエーションがあり、それぞれに対応したプレハブが用意されています。これらをチャンク内にドラッグアンドドロップして配置することができます。」「各チャンクには複数のレイヤーが含まれているため、プレイヤーが同じセグメントをプレイするたびに異なるバリエーションを体験でき、ゲームプレイに新鮮さを保ちます。」

チームはモジュール式のレベルアーキテクチャとリアルタイムの可視化技術を組み合わせることで、品質を損なうことなくイテレーションを加速させた。ラスカノが指摘するように、「このシステムにより、デザイナーは自由に試行錯誤を行い、コンテンツを効率的に拡張しつつ、エンドレスモードと有限モードの両方で、プレイヤーが期待するレスポンシブ性と洗練された仕上がりを実現できる」

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

Addressables を使用したメモリ管理

Addressablesシステムは、パフォーマンスを損なうことなく、豊かなビジュアルと拡大された環境を実現する上で、チームにとって極めて重要な役割を果たしています。チームはAddressablesを活用し、プレイヤーに関連するチャンクのみをロードするようにしました。具体的には、完了したセクションをアンロードし、新しいセクションをストリーミングすることで、メモリ使用量を最小化しつつ、リッチで動的なコンテンツを実現しました。

「チャンクはAddressablesシステムを通じて厳しい生存期間管理のもとでストリーミングされ、メモリ使用量がコンテンツの総容量ではなく、実際のゲームプレイに応じて変動するように設計されています」とラスカーノ氏は説明する。「プーリングと組み合わせることで、割り当ての急増を最小化し、コンテンツがスケールしてもランタイムメモリ使用量を安定させることができます。」

Addressablesシステムにより、チームはコンテンツをベースビルドから切り離し、レベルの一部を独立して読み込める単位として扱うことができます。「これは、初期ダウンロードサイズを縮小し、ランタイム時のメモリ使用量をコントロールすることで、店舗のコンプライアンスを維持する上で極めて重要でした」とラスカノ氏は述べる。

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

デバイスセグメント全体でのパフォーマンスのスケーリング

Subway Surfers City』のレンダリングは、ローエンド、ミッドレンジ、ハイエンドの各デバイスに対応しており、精細なグラフィックと安定したフレームレートを維持しています。チームは、ボトルネック優先の厳しい最適化手法を採用した。コンストレイントが解除されるたびに、プロファイリングによって次のボトルネックが明らかになった。「この反復プロセスにより、広範囲にわたる焦点の定まらない最適化に頼るのではなく、体系的に対応デバイスの範囲を拡大することができました」とラスカノ氏は語る。

チームは、ユニバーサルレンダーパイプライン (URP) とスクリプタブルレンダーパイプライン (SRP) バッチ処理機能を組み合わせて使用し、マテリアルの定数バッファをGPUにキャッシュし、同じシェーダーバリアントを共有するオブジェクト間で再利用することで、CPUのレンダリングオーバーヘッドを低減しました。これにより、レンダリングスレッドにおけるドローコールごとの状態設定を最小化できました。

「品質レベルごとに複数のシェーダーバリアントを実装し、グローバルキーワードとURP設定を通じてコントロールしました。」「低スペックデバイスでは照明効果を控えめにし、フラグメントパスを簡略化していますが、高スペックデバイスでは完全な忠実度を維持しています。いずれもコンテンツを変更することなく実現しています」とラスカーノ氏は述べています。

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

アーティストたちはAmplify Shader Editorを使用してシェーダーを作成し、エンジニアのサポートを必要とせずにクリエイティブなコントロールを確保しました。チームは、さまざまなデバイスでのパフォーマンスを検証し、複雑なシェーダーを書き直し、都市のスカイラインを含むキーアセットを最適化しました。

「27回のドローコールにまたがり、約26万個の頂点を持つ高頂点数の3Dアニメーションスカイラインを、フラットメッシュとパンニングテクスチャに置き換えました」とラスカノ氏は語る。「この変更により、頂点処理とマイクロトライアングルの細分化が大幅に削減され、数回のドローコールにわたって処理される頂点数がごく少なくなったため、ローエンドのAndroidデバイスにおいて、GPU処理時間を数ミリ秒分短縮することができました。」

モバイルGPUにおけるマイクロ三角形のオーバードローの低減

Mali GPU搭載デバイスでの初期のGPUプロファイリングにより、このアプリケーションが、表示されるピクセルに実質的に寄与する量よりもはるかに多くのジオメトリを送信していることが判明した。送信されたプリミティブなうち、可視性があったのは約33%にとどまり、GPUはサンプルテストカリングによって約25%を破棄した(理想的には5%未満であるべき)。さらに、マイクロ三角形による部分的なカバレッジは、一貫して50~80%に達していた(理想的には10%未満であるべきである)。

これらの結果から、このアプリケーションでは過剰なマイクロ三角形が生成されていることが示された。これは、タイルベースのモバイルGPUにおいて既知の非効率性であり、ジオメトリがスクリーンピクセルをわずかにしか覆っていない場合でも、フラグメント処理のコストが大幅に増加する。チームは、CPUとGPUのロードをリアルタイムで監視するために、独自開発の適応型システムを採用しています。ターゲットとなるパフォーマンスを維持するため、品質、アセットのインスタンス化、距離カリング、および高精細な小道具などの非必須要素を動的に調整します。

「これに対し、ポリゴン数を大幅に削減し、静的なジオメトリの背面を削除し、スカイラインのメッシュを簡略化し、チャンクごとのメッシュバジェットを厳しい基準で適用することで対応しました。」「これにより、フラグメントの処理負荷が大幅に軽減され、ローエンドのAndroidデバイスでもGPU使用時間が安定しました」とラスカノ氏は述べる。「さらに、頂点色やポリゴン数の上限設定、静的ジオメトリからの背面面の削除により、ゲームの品質を損なうことなく、GPUの負荷をさらに低減することができました。」

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

プロファイリングによる対応デバイスの拡大

開発初期段階では、グラフィックスの複雑さのため、サポートされているデバイスの中で『Subway Surfers City』を実行できたのはわずか16%でした。プロファイリングを行うにあたり、チームはGPUのフラグメントコストやシェーダーの複雑さ、さらにはCPUのサブミットオーバーヘッドやメモリリテンションといった、刻々と変化するボトルネックに直面した。

対応デバイスを拡大するため、チームはカスタムプロファイリングツールに加え、Project AuditorやMemory Profilerを多用した。Project Auditorを活用することで、過剰なシェーダーバリアントや冗長な・不適切な設定など、構成やアセットレベルでの非効率性を特定することができました。また、ランタイム時のボトルネックについては、Unity Profilerや、RenderDoc、Snapdragon Profilerといったデバイスレベルのプロファイリングツールを使用して分析を行いました。

Memory Profilerは、アセットのメモリ使用量におけるホットスポットを明らかにし、使用量の急増や不要なリテンションを引き起こしているテクスチャ、メッシュ、またはオブジェクトを特定しました。

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

「プロファイリング機能がリリースゲートにインテグレーションされました。」「すべての主要なビルドについて、CPU、GPU、メモリのバジェットに基づいて検証を行い、機能の後退を防ぎ、あるデバイス層での改善が別のデバイス層で不安定さを引き起こさないようにしました」とラスカーノ氏は説明する。

これらの指標を体系的に分析することで、チームは最適化の優先順位を決定し、ポリゴン数とメモリのバジェットを遵守するとともに、低スペックデバイスでも安定したフレームレートを実現しました。

また、チームは複製や競合を防ぐため、内部でAddressablesのチェックを実施したほか、モジュール式のチャンクシステムとオブジェクトプールにより、ゲームプレイ中のメモリ使用量の急増を最小化した。

ピーク性能よりもフレームの安定性を優先する

レンダリングに関しては、チームはテスト行列全体でのパフォーマンス測定結果に基づき、ローエンドデバイスでも安定したフレームペースを維持するため、VulkanではなくOpenGLを採用した。

「Vulkanはハイエンドデバイスでは良好なパフォーマンスを発揮しましたが、プロファイリングの結果、ローエンドのAndroidデバイスではレンダリングスレッドのストールやフレームペースの不安定さが確認されました」とラスカーノ氏は述べています。「OpenGLは、ターゲットデバイス群全体でより安定したフレーム時間を確保できたため、理論上のピーク性能よりも、対応デバイスの幅広さとフレームの安定性を優先しました。」

適応型パフォーマンス、階層型シェーダー、SRPバッチ処理、およびアセットを意識した最適化と組み合わせることで、このプロファイリング手法により、サポート対象デバイスの95%において、豊かで精細なビジュアルをスムーズに表示できるようになりました。

「UnityのIntegrated Successチームとの連携により、すでに検討・評価を進めていた最適化策について、ROIに基づいて検証し、意思決定を迅速化することができました」とラスカノ氏は語る。「最大の成果は、ジェネリックなベストプラクティスを適用することではなく、バウンディングボリュームの更新、メッシュスキニングの重複、あるいはGPUのフラグメント処理コストなど、真のボトルネックを体系的に解消したことによるものでした。」

サブウェイ・サーファーズ・シティ | SYBO

サブウェイ・サーファーズ・シティ | SYBO

重要なパフォーマンスに関するキー知見の共有

パフォーマンスの最適化に関しては、ラスカノ氏は、LOD(詳細度)システムやVulkanといったベストプラクティスを仮説として扱い、ゲームの環境に合わせて検証することの重要性を強調している。

ライブ配信向けのゲーム開発においては、ポリゴン数の制限、シェーダーの複雑さに関するバジェット、メモリ管理、継続的なプロファイリングといった安全策を講じ、イテレーションに対応できるアーキテクチャを構築することを推奨している。また、彼は、生産の後半でコストのかかる手直しを避けるため、早い段階でデバイスの到達範囲を検討することを提案している。

「平均FPSは誤解を招く恐れがあります。」このようなゲームにおいて、プレイヤーが最も気にするのはフレームレートの安定性です。「フレームレートの急上昇や描画スレッドのストールを解消することは、ピーク時のフレームレートを向上させることよりも、プレイヤーの体験に大きな影響を与えた」とラスカーノ氏は語る。「フレームペースを最適化するために、適切なレンダーパイプラインとバッチ処理戦略を選択することは、状況を一変させる要因となり得ます。」

また彼は、「パフォーマンスの最適化とは、ボトルネックをイテレーションによって解消していくプロセスである」と強調している。修正を行うたびに、コンストレイントはGPU、CPU、メモリ、およびメモリ帯域幅の間で別の場所にシフトします。「重要なのは、厳格なプロファイリング、慎重なトレードオフ、そして技術的な決定を、サポート対象とする中で最も性能の低いデバイスに合わせて整列させることです。」

Unity Pro を今すぐダウンロード

強力なツール、サポート体制、信頼できるパートナー、そして活気あふれるコミュニティの力を借りて、大手スタジオのリリースに匹敵し、その品質や成功を凌駕するゲーム制作を開始しましょう。