Multiplayer Manager API の概要
このトピックでは、Multiplayer Manager API の最も重要な方法を示します。
API の詳細については、参照ドキュメントをご覧ください。
アプリケーションでのこれらの API の使用例については、NetRumble サンプル (NDA トピック)認可が必須ですを参照してください。
名前空間
Multiplayer Manager には、次の名前空間が含まれます。
言語 | 名前空間 |
---|---|
C | XblMultiplayerManager* prefix |
C++ | xbox::services::multiplayer::manager |
次の主要なクラスを理解しておく必要があります。
Multiplayer Manager クラス
Multiplayer Manager は、1 つのロビー セッション オブジェクトと 1 つのゲーム セッション オブジェクトを含むシングルトン クラスです。
Multiplayer Manager が機能するためには、少なくとも、このクラスで XblMultiplayerManagerInitialize メソッドと XblMultiplayerManagerDoWorkメソッドを呼び出す必要があります。
次の表は、より一般的に使用されるメソッドとプロパティのすべてではなく一部を示しています。 メンバーの完全な説明のリストについては、「リファレンス ドキュメント」を参照してください。
C | C++ | 説明 |
---|---|---|
メソッド | ||
XblMultiplayerManagerInitialize | initialize() |
Multiplayer Manager を初期化します。 このメソッドは、Multiplayer Manager を使用する前に呼び出す必要があります。 |
XblMultiplayerManagerDoWork | do_work() |
アプリのセッションの表示状態を更新します。 このメソッドは少なくとも 1 フレームに 1 回以上呼び出す必要があります。 ゲームは、このメソッドから返されたマルチプレイヤー イベントを処理する必要があります。 |
XblMultiplayerManagerJoinLobby | join_lobby() |
参加するロビーを一意に識別する handleId を通して、またはユーザーが招待を受け入れることによってタイトルがプロトコルをアクティブ化するときに、フレンドのロビー セッションに参加する手段を提供します。 |
XblMultiplayerManagerJoinGameFromLobby | join_game_from_lobby() |
ロビーのゲーム セッションが存在し、空きがある場合は、それに参加します。 セッションが存在しない場合は、既存のロビー メンバーを使用して新しいゲーム セッションを作成します。 これによって、既存のロビー セッションのプロパティはゲーム セッションに移行されません。 参加後は、*SetSynchronizedProperties API を介してプロパティやホストを設定できます。 タイトルは、ゲーム セッションに参加するすべてのクライアントでこの API を呼び出すために必要です。 |
XblMultiplayerManagerJoinGame | join_game() |
通常はサードパーティーのマッチメイキング サービスによって見つかるグローバルに一意なセッション名を指定して、既存のゲーム セッションに参加します。 ゲームに参加させる Xbox ユーザー ID のリストを渡すことができます。 |
XblMultiplayerManagerFindMatch | find_match() |
Xbox サービス マッチメイキングを使用して、ゲームを見つけて参加します。 |
XblMultiplayerManagerLeaveGame | leave_game() |
ゲームから退出し、メンバーとすべてのローカル メンバーをロビーに返します。 |
Properties | ||
LobbySession |
lobby_session() |
ロビー セッションを表すオブジェクトへのハンドル。 |
GameSession |
game_session() |
ゲーム セッションを表すオブジェクトへのハンドル。 |
Multiplayer Event クラス
言語 | クラス |
---|---|
C | XblMultiplayerEvent |
C++ | multiplayer_event |
XblMultiplayerManagerDoWorkに呼び出すと、Multiplayer Manager は XblMultiplayerManagerDoWork
を最後に呼び出してからのセッションの変更内容を示すイベントの一覧を返します。
これらのイベントには、セッションへのメンバーの参加、セッションからのメンバーの退出、メンバーのプロパティの変更、ホスト クライアントの変更などの変更が含まれます。
可能なすべてのイベントの種類のリストについては、 XblMultiplayerEventType の列挙を参照してください。
返された XblMultiplayerEvent にはそれぞれ EventArgsHandle
が含まれます。 イベントの種類に応じて適切な args
を取得するために使用する必要があります。
たとえば、XblMultiplayerEventType が MemberJoined
の場合は、XblMultiplayerEventArgsMembersCount と XblMultiplayerEventArgsMembers に呼び出すことができます。
XblMultiplayerManagerDoWorkを呼び出すと、必要に応じて、各イベントが処理されます。
Multiplayer Member クラス
言語 | クラス |
---|---|
C | XblMultiplayerManagerMember |
C++ | multiplayer_member |
このクラスは、ロビー セッションまたはゲーム セッション内のプレイヤーを表します。 プレイヤーの Xbox ユーザー ID、プレイヤーのネットワーク接続のアドレス、各プレイヤーのカスタム プロパティなど、メンバーに関するプロパティが含まれます。
Multiplayer Lobby Session クラス
言語 | クラス |
---|---|
C | XblMultiplayerManagerLobbySession* prefix |
C++ | multiplayer_lobby_session |
このクラスでは、このデバイスのローカル ユーザーと一緒にプレイしたい招待された友達を管理するために使用される永続セッションが作成されます。 Multiplayer Manager がマルチプレーヤーのアクションを実行するには、ロビー セッションには少なくとも 1 人のメンバーが含まれている必要があります。 最初に、 XblMultiplayerManagerLobbySessionAddLocalUser メソッドを呼び出すことにより、新しいロビー セッションを作成できます。
次の表は、より一般的に使用されるこのクラスのメソッドとプロパティのすべてではなく一部を示しています。 クラス メンバーの完全な説明のリストについては、リファレンス ドキュメントを参照してください。
C | C++ | 説明 |
---|---|---|
メソッド | ||
XblMultiplayerManagerLobbySessionAddLocalUser | add_local_user() |
ロビー セッションにローカル ユーザー (ローカル デバイスでサインインしたプレイヤー) を追加します。 このメンバーが初めてロビー セッションに追加された場合、このメソッドでは新しいロビー セッションが作成されます。 |
XblMultiplayerManagerLobbySessionRemoveLocalUser | remove_local_user() |
指定されたメンバーをロビーとゲーム セッションから削除します。 |
XblMultiplayerManagerLobbySessionInviteFriends | invite_friends() |
プレイヤーがフレンド リストからフレンドを選択できる標準の Xbox UI を開き、それらのプレイヤーをゲームに招待します。 |
XblMultiplayerManagerLobbySessionInviteUsers | invite_users() |
指定された Xbox プレイヤーをゲームに招待します。 |
XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress | set_local_member_connection_address() |
ローカル メンバーのネットワーク アドレスを設定します。 ゲームはこのネットワークアドレスを使用して、メンバー間のネットワーク通信を確立できます。 |
XblMultiplayerManagerLobbySessionSetLocalMemberProperties | set_local_member_properties() |
ローカル メンバーのカスタム プロパティを設定します。 このプロパティは JSON 文字列で保存されます。 |
XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties | delete_local_member_properties() |
ローカル メンバーのカスタム プロパティを削除します。 |
XblMultiplayerManagerLobbySessionSetProperties / XblMultiplayerManagerLobbySessionSetSynchronizedProperties | set_properties() / set_synchronized_properties() |
ロビー セッションのカスタム プロパティを設定します。 このプロパティは JSON 文字列で保存されます。 プロパティがデバイス間で共有され、複数のデバイスによって同時に更新される場合は、同期されるバージョンのメソッドを使用します。 |
XblMultiplayerManagerGameSessionIsHost | is_host() |
現在のデバイスがロビーホストとして動作しているかどうかを示します。 |
XblMultiplayerManagerGameSessionSetSynchronizedHost | set_synchronized_host() |
ロビーのホストを設定します。 |
Properties | ||
XblMultiplayerManagerLobbySessionLocalMembers | local_members() |
ローカル デバイスにサインインしているメンバーのコレクション。 |
XblMultiplayerManagerLobbySessionMembers | members() |
ロビー セッションにいるメンバーのコレクション。 |
XblMultiplayerManagerLobbySessionSetProperties | properties() |
ロビー セッションのプロパティのコレクションを表す JSON オブジェクト。 |
XblMultiplayerManagerLobbySessionHost | host() |
ロビーのホスト メンバー。 |
Multiplayer Game Session クラス
言語 | クラス |
---|---|
C | XblMultiplayerManagerGameSession* prefix |
C++ | multiplayer_game_session |
ゲーム セッションは、実際のゲームプレイのインスタンスに参加している Xbox サービス メンバーのグループを表します。 これには、マッチメイキング サービスを使用してマッチアップしたプレイヤーを含めることができます。
ロビー セッションのメンバーを含む新しいゲーム セッションを開始するには、XblMultiplayerManagerJoinGameFromLobby を呼び出します。 Xbox サービス マッチメイキングを使用する場合 XblMultiplayerManagerFindMatch を呼び出します。 サードパーティのマッチメイキング サービスを使用している場合 XblMultiplayerManagerJoinGame を呼び出します。
次の表は、Multiplayer Manager で一般的に使用されるメソッドとプロパティのすべてではなく一部を示しています。 クラス メンバーの完全な説明のリストについては、このクラスの API リファレンスを参照してください。
C | C++ | 説明 |
---|---|---|
メソッド | ||
XblMultiplayerManagerGameSessionSetProperties / XblMultiplayerManagerGameSessionSetSynchronizedProperties | set_properties() / set_synchronized_properties() |
ゲーム セッションのカスタム プロパティを設定します。 このプロパティは JSON 文字列で保存されます。 プロパティがデバイス間で共有され、複数のデバイスによって同時に更新される場合は、同期されるバージョンのメソッドを使用します。 |
XblMultiplayerManagerGameSessionIsHost | is_host() |
現在のデバイスがゲーム ホストとして動作しているかどうかを示します。 |
XblMultiplayerManagerGameSessionSetSynchronizedHost | set_synchronized_host() |
ゲームのホストを設定します。 |
Properties | ||
XblMultiplayerManagerGameSessionMembers | members() |
ゲーム セッションにいるメンバーのコレクション。 |
XblMultiplayerManagerGameSessionPropertiesJson | properties() |
ゲーム セッションのプロパティのコレクションを表す JSON オブジェクト。 |
XblMultiplayerManagerGameSessionHost | host() |
ゲームのホスト メンバー。 |