P2P を設定する
Last updated on October 19, 2026
注釈:本資料はAI技術を用いて翻訳されています。
はじめに
この記事では、Matchmaking がプレイヤーホスト型のゲームセッションを作成する前に必要な、P2P 固有のバックエンド設定について説明します。このページは、Matchmaking でホスティングモデルとして P2P を選択した後にのみ使用してください。
ルールセット、マッチプール、ゲームコード統合を含む完全な Matchmaking セットアップパスについては、マッチメイキング入門を参照してください。
前提条件
P2P を設定する前に、次を用意してください。
- AGS ゲーム namespace。
- Session を設定するゲーム namespace の Admin Portal へのアクセス。
- 環境で利用可能な TURN サーバーリージョン。追加リージョンが必要な場合は、AccelByte に連絡するか、TURN サーバー設定ページからチケットを送信してください。
- AGS CLI の手順に従うには、AGS CLI をインストールし、これらの機能にアクセスできるアカウントでサインインしている必要があります。インストールとサインインを参照してください。例では Bash シェルを使用しています。
P2P セッションテンプレートを作成する
- Admin Portal
- AGS CLI
-
テンプレートの設定を記述した JSON ファイルを作成します。ファイル名は任意です。この例では
p2p-template.jsonを使用します。{
"name": "<YourTemplateName>",
"type": "P2P",
"joinability": "INVITE_ONLY",
"minPlayers": 2,
"maxPlayers": 4,
"inviteTimeout": 60,
"inactiveTimeout": 60,
"partyCodeLength": 4
}name:<YourTemplateName>をテンプレートの一意の名前に置き換えます。type:P2Pのままにします。Admin Portal の Session Type に相当します。joinability:OPEN、CLOSED、INVITE_ONLY、FRIENDS_OF_MEMBERS、FRIENDS_OF_LEADER、FRIENDS_OF_FRIENDSのいずれかです。minPlayersとmaxPlayers: セッションのプレイヤー数の下限と上限です。inviteTimeoutとinactiveTimeout: 秒単位のタイムアウトです。60は Admin Portal のデフォルト値です。partyCodeLength: 生成される参加コードの長さです。Admin Portal は4を送信します。このフィールドを省略すると、AGS は6を使用します。
セッションテンプレートを作成および設定するで説明しているその他の設定を行う場合は、
ags session templates create --skeletonを実行してすべてのフィールドを確認してください。 -
テンプレートを作成します。
<YourNamespace>をゲーム namespace に置き換えてください。ags session templates create --namespace <YourNamespace> --json @p2p-template.json
期待される結果: セッションテンプレートが Session templates リストに表示され、マッチプールで選択できるようになります。
P2P ホスト選択の仕組み
Matchmaking が P2P セッションテンプレートからゲームセッションを作成した後、次のように処理されます。
- Lobby がマッチングされた各メンバーにゲームセッション招待を送信します。
- 各メンバーがゲームセッションに参加します。
- 最初に参加したメンバーがゲームセッションリーダーおよび P2P ホストになります。
- 他のメンバーはゲームセッションリーダー ID を読み取り、そのホストを対象にクライアントとして開始します。
- ネットワーキングライブラリが Lobby 経由のシグナリング、ICE 候補交換、STUN チェック、直接接続できない場合の TURN リレーフォールバックを実行します。
備考
ゲームセッションリーダーが P2P セッションのホストです。ゲームプレイ中にホストが離脱した場合のホスト移行や復旧が必要な場合は、その動作をゲームレイヤーで設計し、明示的にテストしてください。
セットアップを続ける
P2P セッションテンプレートを作成した後、次を実行します。
