Introduction to Peer-to-Peer via a Relay Server
概要
AGS は、WebRTC プロトコルに基づいて、ゲームが安全なピアツーピア通信を実装するための下位レベルネットワーキング機能を提供します。
AGS P2P 機能を有効にするコンポーネントには、次のようなものがあります。
- シグナリングサーバーとして機能するAGSロビーサービス
- AGS Armada でホストされるTURN サーバー
- プレイヤーセッションを管理し、追跡するセッション サービス
- 複数のリージョンにデプロイされたすべての TURN サーバーを管理し、追跡する TURN マネージャーサービス(リージョン選択についてはお問い合わせください)
- ネットワーキングユーティリティライブラリ(現在UnrealとUnityがサポートされています)
AGS P2P ネットワーキングライブラリを使用して、ゲームクライアントは (ピアとして) 他のゲームクライアントとの安全な接続を確立できます。裏では、AGS はハンドシェイクネゴシエーション、安全なアドレス交換 (STUN)、NAT トラバーサル、およびフォールバックを処理して、直接接続できない場合にリレーサーバー (TURN) を使用します。
P2P ネットワーキングライブラリは、一般的に専用サーバー なしでピアホストのマルチプレイヤーセッションを実装するゲームに使用されます。AGS P2P ネットワーキングライブラリは、UnrealのレプリケーションシステムおよびUnityのゲームオブジェクトと組み合わせて使用できます。
キーコンセプト
WebRTC、ICE、STUN、および TURN テクノロジーは、P2P システムの基盤です。
WebRTC は、インターネットを介したアプリケーション間のリアルタイム通信を促進するためのオープンプロトコル標準です。
WebRTC は複数のプロトコルとテクニックを採用しています。
インタラクティブ接続確立 (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 ロビー サービス内に実装されたシグナリングサーバーを介してハンドシェイクが実行されます。セキュリティ上の目的で、公開 IP アドレスは公開されず、ピア間で交換されません。
次のステップ
AGS ネットワーキングユーティリティのソース:
- [AccelByte Unrealネットワークユーティリティ](https://github.com/AccelByte/accelbyte-unreal-network-utilities)
- [AccelByte Unity ネットワーキング](https://github.com/AccelByte/accelbyte-unity-networking)
P2P ネットワーキングライブラリの使用方法に関するサンプルプロジェクト:
- [AccelByte P2P Unrealチュートリアル](https://github.com/AccelByte/accelbyte-p2p-unreal-tutorial)
- [AccelByte P2P Unityチュートリアル](https://github.com/AccelByte/accelbyte-p2p-unity-tutorial)