Peer-to-Peer
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) Peer-to-Peer (P2P) は、専用サーバーをデプロイせずに、1 人のプレイヤーがゲームセッションをホストできるようにします。このセクションは、Matchmaking でホスティングモデルとして P2P を選択した後に使用してください。
共通のマッチメイキングフローは Matchmaking モジュールで説明されています。P2P で変わるのは、マッチングされたプレイヤーがゲームセッションに参加した後の処理です。
- AGS Matchmaking が P2P セッションテンプレートからゲームセッションを作成します。
- プレイヤーはゲームセッション招待を受け取り、そのセッションに参加します。
- 最初に参加したメンバーがゲームセッションリーダーおよび P2P ホストになります。
- 他のメンバーは AGS P2P トランスポートを通じてそのホストに接続します。
- トランスポートは直接ピア接続を試行し、必要に応じて TURN リレーにフォールバックします。
P2P が扱う範囲
P2P ドキュメントは、次の内容に使用します。
- P2P が適切なホスティングモデルかどうかを判断する。
- P2P セッションテンプレートを作成する。
- Unreal または Unity の P2P トランスポートを設定する。
- ホスト選出とクライアント接続の動作を理解する。
- TURN、リレーフォールバック、P2P の可観測性を設定する。
Matchmaking ドキュメントは、次の内容に使用します。
- マッチルールセット。
- マッチプール。
- マッチチケットの作成とキャンセル。
- マッチ発見およびセッション招待のコールバック。
- マッチングされたゲームセッションへの参加。
P2P を使用するタイミング
プレイヤーホスト型のマルチプレイヤーセッションを実行でき、ゲーム状態の権威性のために専用サーバーを必要としないゲームでは、AGS P2P を使用します。P2P は通常、協力ゲーム、小規模なパーティベースのマッチ、カスタムルーム、またはサーバー運用コストとサーバーデプロイを簡素化したいプロトタイプに適しています。
サーバー権威型シミュレーション、競技向けのアンチチート制御、ホスト移行の保証、大規模なマッチ、または 1 人のプレイヤーのデバイスやネットワーク品質に影響されない安定したパフォーマンスが必要な場合は、代わりに AMS 専用サーバーを検討してください。
P2P でも AGS バックエンドサービスに依存します。ゲームクライアントは、シグナリングに AGS Lobby、ゲームセッションの追跡に AGS Session、直接ピア接続を確立できない場合のリレーフォールバックに TURN サーバーを使用します。
P2P セットアップパス
Matchmaking モジュールで P2P を選択した後、次のパスに従ってください。
- P2P を設定する: P2P セッションテンプレートを作成します。
- Matchmaking で、その P2P セッションテンプレートを使用するようにマッチプールを設定します。
- 使用するエンジンの P2P トランスポートを設定します。
- 共通のゲームコードガイドに従います。
- ゲームホストに接続する セクションで P2P タブを選択します。
最初の統合では TURN オートスケーリングから始めないでください。TURN 設定は、基本的な 2 クライアント接続フローが動作した後、または本番リージョンとキャパシティを準備する段階で重要になります。
ゲーム側で対応すること
AGS は、セッション追跡、シグナリング、STUN チェック、TURN リレーフォールバック、SDK ユーティリティを提供します。P2P 接続の周辺にあるゲームプレイネットワーキングモデルは、引き続きゲーム側で扱う必要があります。
- ホストをゲーム状態の権威にするかどうかを決定する。
- ホスト切断、マッチキャンセル、再接続動作を処理する。
- マッチメイキング、招待受信、セッション参加、ホスト接続、接続失敗の UI 状態を表示する。
- 途中参加を許可するかどうかを決定する。
- TURN リレーが必要になる制限の厳しいネットワークでテストする。
主要な概念
WebRTC、ICE、STUN、TURN の各技術が AGS P2P の基盤となっています。
WebRTC は、インターネット上でアプリケーション間のリアルタイム通信を実現するためのオープンなプロトコル標準です。WebRTC は複数のプロトコルと技術を採用しています。
-
Interactive Connectivity Establishment (ICE): 2 台のコンピュータ同士を通信させ、ネットワークアドレス変換 (NAT)、ファイアウォール、その他のネットワーク障壁に対応するための技術です。
-
ICE は、STUN(Session Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs))サーバーを介してネットワーク接続情報を交換する手法や、TURN(Traversal Using Relays around NAT)サーバーを介してネットワークトラフィックをリレーする手法など、さまざまな技術を使用します。
AGS はこれらの STUN および TURN サーバーをホストしており、いずれも Google の COTURN プロジェクトをベースにしています。
詳細情報:
セキュリティ
あるピアが別のピアへの接続を試みる際、AGS Lobby 内に実装されたシグナリングサーバーを介してハンドシェイクが実行されます。セキュリティ上の理由から、ピア間でパブリック IP アドレスが公開・交換されることはありません。