アービターの移行
2015 マルチプレイヤー セッションの間に、アービター移行を使用して新しいアービターを選択する必要が生じる場合があります。 次のフロー チャートは、アービターを移行する方法を示しています。
移行には、次の 2 種類があります。
- 正常なアービター移行
- フェールオーバー アービター移行
正常なアービター移行
正常なアービター移行では、退出するアービターが移行作業を支援して新しいアービターを決定できます。 この種類の移行では、トピック「マルチプレイヤー タスク」の「MPSD セッションのアービターの設定」セクションで説明されているアービターの設定を使用します。
フェールオーバー アービター移行
フェールオーバー アービター移行では、以前のアービターへの接続が失われ、残りのピアがセッションの新しいアービターを決定する必要があります。 フェールオーバー アービター移行でも、正常なアービター移行と同様に、ホスト デバイス トークンを設定し、HTTP/412 ステータス コードを処理します。 ただし、フェールオーバー アービター移行中に新しいアービターを選択する方法は複数あります。
ホスト候補リストを使用したアービターの選択
マルチプレイヤー セッション ディレクトリ (MPSD) を構成して、特定の操作中に測定されるマッチメイキング サービス品質 (QoS) メトリックに基づいて順序付けられたホスト候補リストを提供できます。 クライアントは、このリストを使用して新しいアービターを決定できます。
アービターの移行中にこのリストを利用するために、各ピアは次の手順を実行できます。
- 前のアービターのリスト位置を識別します。
- リスト内の次の本体を評価します。
- その本体がローカル本体の場合は、それを新しいアービターとして使用します。
- コンソールがマルチプレーヤー セッションに存在しなくなった場合、またはそのピアから切断された場合は、前の手順のようにリスト内の次の候補を評価します。
- リストの末尾に達しても新しいアービターが選択されない場合は、アービター選択に対して、接続が切断される可能性がある greedy 法 (貪欲法) を使用します。 詳細については、このトピックで後述する「greedy 法 (貪欲法) によるアービター選択の使用により、アービターを選択する」を参照してください。
注意
明示的なタイトル内 QoS プローブによるマッチメイキング後に、ゲーム内でホスト候補リストを作成することはお勧めしません。 このメカニズムがどうしても必要な場合は、クライアントが (Xbox ユーザー ID などの) ユーザー情報の代わりにホスト デバイス トークンを使用してアービター候補を決定するようにします。
ピア投票を使用したアービターの選択
すべてのピア間の完全な接続が存在する場合は、ピア メッセージを使用して新しいアービターの投票および選択を行うことができます。 新しいアービターでは、同期更新を使用して、セッションのホスト デバイス トークンが更新されます。
詳細情報については、トピック「マルチプレイヤー タスク」の「MPSD セッションの更新」セクションを参照してください。
greedy 法 (貪欲法) によるアービター選択を使用してアービターを選択する
使用可能なホスト候補リストがない、または接続 QoS が不要な場合 (たとえば、純粋なアービターの責任の場合) があります。 この場合、元のアービターがゲーム セッションを退出したことが検出されるとすぐに、ピアは、XblMultiplayerSessionChangedHandler イベントによって報告された時点で、新しいアービターを設定する必要があります。 他のすべてのピアは、この時点で他の変更がセッションに対して行われていないと仮定すると、ホスト デバイス トークンを設定しようとすると HTTP 412 ステータス コードを受け取ります。
1 つのピアのみが、新しいアービターの選択に成功します。