Skip to main content
멀티플레이어 게임을 설계할 때, 매치메이킹과 로비는 종종 함께 사용되어 사람들이 함께 플레이할 그룹을 형성하는 데 도움을 줍니다. PlayFab Lobby와 PlayFab Matchmaking은 다양한 멀티플레이어 시나리오를 구현하는 데 도움이 됩니다. 이 문서에서는 이 두 서비스 간의 관계를 설명하고 다음 게임 시나리오를 구현하기 위해 함께 사용할 수 있는 방법을 보여줍니다.

Lobby와 Matchmaking 간의 관계 이해

Lobby와 Matchmaking은 함께 원활하게 작동하여 타이틀에 응집력 있는 멀티플레이어 매치메이킹 경험을 만듭니다.
  • Matchmaking은 게임 세션에 참여하려는 플레이어 집합을 모읍니다.
  • Matchmaking이 플레이어 집합을 식별한 후, Lobby는 게임 세션에 함께 참여하도록 조정하기 위한 통신 매체를 제공합니다.
    • 로비의 일반적인 시나리오로는 게임 서버 연결 정보 공유, P2P 게임을 위한 클라이언트 IP 공유, 플레이어 구성 공유가 있습니다.

Arranged 로비

타이틀은 “Arranged Lobbies”를 사용하여 매치메이킹을 통해 함께 그룹화된 플레이어를 위한 로비를 쉽게 만들 수 있습니다. 매치메이킹 티켓이 플레이어 그룹을 성공적으로 매칭한 후, 매치메이킹 티켓에는 __lobbyArrangementString__이 포함됩니다. 그런 다음 각 플레이어는 arrangement 문자열을 __PFMultiplayerJoinArrangedLobby__에 전달하여 동일한 로비에 참여할 수 있습니다.

예제 시나리오

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

설계 사양

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

구현

이 섹션에서는 Matchmaking과 Lobby를 사용하여 설계 사양을 구현하는 방법을 설명합니다.

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

매치가 이루어진 플레이어 그룹을 위한 공개 로비를 만듭니다.
  • 각 플레이어는 지정된 매치메이킹 속성으로 매치메이킹 티켓을 만듭니다.
  • 만들어진 모든 티켓은 서로 매칭되기 위해 매치메이킹 큐에 추가됩니다.
    • 티켓은 규칙에 따라 매칭됩니다.
    • 규칙은 매치메이킹 큐 구성에서 정의할 수 있습니다.
    • 자세한 내용은 매치메이킹 큐 구성을 참조하세요.
  • 매치메이킹 후, 각 플레이어는 매치메이킹 티켓의 __lobbyArrangementString__을 통해 매치가 이루어진 로비에 참여합니다.
    • arranged 로비에 참여할 때, 로비의 __accessPolicy__를 __Public__으로 지정하여 로비를 개방합니다.
    • 자세한 내용은 Arranged 로비를 참조하세요.
  • arranged 로비에 처음 참여한 플레이어가 로비의 소유자가 됩니다.
  • 로비 속성은 게임 세션에서 사용할 게임 맵을 지정하는 데 사용할 수 있습니다.
  • 검색 속성을 사용하여 플레이어가 타이틀의 모든 활성 로비 중에서 이 로비와 게임 세션을 찾을 수 있게 합니다.

친구에게 초대 보내기

로비 소유자가 친구를 선택하고 초대를 보낼 수 있게 합니다.
  • 로비 소유자의 친구 목록을 가져옵니다.
  • 로비 소유자가 초대할 친구를 선택할 수 있는 게임 UI를 표시합니다.
  • 선택한 친구에게 인게임 초대를 보냅니다.

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

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

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

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

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

로비 소유자는 비활성 또는 연결이 끊어진 플레이어를 제거하고 매치메이킹을 시작하여 남은 자리를 채울 수 있습니다.
  • 플레이어가 연결이 끊어지거나 주어진 설정된 시간(1분) 내에 응답하지 않은 경우, __PFLobbyForceRemoveMember__를 사용하여 플레이어를 제거합니다.
  • 로비 소유자는 __CreateServerBackfillTicket__을 사용하여 매치메이킹 티켓을 만듭니다. 이 API를 사용하여 만들어진 티켓은 검색 시 우선 순위가 부여됩니다. 이 접근 방식은 게임플레이 중단을 최소화합니다. 자세한 내용은 서버 백필 티켓 사용을 참조하세요.
  • 백필 로비에 참여한 후, 게임의 로비 소유자는 새로운 백필 플레이어와 원래 로비의 연결 문자열을 공유할 수 있으며, 그들은 원래 로비에 참여할 수 있습니다.
  • 필요한 경우 게임 시작 시간을 연장합니다.

완료된 게임 처리

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

참고

마지막 수정일 2026년 8월 13일