> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Multiplayer Manager API 개요

> 로비 세션, 게임 세션, 멤버 및 멀티플레이어 이벤트를 포함하여 가장 중요한 XBOX Multiplayer Manager API 메서드 및 클래스에 대한 개요입니다.

이 항목에서는 Multiplayer Manager API에서 가장 중요한 메서드를 설명합니다.

자세한 API 정보는 [참조 문서](/reference/live/gc-reference-live-toc)를 참조하세요.

애플리케이션에서 이러한 API를 사용하는 방법의 예제는 [NetRumble 샘플(NDA 항목)](https://learn.microsoft.com/gaming/gdk/docs/services/gdk-dev/development-downloads/gdk-samples-list)을 참조하세요.

## 네임스페이스

Multiplayer Manager는 다음 네임스페이스에 포함되어 있습니다.

| 언어  | 네임스페이스                                 |
| --- | -------------------------------------- |
| C   | `XblMultiplayerManager*` 접두사           |
| C++ | `xbox::services::multiplayer::manager` |

다음의 주요 클래스를 이해해야 합니다.

* [Multiplayer Manager API 개요]()
  * [네임스페이스](#namespace)
  * [Multiplayer Manager 클래스 ](#multiplayer-manager-class)<a name="multiplayer-manager-class" />
  * [Multiplayer Event 클래스 ](#multiplayer-event-class)<a name="multiplayer-event-class" />
  * [Multiplayer Member 클래스 ](#multiplayer-member-class)<a name="multiplayer-member-class" />
  * [Multiplayer Lobby Session 클래스 ](#multiplayer-lobby-session-class)<a name="multiplayer-lobby-session-class" />
  * [Multiplayer Game Session 클래스 ](#multiplayer-game-session-class)<a name="multiplayer-game-session-class" />

## Multiplayer Manager 클래스 <a name="multiplayer-manager-class" />

Multiplayer Manager는 단일 로비 세션 객체와 단일 게임 세션 객체를 포함하는 싱글톤 클래스입니다.

최소한, Multiplayer Manager가 작동하려면 이 클래스에서 [XblMultiplayerManagerInitialize](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize) 및 [XblMultiplayerManagerDoWork](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork) 메서드를 호출해야 합니다.

다음 표에서는 더 일반적으로 사용되는 메서드와 속성 중 일부를 설명합니다(전체 목록은 아님). 멤버의 완전한 설명 목록은 [참조 문서](/reference/live/gc-reference-live-toc)를 참조하세요.

| C                                                                                                                                        | C++                      | 설명                                                                                                                                                                                                                           |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **메서드**                                                                                                                                  |                          |                                                                                                                                                                                                                              |
| [XblMultiplayerManagerInitialize](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize)               | `initialize()`           | Multiplayer Manager를 초기화합니다. Multiplayer Manager를 사용하기 전에 이 메서드를 호출해야 합니다.                                                                                                                                                   |
| [XblMultiplayerManagerDoWork](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork)                       | `do_work()`              | 앱에서 볼 수 있는 세션 상태를 업데이트합니다. 이 메서드는 프레임당 한 번 이상 호출해야 합니다. 게임은 메서드에서 반환된 멀티플레이어 이벤트를 처리해야 합니다.                                                                                                                                  |
| [XblMultiplayerManagerJoinLobby](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoinlobby)                 | `join_lobby()`           | 사용자가 참여하려는 로비를 고유하게 식별하는 `handleId`를 통해 또는 사용자가 초대를 수락하여 타이틀이 프로토콜 활성화되는 경우 친구의 로비 세션에 참여하는 방법을 제공합니다.                                                                                                                       |
| [XblMultiplayerManagerJoinGameFromLobby](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby) | `join_game_from_lobby()` | 로비의 게임 세션이 존재하고 자리가 있으면 참여합니다. 세션이 존재하지 않으면 기존 로비 멤버로 새 게임 세션을 만듭니다. 이는 기존 로비 세션 속성을 게임 세션으로 마이그레이션하지 않습니다. 참여 후에는 `*SetSynchronizedProperties` API를 통해 속성 또는 호스트를 설정할 수 있습니다. 타이틀은 게임 세션에 참여하려는 모든 클라이언트에서 이 API를 호출해야 합니다. |
| [XblMultiplayerManagerJoinGame](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame)                   | `join_game()`            | 일반적으로 타사 매치메이킹 서비스를 통해 찾은 전역적으로 고유한 세션 이름이 주어지면 기존 게임 세션에 참여합니다. 게임의 일부가 되기를 원하는 XBOX 사용자 ID 목록을 전달할 수 있습니다.                                                                                                                 |
| [XblMultiplayerManagerFindMatch](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch)                 | `find_match()`           | XBOX services 매치메이킹을 사용하여 게임을 찾고 참여합니다.                                                                                                                                                                                      |
| [XblMultiplayerManagerLeaveGame](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerleavegame)                 | `leave_game()`           | 게임을 나가고 멤버와 모든 로컬 멤버를 로비로 반환합니다.                                                                                                                                                                                             |
| **속성**                                                                                                                                   |                          |                                                                                                                                                                                                                              |
| `LobbySession`                                                                                                                           | `lobby_session()`        | 로비 세션을 나타내는 객체의 핸들입니다.                                                                                                                                                                                                       |
| `GameSession`                                                                                                                            | `game_session()`         | 게임 세션을 나타내는 객체의 핸들입니다.                                                                                                                                                                                                       |

## Multiplayer Event 클래스 <a name="multiplayer-event-class" />

| 언어  | 클래스                                                                                              |
| --- | ------------------------------------------------------------------------------------------------ |
| C   | [XblMultiplayerEvent](/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent) |
| C++ | `multiplayer_event`                                                                              |

[XblMultiplayerManagerDoWork](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork)를 호출하면 Multiplayer Manager는 마지막으로 `XblMultiplayerManagerDoWork`를 호출한 이후 세션의 변경 사항을 나타내는 이벤트 목록을 반환합니다. 이러한 이벤트에는 멤버가 세션에 참여함, 멤버가 세션에서 나감, 멤버 속성이 변경됨 또는 호스트 클라이언트가 변경됨과 같은 변경 사항이 포함됩니다.

가능한 모든 이벤트 유형 목록은 [XblMultiplayerEventType](/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype) 열거형을 참조하세요.

반환된 각 [XblMultiplayerEvent](/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent)에는 `EventArgsHandle`이 포함됩니다. 이를 사용하여 이벤트 유형에 적합한 `args`를 가져와야 합니다. 예를 들어, [XblMultiplayerEventType](/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype)이 `MemberJoined`이면 [XblMultiplayerEventArgsMembersCount](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmemberscount) 및 [XblMultiplayerEventArgsMembers](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmembers)를 호출합니다.

게임은 [XblMultiplayerManagerDoWork](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork)를 호출한 후 필요에 따라 각 이벤트를 처리해야 합니다.

## Multiplayer Member 클래스 <a name="multiplayer-member-class" />

| 언어  | 클래스                                                                                                              |
| --- | ---------------------------------------------------------------------------------------------------------------- |
| C   | [XblMultiplayerManagerMember](/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayermanagermember) |
| C++ | `multiplayer_member`                                                                                             |

이 클래스는 로비 또는 게임 세션의 플레이어를 나타냅니다. 플레이어의 XBOX 사용자 ID, 플레이어의 네트워크 연결 주소 및 각 플레이어에 대한 사용자 지정 속성과 같은 멤버에 대한 속성을 포함합니다.

## Multiplayer Lobby Session 클래스 <a name="multiplayer-lobby-session-class" />

| 언어  | 클래스                                      |
| --- | ---------------------------------------- |
| C   | `XblMultiplayerManagerLobbySession*` 접두사 |
| C++ | `multiplayer_lobby_session`              |

이 클래스는 이 디바이스에 로컬로 있는 사용자와 함께 플레이하려는 초대된 친구를 관리하는 데 사용되는 영구 세션을 만듭니다. Multiplayer Manager가 멀티플레이어 작업을 수행하려면 로비 세션에 최소한 하나의 멤버가 포함되어야 합니다. 처음에 [XblMultiplayerManagerLobbySessionAddLocalUser](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser) 메서드를 호출하여 새 로비 세션을 만들 수 있습니다.

다음 표에서는 이 클래스의 더 일반적으로 사용되는 메서드와 속성 중 일부를 설명합니다(전체 목록은 아님). 클래스 멤버의 완전한 설명 목록은 [참조 문서](/reference/live/gc-reference-live-toc)를 참조하세요.

| C                                                                                                                                                                                                                                                                                                                                           | C++                                                  | 설명                                                                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **메서드**                                                                                                                                                                                                                                                                                                                                     |                                                      |                                                                                                                    |
| [XblMultiplayerManagerLobbySessionAddLocalUser](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser)                                                                                                                                                                                      | `add_local_user()`                                   | 로컬 사용자(로컬 디바이스에 로그인한 플레이어)를 로비 세션에 추가합니다. 이것이 로비 세션에 추가된 첫 번째 멤버인 경우 이 메서드는 새 로비 세션을 만듭니다.                         |
| [XblMultiplayerManagerLobbySessionRemoveLocalUser](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionremovelocaluser)                                                                                                                                                                                | `remove_local_user()`                                | 지정된 멤버를 로비 및 게임 세션에서 제거합니다.                                                                                        |
| [XblMultiplayerManagerLobbySessionInviteFriends](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninvitefriends)                                                                                                                                                                                    | `invite_friends()`                                   | 플레이어가 친구 목록에서 친구를 선택한 다음 해당 플레이어를 게임에 초대할 수 있는 표준 XBOX UI를 엽니다.                                                    |
| [XblMultiplayerManagerLobbySessionInviteUsers](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninviteusers)                                                                                                                                                                                        | `invite_users()`                                     | 지정된 XBOX 플레이어를 게임에 초대합니다.                                                                                          |
| [XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberconnectionaddress)                                                                                                                                                | `set_local_member_connection_address()`              | 로컬 멤버의 네트워크 주소를 설정합니다. 게임은 이 네트워크 주소를 사용하여 멤버 간에 네트워크 통신을 설정할 수 있습니다.                                              |
| [XblMultiplayerManagerLobbySessionSetLocalMemberProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberproperties)                                                                                                                                                              | `set_local_member_properties()`                      | 로컬 멤버에 대한 사용자 지정 속성을 설정합니다. 속성은 JSON 문자열로 저장됩니다.                                                                   |
| [XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessiondeletelocalmemberproperties)                                                                                                                                                        | `delete_local_member_properties()`                   | 로컬 멤버에 대한 사용자 지정 속성을 제거합니다.                                                                                        |
| [XblMultiplayerManagerLobbySessionSetProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties) / [XblMultiplayerManagerLobbySessionSetSynchronizedProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetsynchronizedproperties) | `set_properties()` / `set_synchronized_properties()` | 로비 세션에 대한 사용자 지정 속성을 설정합니다. 속성은 JSON 문자열로 저장됩니다. 속성이 디바이스 간에 공유되고 여러 디바이스에서 동시에 업데이트될 수 있는 경우 메서드의 동기화된 버전을 사용합니다. |
| [XblMultiplayerManagerGameSessionIsHost](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost)                                                                                                                                                                                                    | `is_host()`                                          | 현재 디바이스가 로비 호스트 역할을 하는지 여부를 나타냅니다.                                                                                 |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost)                                                                                                                                                                          | `set_synchronized_host()`                            | 로비의 호스트를 설정합니다.                                                                                                    |
| **속성**                                                                                                                                                                                                                                                                                                                                      |                                                      |                                                                                                                    |
| [XblMultiplayerManagerLobbySessionLocalMembers](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionlocalmembers)                                                                                                                                                                                      | `local_members()`                                    | 로컬 디바이스에 로그인한 멤버 컬렉션입니다.                                                                                           |
| [XblMultiplayerManagerLobbySessionMembers](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionmembers)                                                                                                                                                                                                | `members()`                                          | 로비 세션에 있는 멤버 컬렉션입니다.                                                                                               |
| [XblMultiplayerManagerLobbySessionSetProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties)                                                                                                                                                                                    | `properties()`                                       | 로비 세션에 대한 속성 컬렉션을 나타내는 JSON 객체입니다.                                                                                 |
| [XblMultiplayerManagerLobbySessionHost](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionhost)                                                                                                                                                                                                      | `host()`                                             | 로비의 호스트 멤버입니다.                                                                                                     |

## Multiplayer Game Session 클래스 <a name="multiplayer-game-session-class" />

| 언어  | 클래스                                     |
| --- | --------------------------------------- |
| C   | `XblMultiplayerManagerGameSession*` 접두사 |
| C++ | `multiplayer_game_session`              |

게임 세션은 실제 게임 플레이 인스턴스에 참여하는 XBOX services 멤버 그룹을 나타냅니다. 여기에는 매치메이킹 서비스를 통해 매칭된 플레이어가 포함될 수 있습니다.

로비 세션의 멤버를 포함하는 새 게임 세션을 시작하려면 [XblMultiplayerManagerJoinGameFromLobby](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby)를 호출합니다. XBOX services 매치메이킹을 사용하려면 [XblMultiplayerManagerFindMatch](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch)를 호출합니다. 타사 매치메이킹 서비스를 사용하는 경우 [XblMultiplayerManagerJoinGame](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame)을 호출합니다.

다음 표에서는 Multiplayer Manager의 더 일반적으로 사용되는 메서드와 속성 중 일부를 설명합니다(전체 목록은 아님). 클래스 멤버의 완전한 설명 목록은 이 클래스의 API 참조를 참조하세요.

| C                                                                                                                                                                                                                                                                                                                                       | C++                                                  | 설명                                                                                                                 |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **메서드**                                                                                                                                                                                                                                                                                                                                 |                                                      |                                                                                                                    |
| [XblMultiplayerManagerGameSessionSetProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetproperties) / [XblMultiplayerManagerGameSessionSetSynchronizedProperties](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedproperties) | `set_properties()` / `set_synchronized_properties()` | 게임 세션에 대한 사용자 지정 속성을 설정합니다. 속성은 JSON 문자열로 저장됩니다. 속성이 디바이스 간에 공유되고 여러 디바이스에서 동시에 업데이트될 수 있는 경우 메서드의 동기화된 버전을 사용합니다. |
| [XblMultiplayerManagerGameSessionIsHost](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost)                                                                                                                                                                                                | `is_host()`                                          | 현재 디바이스가 게임 호스트 역할을 하는지 여부를 나타냅니다.                                                                                 |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost)                                                                                                                                                                      | `set_synchronized_host()`                            | 게임의 호스트를 설정합니다.                                                                                                    |
| **속성**                                                                                                                                                                                                                                                                                                                                  |                                                      |                                                                                                                    |
| [XblMultiplayerManagerGameSessionMembers](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionmembers)                                                                                                                                                                                              | `members()`                                          | 게임 세션에 있는 멤버 컬렉션입니다.                                                                                               |
| [XblMultiplayerManagerGameSessionPropertiesJson](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionpropertiesjson)                                                                                                                                                                                | `properties()`                                       | 게임 세션에 대한 속성 컬렉션을 나타내는 JSON 객체입니다.                                                                                 |
| [XblMultiplayerManagerGameSessionHost](/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionhost)                                                                                                                                                                                                    | `host()`                                             | 게임의 호스트 멤버입니다.                                                                                                     |
