> ## 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.

# 로비와 매치메이킹을 함께 사용

> 플레이어를 그룹화하고 게임 세션을 조정하는 멀티플레이어 시나리오를 구축하기 위해 arranged lobby를 포함한 PlayFab Lobby 및 Matchmaking을 결합하는 방법을 알아보세요.

멀티플레이어 게임을 설계할 때, 매치메이킹과 로비는 종종 함께 사용되어 사람들이 함께 플레이할 그룹을 형성하는 데 도움을 줍니다.

PlayFab Lobby와 PlayFab Matchmaking은 다양한 멀티플레이어 시나리오를 구현하는 데 도움이 됩니다.

이 문서에서는 이 두 서비스 간의 관계를 설명하고 다음 [게임 시나리오](#example-scenario)를 구현하기 위해 함께 사용할 수 있는 방법을 보여줍니다.

## Lobby와 Matchmaking 간의 관계 이해

Lobby와 Matchmaking은 함께 원활하게 작동하여 타이틀에 응집력 있는 멀티플레이어 매치메이킹 경험을 만듭니다.

* Matchmaking은 게임 세션에 참여하려는 플레이어 집합을 모읍니다.
* Matchmaking이 플레이어 집합을 식별한 후, Lobby는 게임 세션에 함께 참여하도록 조정하기 위한 통신 매체를 제공합니다.
  * 로비의 일반적인 시나리오로는 게임 서버 연결 정보 공유, P2P 게임을 위한 클라이언트 IP 공유, 플레이어 구성 공유가 있습니다.

### Arranged 로비

타이틀은 "Arranged Lobbies"를 사용하여 매치메이킹을 통해 함께 그룹화된 플레이어를 위한 로비를 쉽게 만들 수 있습니다.

매치메이킹 티켓이 플레이어 그룹을 성공적으로 매칭한 후, 매치메이킹 티켓에는 \_\_lobbyArrangementString\_\_이 포함됩니다. 그런 다음 각 플레이어는 arrangement 문자열을 \_\_PFMultiplayerJoinArrangedLobby\_\_에 전달하여 동일한 로비에 참여할 수 있습니다.

## 예제 시나리오

플레이어가 다른 사람들과 함께 플레이하려고 합니다. 플레이어는 멀티플레이어 게임을 시작하고, 친구를 초대하고, 다른 사람들이 참여하기를 기다립니다.

### 설계 사양

* 게임은 누구나 참여할 수 있게 열려 있습니다.
* 초기 플레이어 세트는 매치메이킹을 통해 채워집니다.
* 로비 소유자는 친구를 초대하여 참여시킬 수 있습니다.
* 필요한 수의 플레이어가 모이면 로비의 모든 플레이어가 게임 시작 준비가 되었는지 묻는 메시지를 받습니다. 응답할 시간은 1분입니다. 모든 플레이어가 게임 시작 준비가 되었음을 확인하면 게임이 시작됩니다.
* 로비의 플레이어가 준비 상태를 확인하지 않은 경우, 로비 소유자는 그들을 비활성 플레이어로 제거하고 매치메이킹을 사용하여 그들을 빠르게 대체할 새로운 플레이어를 찾을 수 있습니다.
* 게임 중 어떤 플레이어가 예기치 않게 연결이 끊긴 경우, 타이틀은 서버 백필을 사용하여 매치메이킹을 통해 탈락한 플레이어의 새로운 대체자를 찾아야 합니다.
* 게임이 끝나면 모든 플레이어가 로비로 돌아옵니다. 플레이어는 팀 성취를 균등하게 얻습니다. 함께 다른 게임을 시작하기 위해 남거나 로비를 떠날 수 있습니다.

### 구현

이 섹션에서는 Matchmaking과 Lobby를 사용하여 [설계 사양](#design-specifications)을 구현하는 방법을 설명합니다.

* [매치가 이루어진 로비 만들기](#create-a-match-made-lobby)
* [친구에게 초대 보내기](#send-invites-to-friends)
* [사람들이 게임을 찾고 참여할 수 있게 허용](#allow-people-to-find-and-join-game)
* [게임 시작에 대한 플레이어 확인 받기](#get-player-confirmation-to-start-game)
* [비활성 플레이어 제거 및 교체](#remove-and-replace-inactive-players)
* [완료된 게임 처리](#handle-a-finished-game)

### 매치가 이루어진 로비 만들기

매치가 이루어진 플레이어 그룹을 위한 공개 로비를 만듭니다.

* 각 플레이어는 지정된 매치메이킹 속성으로 매치메이킹 티켓을 만듭니다.
  * 자세한 내용은 [티켓 속성 지정](/services/playfab/multiplayer/matchmaking/ticket-attributes)을 참조하세요.
* 만들어진 모든 티켓은 서로 매칭되기 위해 매치메이킹 큐에 추가됩니다.
  * 티켓은 규칙에 따라 매칭됩니다.
  * 규칙은 매치메이킹 큐 구성에서 정의할 수 있습니다.
  * 자세한 내용은 [매치메이킹 큐 구성](/services/playfab/multiplayer/matchmaking/config-queues)을 참조하세요.
* 매치메이킹 후, 각 플레이어는 매치메이킹 티켓의 \_\_lobbyArrangementString\_\_을 통해 매치가 이루어진 로비에 참여합니다.
  * arranged 로비에 참여할 때, 로비의 \_\_accessPolicy\_\_를 \_\_Public\_\_으로 지정하여 로비를 개방합니다.
  * 자세한 내용은 [Arranged 로비](#arranged-lobbies)를 참조하세요.
* arranged 로비에 처음 참여한 플레이어가 로비의 소유자가 됩니다.
* 로비 속성은 게임 세션에서 사용할 게임 맵을 지정하는 데 사용할 수 있습니다.
  * 자세한 내용은 [Lobby properties](/services/playfab/multiplayer/lobby/lobby-properties)를 참조하세요.
* 검색 속성을 사용하여 플레이어가 타이틀의 모든 활성 로비 중에서 이 로비와 게임 세션을 찾을 수 있게 합니다.
  * 자세한 내용은 [검색 속성](/services/playfab/multiplayer/lobby/define-search-keywords)을 참조하세요.

### 친구에게 초대 보내기

로비 소유자가 친구를 선택하고 초대를 보낼 수 있게 합니다.

* 로비 소유자의 친구 목록을 가져옵니다.
* 로비 소유자가 초대할 친구를 선택할 수 있는 게임 UI를 표시합니다.
* 선택한 친구에게 인게임 초대를 보냅니다.
  * 자세한 내용은 [로비 초대](/services/playfab/multiplayer/lobby/lobby-invites)를 참조하세요.

### 사람들이 게임을 찾고 참여할 수 있게 허용

다른 플레이어가 로비를 찾을 수 있도록 로비의 검색 속성을 설정합니다.

* 게임 UI에 모든 로비를 표시합니다. 타이틀은 플레이어의 검색어를 수락하는 방법도 제공해야 합니다.
* 플레이어의 검색 매개 변수를 사용하여 \_\_PFMultiplayerFindLobbies\_\_를 사용하여 조건에 일치하는 로비 목록을 반환합니다.
* 플레이어가 게임에 참여하기로 선택한 후, \_\_PFMultiplayerJoinLobby\_\_를 사용하여 플레이어를 게임에 추가합니다.

### 게임 시작에 대한 플레이어 확인 받기

로비의 모든 플레이어에게 게임이 시작 준비가 되었음을 알립니다.

* 필요한 수의 플레이어가 로비에 있을 때, 플레이어가 플레이 시작 준비가 되었음을 확인할 수 있는 게임 UI를 표시합니다.
* 로비 소유자가 이러한 확인 응답을 볼 수 있게 허용합니다.

### 비활성 플레이어 제거 및 교체

로비 소유자는 비활성 또는 연결이 끊어진 플레이어를 제거하고 매치메이킹을 시작하여 남은 자리를 채울 수 있습니다.

* 플레이어가 연결이 끊어지거나 주어진 설정된 시간(1분) 내에 응답하지 않은 경우, \_\_PFLobbyForceRemoveMember\_\_를 사용하여 플레이어를 제거합니다.
* 로비 소유자는 \_\_CreateServerBackfillTicket\_\_을 사용하여 매치메이킹 티켓을 만듭니다. 이 API를 사용하여 만들어진 티켓은 검색 시 우선 순위가 부여됩니다. 이 접근 방식은 게임플레이 중단을 최소화합니다. 자세한 내용은 [서버 백필 티켓 사용](/services/playfab/multiplayer/matchmaking/backfill-tickets)을 참조하세요.
* 백필 로비에 참여한 후, 게임의 로비 소유자는 새로운 백필 플레이어와 원래 로비의 연결 문자열을 공유할 수 있으며, 그들은 원래 로비에 참여할 수 있습니다.
* 필요한 경우 게임 시작 시간을 연장합니다.

### 완료된 게임 처리

게임이 끝나면 모든 플레이어가 로비 화면으로 돌아와 게임 세션을 완료합니다.

* 로비는 일시적이므로, 유지되어야 하는 로비의 모든 데이터는 이 시점에서 각 플레이어가 유지해야 합니다.
  * 예를 들어, 일부 게임 시나리오는 멤버 속성에 저장된 데이터를 처리하고 해당 데이터를 플레이어 성취로 변환하는 것에서 이점을 얻을 수 있습니다.
* 동일한 그룹과 계속 플레이하려는 플레이어는 로비에 남습니다.
* 동일한 그룹과 플레이를 중단하려는 플레이어는 \_\_PFLobbyLeave\_\_로 로비를 떠나고 새로운 매치메이킹 그룹으로 프로세스를 다시 시작합니다.

## 참고

* [로비 만들기](/services/playfab/multiplayer/lobby/create-a-lobby)
* [로비 초대](/services/playfab/multiplayer/lobby/lobby-invites)
* [검색 속성](/services/playfab/multiplayer/lobby/define-search-keywords)
* [Lobby properties](/services/playfab/multiplayer/lobby/lobby-properties)
* [Matchmaking에서 서버 백필 티켓 사용](/services/playfab/multiplayer/matchmaking/backfill-tickets)
