Skip to main content
シンプルなマルチプレイヤー シナリオでは、ゲームのプレイヤーがフレンドとオンラインでプレイできます。このトピックでは、Multiplayer Manager を使用してこのシナリオをサポートするために実装する必要のある基本的な手順について説明します。

招待の送信と承諾の手順

以下の手順では、Multiplayer Manager を使用してユーザーのフレンドに招待を送信し、そのフレンドが進行中のゲームに参加できるようにします。
  1. Multiplayer Manager を初期化する
  2. ローカル ユーザーを追加してロビー セッションを作成する
  3. フレンドに招待を送信する
  4. 招待を承諾する
  5. ロビーからゲーム セッションに参加する
手順 1、2、3、および 5 は、招待を実行するデバイスで行います。 手順 4 は通常、プロトコル アクティベーションによるアプリ起動の後、招待された側のデバイスで開始されます。 詳細については、フレンドとゲームをプレイする (フローチャート) を参照してください。

Multiplayer Manager を初期化する

ロビー セッション オブジェクトは、有効なセッション テンプレート名で Multiplayer Manager が初期化されると自動的に作成されます。セッション テンプレートはサービス構成で定義されます。
サービス上のロビー セッション インスタンスは、ユーザーが追加されるまで作成されません。

フラット C API

詳細については、XblMultiplayerManagerInitialize を参照してください。 このトピックの先頭に戻る。

ローカル ユーザーを追加してロビー セッションを作成する

ローカルでサインインしている XBOX services ユーザーをロビー セッションに追加します。最初のユーザーが追加されると新しいロビーがホストされます。それ以外のすべてのユーザーは、既存のロビーにセカンダリ ユーザーとして追加されます。 Multiplayer Manager は、フレンドが参加できるようにシェルにロビーを広告します。 ローカル ユーザーを追加した後にのみ、招待の送信、ロビー プロパティの設定、および lobby() を介したロビー メンバーへのアクセスが可能です。 ローカル ユーザーがロビーに参加するとき、その接続アドレスとカスタム プロパティを設定することをお勧めします。 このプロセスは、ローカルでサインインしているすべてのユーザーに対して繰り返す必要があります。 このトピックの先頭に戻る。

単一のローカル ユーザーの追加

フラット C API

詳細については、以下を参照してください。 このトピックの先頭に戻る。

複数のローカル ユーザーの追加

フラット C API

詳細については、以下を参照してください。 変更は次の XblMultiplayerManagerDoWork 呼び出しでバッチ処理されます。 Multiplayer Manager は、ユーザーがロビー セッションに追加されるたびに XblMultiplayerEventType::UserAdded イベントを発生させます。 そのユーザーが正常に追加されたかどうかを確認するために、イベントのエラー コードをチェックすることをお勧めします。 失敗した場合は、エラー メッセージが失敗の原因の詳細を提供します。 Multiplayer Manager は、ローカル ユーザーを追加してロビー セッションを作成するために以下の機能を実行します。
  • XBOX services マルチプレイヤー サービスに Real-Time Activity およびマルチプレイヤー サブスクリプションを登録する。
  • ロビー セッションを作成する。
  • すべてのローカル プレイヤーをアクティブとして参加させる。
  • セキュア デバイス アドレス (SDA) をアップロードする。
  • メンバー プロパティを設定する。
  • セッション変更イベントに登録する。
  • ロビー セッションをアクティブなセッションとして設定する。
このトピックの先頭に戻る。

フレンドに招待を送信する

プレイヤーがゲームに招待するフレンドまたは最近のプレイヤーを選択できる、標準の XBOX UI を表示します。 プレイヤーが選択を確定すると、Multiplayer Manager は選択されたプレイヤーに招待を送信します。 ゲームは、XblMultiplayerManagerLobbySessionInviteUsers メソッドを使用して、XBOX services ユーザー ID で定義された人々の集合に招待を送信することもできます。 このメソッドは、標準の XBOX UI ではなく独自のゲーム内 UI を使用する場合に便利です。

フラット C API

詳細については、XblMultiplayerManagerLobbySessionInviteUsers を参照してください。 Multiplayer Manager は、フレンドに招待を送信するために以下の機能を実行します。
  • XBOX 標準のタイトル呼び出し可能 UI (TCUI) を表示する
  • 選択されたプレイヤーに直接招待を送信する
このトピックの先頭に戻る。

招待を承諾する

招待されたプレイヤーがゲーム招待を承諾したり、シェル UI を介してフレンドのゲームに参加したりすると、そのデバイス上でゲームが起動されます。 Microsoft Game Development Kit (GDK) ベースのゲームでは、ゲームの開始後に XGameActivationRegisterForEvent を呼び出して招待イベントをリッスンします。 XBOX One Software Development Kit および Universal Windows Platform (UWP) ベースのゲームでは、ゲームの開始後、Multiplayer Manager はプロトコル アクティベーション イベント引数を使用してロビーに参加できます。 招待されたユーザーが XblMultiplayerManagerLobbySessionAddLocalUser を介して追加されていない場合、XblMultiplayerManagerJoinLobby は失敗し、JoinLobbyCompleted イベントで XblMultiplayerEventArgsXuid を呼び出すことにより、招待が送信された対象の xuid を提供します。 ロビーに参加した後、ローカル メンバーの接続アドレスとメンバーのカスタム プロパティを設定することをお勧めします。 また、ホストが存在しない場合は、XblMultiplayerManagerLobbySessionSetSynchronizedHost を介してホストを設定することもできます。 最後に、既にゲームが進行中で、招待されたユーザーのためのスペースがある場合、Multiplayer Manager はユーザーをゲーム セッションに自動参加させます。 タイトルは JoinGameCompleted イベントを通じて通知され、適切なエラー コードとメッセージが提供されます。 エラーまたは成功の結果は、JoinLobbyCompleted イベントを介して処理されます。

フラット C API

詳細については、以下を参照してください。 Multiplayer Manager は、招待を承諾するために以下の機能を実行します。
  • Real-Time Activity およびマルチプレイヤー サブスクリプションを登録する。
  • ロビー セッションに参加する。
  • 既存のロビー状態のクリーンアップ。
  • すべてのローカル プレイヤーをアクティブとして参加させる。
  • SDA をアップロードする。
  • メンバー プロパティを設定する。
  • セッション変更イベントに登録する。
  • ロビー セッションをアクティブなセッションとして設定する。
  • ゲーム セッションに参加する (存在する場合)。
  • 転送ハンドルを使用する。
このトピックの先頭に戻る。

ロビーからゲーム セッションに参加する

招待が承諾され、ホストがゲームを開始する準備ができたら、XblMultiplayerManagerJoinGameFromLobby を呼び出すことにより、ロビー セッションのメンバーを含む新しいゲームを開始できます。 エラーまたは成功の結果は、JoinGameCompleted イベントを介して処理されます。

フラット C API

詳細については、XblMultiplayerManagerJoinGameFromLobby を参照してください。 Multiplayer Manager は、ロビーからゲーム セッションに参加するために以下の機能を実行します。
  • ゲーム セッションを作成する。
  • すべてのローカル プレイヤーをアクティブとして参加させる。
  • SDA をアップロードする。
  • メンバー プロパティを設定する。
  • セッション変更イベントに登録する。
  • ロビー セッションを介してゲームを広告する。
このトピックの先頭に戻る。
最終更新日 2026年8月25日