멀티 플레이어 관리자 API 개요
이 항목에서는 멀티 플레이어 관리자 API에서 가장 중요한 방법을 설명합니다.
자세한 API 정보는 참조 설명서를 참조하세요.
응용프로그램에서 이러한 API를 사용하는 방법의 예는 NetRumble 샘플(NDA 항목)권한 부여 필요을 참조하세요.
네임스페이스
멀티 플레이어 관리자는 다음의 네임스페이스에 포함되어 있습니다.
언어 | 네임스페이스 |
---|---|
C |
XblMultiplayerManager* 접두사 |
C++ | xbox::services::multiplayer::manager |
다음과 같은 주요 클래스를 이해해야 합니다.
멀티 플레이어 관리자 클래스
멀티 플레이어 관리자는 단일 로비 세션 개체와 단일 게임 세션 개체를 포함하는 싱글톤 클래스입니다.
멀티 플레이어 관리자가 기능하려면 최소한 이 클래스에 대한 XblMultiplayerManagerInitialize 및 XblMultiplayerManagerDoWork 메서드를 호출해야 합니다.
다음 표에서는 자주 사용하는 메서드와 속성 중 일부(전부는 아님)에 대해 설명합니다. 멤버의 전체 설명 목록은 참조 설명서를 참조하세요.
C | C++ | 설명 |
---|---|---|
메서드 | ||
XblMultiplayerManagerInitialize | initialize() |
멀티 플레이어 관리자를 초기화합니다. 멀티 플레이어 관리자를 사용하기 전에 이 메서드를 호출해야 합니다. |
XblMultiplayerManagerDoWork | do_work() |
앱에 표시되는 세션 상태를 업데이트합니다. 프레임당 한 번 이상 이 메서드를 호출해야 합니다. 게임은 메서드에서 반환되는 멀티 플레이어 이벤트를 처리해야 합니다. |
XblMultiplayerManagerJoinLobby | join_lobby() |
사용자가 참여하려는 로비를 고유하게 식별하는 handleId 을(를) 통해 또는 사용자가 타이틀이 프로토콜 활성화되도록 하는 초대를 수락할 때 친구의 로비 세션에 참여하는 방법을 제공합니다. |
XblMultiplayerManagerJoinGameFromLobby | join_game_from_lobby() |
로비의 게임 세션이 존재하고, 공간이 있으면, 여기에 참가합니다. 세션이 존재하지 않으면 기존 로비 멤버로 새 게임 세션을 만듭니다. 기존 로비 세션 속성이 해당 게임 세션으로 마이그레이션되지는 않습니다. 참가 후에는 *SetSynchronizedProperties API를 통해 속성 또는 호스트를 설정할 수 있습니다. 타이틀은 게임 세션에 참가하려는 모든 클라이언트에서 이 API를 호출하는 데 필요합니다. |
XblMultiplayerManagerJoinGame | join_game() |
일반적으로 제3자 매치 메이킹 서비스를 통해 발견되는 전역으로 고유한 세션 이름에 따라 기존 게임 세션에 참가합니다. Xbox 사용자 ID 목록에서 참여하려는 게임을 전달할 수 있습니다. |
XblMultiplayerManagerFindMatch | find_match() |
Xbox 서비스 매치 메이킹을 사용하여 게임을 찾아 참가하세요. |
XblMultiplayerManagerLeaveGame | leave_game() |
게임을 나가고 멤버 및 모든 로컬 멤버를 로비로 반환합니다. |
속성 | ||
LobbySession |
lobby_session() |
로비 세션을 나타내는 개체에 대한 핸들. |
GameSession |
game_session() |
게임 세션을 나타내는 개체에 대한 핸들. |
멀티 플레이어 이벤트 클래스
언어 | 클래스 |
---|---|
C | XblMultiplayerEvent |
C++ | multiplayer_event |
XblMultiplayerManagerDoWork를 호출하면 Multiplayer Manager는 마지막으로 XblMultiplayerManagerDoWork
을(를) 호출한 이후 세션의 변경 사항을 나타내는 이벤트 목록을 반환합니다.
이러한 이벤트에는 멤버가 세션에 참여했거나 멤버가 세션에서 나갔거나 멤버 속성이 변경되었거나 호스트 클라이언트가 변경된 것과 같은 변경 사항이 포함됩니다.
가능한 모든 이벤트 유형의 목록은 XblMultiplayerEventType 열거형을 참조하세요.
반환된 각 XblMultiplayerEvent에는 EventArgsHandle
이(가) 포함됩니다. 이벤트 유형에 적절한 args
을(를) 가져오려면 이 항목을 사용해야 합니다.
예를 들어, XblMultiplayerEventType이 MemberJoined
이면 XblMultiplayerEventArgsMembersCount 및 XblMultiplayerEventArgsMembers를 호출합니다.
XblMultiplayerManagerDoWork를 호출한 후에도 게임에서 필요한 대로 각 이벤트를 처리해야 합니다.
멀티 플레이어 멤버 클래스
언어 | 클래스 |
---|---|
C | XblMultiplayerManagerMember |
C++ | multiplayer_member |
이 클래스는 로비 또는 게임 세션의 플레이어를 나타냅니다. 여기에는 플레이어의 Xbox 사용자 ID, 플레이어의 네트워크 연결 주소 및 각 플레이어의 사용자 지정 속성과 같은 멤버에 대한 속성이 포함됩니다.
멀티 플레이 로비 세션 클래스
언어 | 클래스 |
---|---|
C |
XblMultiplayerManagerLobbySession* 접두사 |
C++ | multiplayer_lobby_session |
이 클래스는 이 장치에 로컬인 사용자와 함께 플레이하고 싶어하는 초대된 친구를 관리하는 데 사용되는 영구 세션을 만듭니다. 멀티 플레이어 관리자가 멀티 플레이 작업을 수행하기 위해서는 로비 세션에 최소한 한 명의 멤버가 있어야 합니다. 처음에는 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() |
로비의 호스트를 설정합니다. |
속성 | ||
XblMultiplayerManagerLobbySessionLocalMembers | local_members() |
로컬 장치에 로그인된 구성원의 컬렉션입니다. |
XblMultiplayerManagerLobbySessionMembers | members() |
로비 세션에 있는 멤버의 컬렉션입니다. |
XblMultiplayerManagerLobbySessionSetProperties | properties() |
롭비 세션의 속성 컬렉션을 나타내는 JSON 개체입니다. |
XblMultiplayerManagerLobbySessionHost | host() |
로비의 호스트 멤버. |
멀티 플레이 게임 세션 클래스
언어 | 클래스 |
---|---|
C |
XblMultiplayerManagerGameSession* 접두사 |
C++ | multiplayer_game_session |
게임 세션은 실제 게임 플레이 인스턴스에 참여하는 Xbox 서비스 멤버 그룹을 나타냅니다. 여기에는 매치 메이킹 서비스를 통해 일치된 플레이어가 포함될 수 있습니다.
로비 세션의 멤버가 포함된 새 게임 세션을 시작하려면 XblMultiplayerManagerJoinGameFromLobby를 호출합니다. Xbox 서비스 매치 메이킹을 사용하려면 XblMultiplayerManagerFindMatch를 호출합니다. 타사 매치 메이킹 서비스를 사용하는 경우XblMultiplayerManagerJoinGame을 호출합니다.
다음의 표에서는 멀티 플레이어 관리자에서 자주 사용하는 메서드와 속성 중 일부에 대해 설명합니다. 클래스 멤버의 전체 설명 목록은 이 클래스에 대한 API 참조를 참조하세요.
C | C++ | 설명 |
---|---|---|
메서드 | ||
XblMultiplayerManagerGameSessionSetProperties / XblMultiplayerManagerGameSessionSetSynchronizedProperties | set_properties() / set_synchronized_properties() |
게임 세션에 대한 사용자 지정 속성을 설정합니다. 속성은 JSON 문자열에 저장됩니다. 속성이 장치 간에 공유되고, 여러 장치에 의해 동시에 업데이트될 수 있는 경우 메서드의 동기화된 버전을 사용합니다. |
XblMultiplayerManagerGameSessionIsHost | is_host() |
현재 장치가 게임 호스트 역할을 하는지를 표시합니다. |
XblMultiplayerManagerGameSessionSetSynchronizedHost | set_synchronized_host() |
게임의 호스트를 설정합니다. |
속성 | ||
XblMultiplayerManagerGameSessionMembers | members() |
게임 세션에 있는 멤버의 컬렉션입니다. |
XblMultiplayerManagerGameSessionPropertiesJson | properties() |
게임 세션의 속성 컬렉션을 나타내는 JSON 개체입니다. |
XblMultiplayerManagerGameSessionHost | host() |
게임의 호스트 멤버. |