Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER
Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER

地球防衛軍 6 (Earth Defense Force 6) が Epic Online Services を採用し、1 か月足らずでクロスプレイを導入した方法

2024年4月2日
2022年8月、日本で長年にわたり高い人気を誇るゲーム シリーズの最新ナンバリング タイトル、地球防衛軍 6 (EDF6) がリリースされました。地球防衛軍シリーズは、2003 年に「SIMPLE2000」シリーズとして PS2 向けに登場して以来、20 年にわたり継続的にシリーズを展開している 3D アクションシューティング ゲームです。当初は画面分割の協力プレイ (または対戦プレイ) のみであったものの、EDF4 からはオンライン協力プレイが実装され、そのチャレンジしがいのあるゲームプレイにより、絶大な人気を博しました。
廃墟で味方とともにアリと戦う
Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER

Epic Online Services を選択した理由

EDF シリーズは独自のフレームワークを使用して開発されており、ネットワーク通信にもカスタム実装が採用されています。当初、EDF6 は PS4 でのリリースを目指していたものの、開発中に後継機である PS5 が発売されたことで、「PS4 と PS5 の両方への対応」および「クロスマッチの実現」を目指すことになりました。 その時点で使用していたシステムでは、処理の共通性や異なるハードウェア間でのマッチメイキングに対応できないと判明したため、新しいソリューションを探す必要がありました。

この目的を満たすために選ばれたのが、Epic Online Services (EOS) でした。

EDF6 はオンライン協力プレイに対応しており、シングルプレイヤー モードと同じステージに複数のプレイヤーが挑みます。本作は、ゲームの性質上、手動のマッチメイキング システムを採用しており、プレイヤーはロビー画面でロビーを作成したり、ロビーに参加したりする必要があります。

本作では、「接続」、「ロビー」、「P2P」などの EOS の機能が使用されています。EOS のゲームへの組み込みは、EOS ロビー サービスを使用したインゲームのロビー機能に約 10 日、EOS P2P サービスを使用したゲームのパーツに約 20 日の合計ほぼ 1 か月という驚くほど短期間で行われました。

これほどの短期間で容易に実装できた理由について、Sandlot のソフトウェア エンジニアである堀内康寛氏は、インターフェースで API を呼び出し、コールバックで結果を受け取るという EOS のシンプルな構造によるものだと述べています。EOS は、Unreal Engine だけでなく、さまざまな環境で使用できるため、独自のフレームワークに基づく開発にも容易に組み込むことができます。EOS では、マルチプラットフォーム環境でのロビーや P2P などのマルチプレイヤー機能が提供されます。そのため、必要な機能のみを組み込み、変更を必要最小限に抑えることができます。
廃墟でのウイングダイバーとアリの闘い
Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER
リリース後、EDF6 は 2023年12月時点で 39 万本を売り上げ、ピーク時の同時接続プレイヤー数は 10 万人近くにのぼりますが、ロビー機能は問題なく稼働しています。堀内氏は、フォートナイトの接続にも対応できるこのサーバー ソリューションを高く評価しています。
 

柔軟なマッチメイキングを実現

EDF6 はわかりやすくシンプルなマッチメイキング システムを備えており、マッチを作成するプレイヤーはロビーの名前と条件を設定し、参加するプレイヤーはその条件に基づいてロビーを検索できます。EOS のロビーでは、作成したロビーに任意の属性値を割り当てることができるため、検索条件を柔軟に設定することができます。

属性値には文字列、整数、浮動小数点、ブール値を使用でき、検索条件として使用できます。EDF6 では、EOS の機能を活用して、検索結果を指定された属性の値でソートし、新しく作成されたロビーを優先的に表示します。また、一度に限られた数のロビーを表示し、表示された最も古いロビーの作成時刻を保存し、その時刻を以降の検索フィルターとして使用することで、再検索を行うと、さらにロビーが表示されるように管理しています。このアプローチは、EOS のロビー機能がシンプルである一方で、属性値を巧みに活用することで柔軟に検索できることが実証されています。

ゲームのバージョンやルーム ステータスなどの属性を追加することで、異なるクライアント バージョンで作成されたロビーや、最大収容人数に達したロビーを非表示にする機能も利用できます。ロビーのメンバー数などの情報をユーザーに表示するだけでなく、属性は、内部処理のためのデータを変数として格納するために活用されます。
EOS ロビー サービスによるマッチメイキング
Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER

スムーズなコミュニケーションを実現

インゲームの通信は、P2P インターフェースを使用して実現されています。Sandlot では、前シリーズのネットワークワーキングの UDP 通信部分を EOS の P2P API に置き換えるだけで、簡単に移行することができました。

EDF6 は、ペースの速いアクション ゲームであるため、通信速度を優先し、順序付けがなく、信頼性の低い通信設定を使用しています。ただし、EOS では、Reliable UDP、Ordered-Reliable UDP などの順序付けや信頼性に関する設定を行うことができるため、幅広いユース ケースに適応できます。

プレイ中、通信帯域幅は、さまざまなタイプの通信に優先順位を設定することで、一定のしきい値を超えないように管理されます。使用帯域幅がこの制限に近づくと、重要度の低い通信はスキップされます。この優先順位に基づく制御により、ピーク時においても、通常のゲーム ステートの同期通信は 320kbps 未満で保たれ、攻撃や大幅な状態変更などのイベントでは、トリガーに基づく通信が追加され、全体的な通信は 1 Mbps 未満に抑えられます。

EDF6 では、敵がターゲットとしているプレイヤーに敵の AI の通信を担わせることで、プレイヤー間で通信負荷を分散しています。これにより、他のプレイヤーの帯域幅を節約しながら、関連する敵のスムーズなアクションを実現することができます。ただし、大勢の敵のターゲットとなっている 1 人のプレイヤーに帯域幅が集中したり、離れた場所にいるプレイヤーをターゲットとする敵の動作の再現精度が低下したりするといった、トレードオフもあります。
集合住宅跡地でのアンドロイドとの戦闘
Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER

EOS のメリットとデメリット

EOS の導入は大きなメリットをもたらす一方で、正確なサンプル処理のためのオンライン情報の必要性や例外処理などの課題もあります。また、EOS が使用するサーバーはカスタマイズの必要がなく、十分な機能を備えているものの、EOS で問題が発生した際にプロアクティブに通知する機能がないため、問題の検出が難しいという問題もあります。

ただし、独自のフレームワークに簡単かつスムーズに統合できることや、プラットフォーム間で運用上の違いがほとんどないことは大きなメリットです。特に、サーバー運用コストが発生することなく、100,000 人以上の同時接続ユーザーに対応できる点は、パブリッシャーとデベロッパー双方のコストおよび運用面での懸念が軽減されるため、高く評価されています。
集合住宅地でのアリと戦車の戦闘
Courtesy of ©2022 SANDLOT ©2022 D3PUBLISHER

今後の展望

現在、EDF6 は PS4 と PS5 で発売されており、DLC の販売や、Epic Games Store および Steam でのリリースの可能性を含め、さらなる展開が見込まれています。

堀内氏は次のように述べています。「Epic Online Services については、当初パフォーマンスについて不安に感じていました。ですが、実際に使ってみると、豊富な機能を備える API が使いやすいうえに、簡単に実装できることがわかりました。Epic Online Services は、地球防衛軍 6 の開発で生じた問題を解消してくれたきわめて優れたツールです。サーバーも負荷に対するレジリアンスに優れており、オンライン機能のユーザーに安定したサービスを提供することができます」

    今すぐ Unreal Engine をダウンロードしましょう!

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