次の方法で共有


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 を取得するために使用する必要があります。 たとえば、XblMultiplayerEventTypeMemberJoined の場合は、XblMultiplayerEventArgsMembersCountXblMultiplayerEventArgsMembers に呼び出すことができます。

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() ゲームのホスト メンバー。