招待の送信と承諾の手順
以下の手順では、Multiplayer Manager を使用してユーザーのフレンドに招待を送信し、そのフレンドが進行中のゲームに参加できるようにします。 手順 1、2、3、および 5 は、招待を実行するデバイスで行います。 手順 4 は通常、プロトコル アクティベーションによるアプリ起動の後、招待された側のデバイスで開始されます。 詳細については、フレンドとゲームをプレイする (フローチャート) を参照してください。Multiplayer Manager を初期化する
ロビー セッション オブジェクトは、有効なセッション テンプレート名で Multiplayer Manager が初期化されると自動的に作成されます。セッション テンプレートはサービス構成で定義されます。サービス上のロビー セッション インスタンスは、ユーザーが追加されるまで作成されません。
フラット C API
ローカル ユーザーを追加してロビー セッションを作成する
ローカルでサインインしている XBOX services ユーザーをロビー セッションに追加します。最初のユーザーが追加されると新しいロビーがホストされます。それ以外のすべてのユーザーは、既存のロビーにセカンダリ ユーザーとして追加されます。 Multiplayer Manager は、フレンドが参加できるようにシェルにロビーを広告します。 ローカル ユーザーを追加した後にのみ、招待の送信、ロビー プロパティの設定、およびlobby() を介したロビー メンバーへのアクセスが可能です。
ローカル ユーザーがロビーに参加するとき、その接続アドレスとカスタム プロパティを設定することをお勧めします。
このプロセスは、ローカルでサインインしているすべてのユーザーに対して繰り返す必要があります。
このトピックの先頭に戻る。
単一のローカル ユーザーの追加
フラット C API
- XblMultiplayerManagerLobbySessionAddLocalUser
- XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress
- XblMultiplayerManagerLobbySessionSetProperties
複数のローカル ユーザーの追加
フラット C API
- XblMultiplayerManagerLobbySessionAddLocalUser
- XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress
- XblMultiplayerManagerLobbySessionSetProperties
- XBOX services マルチプレイヤー サービスに Real-Time Activity およびマルチプレイヤー サブスクリプションを登録する。
- ロビー セッションを作成する。
- すべてのローカル プレイヤーをアクティブとして参加させる。
- セキュア デバイス アドレス (SDA) をアップロードする。
- メンバー プロパティを設定する。
- セッション変更イベントに登録する。
- ロビー セッションをアクティブなセッションとして設定する。
フレンドに招待を送信する
プレイヤーがゲームに招待するフレンドまたは最近のプレイヤーを選択できる、標準の XBOX UI を表示します。 プレイヤーが選択を確定すると、Multiplayer Manager は選択されたプレイヤーに招待を送信します。 ゲームは、XblMultiplayerManagerLobbySessionInviteUsers メソッドを使用して、XBOX services ユーザー ID で定義された人々の集合に招待を送信することもできます。 このメソッドは、標準の XBOX UI ではなく独自のゲーム内 UI を使用する場合に便利です。フラット C API
- 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
- Real-Time Activity およびマルチプレイヤー サブスクリプションを登録する。
- ロビー セッションに参加する。
- 既存のロビー状態のクリーンアップ。
- すべてのローカル プレイヤーをアクティブとして参加させる。
- SDA をアップロードする。
- メンバー プロパティを設定する。
- セッション変更イベントに登録する。
- ロビー セッションをアクティブなセッションとして設定する。
- ゲーム セッションに参加する (存在する場合)。
- 転送ハンドルを使用する。
ロビーからゲーム セッションに参加する
招待が承諾され、ホストがゲームを開始する準備ができたら、XblMultiplayerManagerJoinGameFromLobby を呼び出すことにより、ロビー セッションのメンバーを含む新しいゲームを開始できます。 エラーまたは成功の結果は、JoinGameCompleted イベントを介して処理されます。
フラット C API
- ゲーム セッションを作成する。
- すべてのローカル プレイヤーをアクティブとして参加させる。
- SDA をアップロードする。
- メンバー プロパティを設定する。
- セッション変更イベントに登録する。
- ロビー セッションを介してゲームを広告する。
