次の方法で共有


マルチプレイヤーの概念の概要

マルチプレイヤー システムには、マルチプレイヤー セッション、マルチプレイヤー セッション ディレクトリ (MPSD)、SmartMatch マッチメイキング、サービスの品質 (QoS) が含まれます。

このトピックでは、Xbox サービスのドキュメントでよく使用される、マルチプレイヤー関連の重要な用語および概念を説明します。 これらの概念をよく把握しておくと、Xbox サービス マルチプレイヤーのしくみを理解しやすくなります。

マルチプレイヤー セッション

マルチプレイヤー セッションは、Xbox サービス プレイヤーのグループと、それらのユーザーに関連付けられたプロパティを表します。 セッションはタイトルによって作成および管理されます。 Xbox サービス クラウドに置かれたセキュアな JSON ドキュメントとして表されます。

セッション ドキュメント自体には、セッションに接続している Xbox サービス プレイヤーについての情報、利用可能なスポットの数、(セッションおよび各セッション メンバーの) カスタム メタデータ、およびゲーム セッションに関連するその他の情報が含まれます。

各セッションは、セッション テンプレートに基づいています。 これは、ゲーム開発者によって定義され、タイトル インスタンスの Xbox サービス構成で構成されます。

タイトルはセッションを作成して更新できますが、セッションを直接削除することはできません。 代わりに、セッションからすべてのプレーヤーが削除された後、指定されたタイムアウトの経過後に、自動的に Xbox サービス マルチプレイヤー サービスによってセッションが削除されます。

タイトルでは複数のセッションを使用することもできますが、典型的なマルチプレイヤーの実装では次の 2 つのセッションを使用します。

  • ロビー セッション: 複数のラウンド、レベル、マップなど、ゲーム内で行動を共にしたいフレンドのグループを表します。

  • ゲーム セッション: ラウンド、マッチ、レベルなど、ゲームの特定のセッション インスタンスでプレイしているユーザーを表します。 このセッションには、(通常はマッチメイキング サービスを通じて) セッション インスタンスに共に参加することになった、複数のロビー セッションからのメンバーを含めることができます。

マルチプレイヤー セッションの詳細については、「マルチプレイヤー セッションの高度なトピック」を参照してください。

シナリオの例

このシナリオでは、Tereza はフレンドの Sergio および Alejandra とマルチプレイヤー ゲームをプレイしたがっています。

  1. Tereza はゲームを起動し、Sergio と Alejandra を自分のゲームに招待します。
  2. Sergio と Alejandra が参加すると、Tereza を含めた 3 人がロビー セッションにいることになります。
  3. このセッションで、3 人は他のプレイヤーとオンライン マッチでプレイすることにします。
    1. ゲームはゲーム セッションを作成します。 Xbox サービス マッチメイキング サービスを使用して、プレイヤーの残りのスロットを他の Xbox サービス プレイヤーで埋めます。
    2. Ermal と Miguel が 3 人とマッチングされ、この 5 人が一緒にラウンドをプレイするとします。
  4. ラウンド終了後、Tereza、Sergio、Alejandra はゲーム セッションから退出しますが、ロビー セッションにはまだ一緒に残っています (Ermal と Miguel はいません)。 3 人は、新しいラウンドをプレイするか、それとも別のゲーム モードに切り替えるかを選択できます。

セッション メンバー

セッション メンバーは、セッションに参加している Xbox サービス プレイヤーです。

アービター

アービターは、ゲームのセッションの状態を管理する本体またはデバイスです。 たとえば、アービターは、プレイヤーをさらに見つけるためにゲーム セッションをマッチメイキングに公開します。

アービターは、タイトルが設定します。 アービターとゲームのホストは同じでもかまいませんが、必須ではありません。

セッション ホスト

セッション ホストは、ホスト ベースのピアツーピア ネットワーク アーキテクチャ上に構築されるタイトルに対してゲーム プレイ シミュレーションを実行する本体またはデバイスです。 この本体またはデバイスは通常、アービターと同じですが、必須ではありません。

マルチプレイヤー セッション ディレクトリ (MPSD)

Xbox サービス マルチプレイヤー サービスは Xbox サービス クラウドで動作します。 このサービスは、ゲームのマルチプレイヤー システム メタデータを複数のクライアントにまたがって一元管理します。 このメタデータを追跡するシステムは、マルチプレイヤー セッション ディレクトリ (MPSD) と呼ばれます。

MPSD はアクティブなゲーム セッションのライブラリと考えることができます。 ゲームでは、タイトルに関連するアクティブ セッションを追加、検索、変更、または削除できます。 MPSD はさらに、セッション状態を管理し、必要なときはセッションを更新します。

MPSD により、タイトルは、プレイヤーのグループを接続するために必要な基本情報を共有できます。 これにより、セッション機能が同期され、一貫性が保たれます。 MPSD は、招待の送信/受け入れおよびゲーマー カード経由での参加において、シェルおよび Xbox One (あるいはそれ以降) 本体の OS と調整します。

セッション ハンドル

セッションは、データを組み合わせることによって MPSD で一意に識別されます。 要件は次のとおりです。

  • タイトルのサービス構成 ID (SCID)
  • セッションの作成に使われたセッション テンプレートの名前
  • セッションの名前

セッション ハンドルは、MPSD に存在する特定のセッションへの参照を含む JSON オブジェクトです。 セッション ハンドルは、Xbox サービス メンバーの既存のセッションへの参加を許可します。

各セッション ハンドルにはハンドルを一意に識別する GUID が含まれ、タイトルは単一の GUID を使ってセッションを参照できます。

セッション ハンドルは次のとおりです。

招待ハンドル

招待ハンドルは、ゲームへの参加を招待するときにメンバーに渡されます。 招待ハンドルには、招待されたメンバーのゲームが正しいセッションに参加できるようにする情報が含まれています。

検索ハンドル

検索ハンドルは、セッションに関する追加のメタデータを含み、タイトルが選択した条件を満たすセッションを検索できるようにします。

アクティビティ ハンドル

アクティビティ ハンドルは、メンバーが、ソーシャル ネットワーク上の他のメンバーがプレイしているコンテンツを表示できるようにします。 このハンドルを使用して、フレンドのゲームに参加できます。

相関ハンドル

相関ハンドルは実質的にセッションのエイリアスとして機能し、ゲームが相関ハンドルの ID を使用するだけでセッションを参照できるようにします。

転送ハンドル

転送ハンドルは、セッション間でプレイヤーを移動するために使用されます。

招待

Xbox サービスは、マルチプレイヤー サービスによってサポートされる招待システムを提供します。 このサービスにより、プレイヤーは他のプレイヤーを自分のゲーム セッションに招待できます。 招待されたプレイヤーはゲームへの招待を受け取ります。 タイトルは、この情報を使用して既存のセッションとマルチプレイヤー エクスペリエンスを結合します。

タイトルは招待のフローと、招待を送信できるタイミングを制御します。 招待はプレイヤーによってシェル経由で、またはタイトルから直接送信できます。

招待の通知テキストをタイトルによって動的に設定し、招待されるプレイヤーに詳しい情報を提供することができます。 招待には、タイトルに関する追加データ (プレイヤーからは見えず、追加情報の伝達に使用できる) を含めることもできます。

途中参加

招待に加えて、Xbox サービスには、フレンドまたは他の既知のプレイヤーのアクティブなゲームプレイ セッションにプレイヤーが参加するためのシェル オプションがあります。 これはアクティブなゲーム セッションへの別の参加手段で、この手段も MPSD によって提供されます。

タイトルはセッションが参加可能になるタイミングと、途中参加を許可するセッションを制御します。

プロトコルのアクティブ化

Tereza が Alejandra にゲームへの参加の招待を送る場合、Alejandra はデバイスで通知を受け取り承諾または辞退できます。

ゲームがまだ実行されていない場合、Alejandra が招待を承諾すると、OS はゲームの開始を試みます。 OS は、ゲームがアクティブ化された理由についての情報および他の詳細情報を含むアクティブ化 イベントをトリガーします。 (たとえば、招待の場合、詳細情報にはメンバーを招待したプレイヤーの ID や、メンバーが招待されたセッションなどが含まれます。)

このイベント処理のプロセスはプロトコルのアクティブ化と呼ばれます。 これは、ゲームが特定の状態 (アクティブ化イベント引数で詳しく記述されています) に自動的になる必要があることを示します。 メンバーがマルチプレイヤー ゲームに参加している場合、セッション ハンドル ID が引数の 1 つとして指定されます。

Alejandra のケースでは、招待を受け入れるとゲームが自動的に開始し (必要な場合)、Tereza と同じゲーム セッションに Alejandra を参加させます。 このとき、Alejandra が操作を行う必要はありません。

プロトコルのアクティブ化は、招待の受け入れ、プロフィール カードによる別のメンバーのゲームへの参加、またはディープリンクされた実績の選択によってトリガーされます。

SmartMatch マッチメイキング

SmartMatch は、匿名マッチメイキングのための Xbox サービス サービスの名称です。 このサービスは、構成可能なマッチ ルール セットに基づいて、同じゲームのプレイヤーをマッチングします。

マッチメイキング サービスは、MPSD と密接に連携し、マッチメイキングの入力と出力にセッションを使用します。 マッチメイキングはサービス上で実行されるため、タイトルはマッチメイキング フローの間、タイトル内でのシングル プレイヤーのような他のエクスペリエンスを容易に提供できます。

マッチメイキングに参加したい個人またはグループは、マッチ チケット セッションを作成し、マッチメイキング サービスを要求してマッチを設定する他のプレイヤーを検索します。 これにより、(マッチ ホッパー上で) マッチメイキング サービス内に一定期間常駐する一時的な "マッチ チケット" が作成されます。

マッチメイキング サービスは、ルール構成、プレイヤーごとに格納される統計情報、マッチ要求時に指定される追加の情報に基づいて、一緒にプレイするセッションを選択します。 次に、サービスは、マッチしたすべてのプレイヤーを含むマッチ ターゲット セッションを作成し、ユーザーのタイトルにマッチを通知します。

ターゲット セッションの準備ができたら、タイトルは QoS チェックを実行してグループが一緒にプレイできることを確認するか、ゲームプレイを開始するためにプレイヤーをセッションに参加させることができます。 QoS プロセスおよびマッチメイキングされたゲームプレイ中、タイトルは、MPSD 内でセッション状態を最新の状態に保ち、セッションの変更に関する通知を MPSD から受信します。 このような変更には、プレイヤーの参加または退出、セッション アービターの変更が含まれます。

マッチ チケット セッション

マッチ チケット セッションは、マッチを行うプレイヤーのクライアントを表します。 通常は、同じロビーにいるプレイヤーのグループに基づいて、またはそれとは異なるタイトル固有のプレイヤーのグループに基づいて作成されます。 チケット セッションは、追加のプレイヤーを探している既に進行中のゲーム セッションの場合もあります。

マッチ チケット

マッチメイキングにチケット セッションを送信するとマッチ チケットが作成され、マッチ チケットはマッチメイキングの試行を追跡します。 ゲーム マップやプレイヤー レベルなどの属性をチケットに追加できます。 これらの属性は、チケット セッション内のプレイヤーの属性と併せて、マッチを決定するために使用されます。

ホッパー

ホッパーは、マッチメイキングの開始時にマッチ チケットが集められて指定される、論理的な場所です。 同じホッパーの内部にあるチケットのみがマッチング可能です。

タイトルには複数のホッパーを含めることができます。 ただし、一度に 1 つのホッパーでしかマッチメイキングを開始できません。 たとえば、タイトルでは、プレイヤーのスキルがマッチングに最も重要な項目であるホッパーを作成できます。 タイトルでは、同じダウンロード可能なコンテンツを購入している場合のみプレイヤーがマッチされる、別のホッパーを使用できます。

マッチメイキング用のホッパーはサービス構成で構成します。

サービスの品質 (QoS)

ゲーマーがマルチプレイヤー ゲームをオンラインでプレイするとき、ゲームの品質は、ゲームをホストしているデバイス間のネットワーク通信品質に影響されます。 ネットワークの品質が低いと、遅延や帯域幅不足によってラグや切断が発生し、ゲーム エクスペリエンスに支障をきたす可能性があります。

QoS は、プレイヤー間のオンライン接続の強度 (遅延と帯域幅) を測定し、すべてのプレイヤーのネットワーク接続品質が十分であることを保証することを指します。 ネットワーク接続のため、マッチメイキング中にマッチングされるプレイヤーにとって、快適なエクスペリエンスを保証するために、これは特に重要です。 招待の場合、一緒にプレイするのはフレンドであり、接続が低品質であっても許容されやすい傾向があるため、QoS の優先度は下がります。

特定の基準に基づいて QoS を自動的に処理するようにセッションを構成できます。 プレイヤーがセッションに参加するたびに、ゲームで QoS の測定を処理することもできます。