Skip to main content

PlayFab Party와 검색 통합

Discovery는 사용자들이 함께 플레이하기 위해 서로를 찾는 과정입니다. PlayFab Party는 검색 메커니즘을 제공하지 않지만, 사용자 간의 통신을 제공하는 기존 메커니즘과 함께 사용할 수 있습니다.

기본 생성 및 참가 흐름

PlayFab Party 네트워크는 한 클라이언트의 사용자에 의해 생성되고, 공지되며, 그런 다음 다른 클라이언트의 다른 사용자들에 의해 참가됩니다.

네트워크 생성

게임 세션과 함께 PlayFab Party 네트워크를 사용할 때 첫 번째 고려 사항은 어떤 클라이언트와 사용자가 네트워크를 만들지(PartyManager::CreateNewNetwork()) 선택하는 것입니다. PlayFab Party의 관점에서는 어떤 사용자가 이를 수행하든 상관없습니다. 어떤 사용자든 네트워크를 만들 수 있습니다. 생성자는 네트워크 내에서 특별한 권한을 갖지 않습니다. 그러나 네트워크를 만드는 클라이언트는 다음을 담당합니다.
  • 변경 불가능한 네트워크 구성 설정(PartyNetworkConfiguration)
  • 초기 초대 결정(PartyInvitationConfiguration)
  • 다른 사용자에게 네트워크 공지
초기 초대에는 식별자와 네트워크에 참가할 수 있는 사용자 목록이 포함됩니다. 사용자는 title_player_account Entity ID 목록으로 지정됩니다. 또는 목록이 비어 있어 네트워크 설명자와 초대 식별자를 가진 모든 사용자가 참가할 수 있도록 할 수 있습니다.

네트워크 공지

기존 PlayFab Party 네트워크에 참가하려면 클라이언트에 두 가지 정보가 필요합니다.
  • 네트워크 설명자
  • 초대 식별자
PlayFab Party 네트워크는 네트워크 설명자(PartyNetworkDescriptor)로 식별됩니다. 이는 네트워크에 대한 연결을 설정하는 데 필요한 정보를 인코딩하는 대체로 불투명한 구조입니다. 네트워크 설명자는 네트워크 생성이 완료된 후 생성 클라이언트에 제공됩니다(PartyCreateNewNetworkCompletedStateChange, PartyNetwork::GetNetworkDescriptor()). 개발을 용이하게 하기 위해 PlayFab Party는 네트워크 설명자를 웹 친화적인 문자열로 직렬화 및 역직렬화하는 메서드를 제공합니다(PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor()). 초대 식별자는 초대를 고유하게 식별하는 문자열입니다. 클라이언트가 초대를 명시적으로 만들 때 또는 네트워크를 만들면서 초기 초대를 만들 때 제공됩니다. 클라이언트가 초대 식별자를 제공하지 않으면 하나가 고유하게 생성됩니다. 새 네트워크를 다른 사용자에게 공지하려면 적절한 통신 매체를 통해 이 두 정보를 보내세요.

네트워크 참가

네트워크에 참가하는 것은 두 단계 프로세스입니다. 네트워크에 참가하려는 클라이언트는 먼저 역직렬화된 네트워크 설명자를 PartyManager::ConnectToNetwork()에 제공하여 네트워크에 연결한 다음, 초대 식별자를 PartyNetwork::AuthenticateLocalUser()에 제공하여 사용자를 인증해야 합니다.

시나리오 예시

소셜 초대

가장 간단한 시나리오는 한 사용자가 게임 세션을 만들고 공유 소셜 플랫폼을 통해 다른 알려진 사용자를 초대하려는 시나리오입니다. 흐름은 다음과 같을 수 있습니다.
  • 초대자는 열린 초대 또는 초대자가 함께 플레이하려는 모든 사용자가 포함된 초대로 네트워크를 만듭니다.
  • 네트워크가 생성되면 초대자는 소셜 플랫폼의 초대 메커니즘을 통해 네트워크 설명자와 초대 식별자를 다른 사용자에게 보냅니다.
  • 초대된 각 사용자는 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.
초대에서 사용자를 지정할 때는 사용자의 title_player_account Entity ID가 사용됩니다. 이러한 Entity ID는 PlayFab Party 외부에서 얻어야 합니다.

Lobby

게임이 클라이언트 간에 데이터를 보낼 수 있는 lobby를 제공하는 경우, 네트워크 연결 정보를 교환하기 위한 통신 매체로 사용될 수 있습니다. 흐름은 다음과 같을 수 있습니다.
  • 게임을 함께 플레이할 사용자 집합이 선택됩니다.
  • 이 사용자 중 한 명이 생성자로 선택됩니다.
  • 집합의 각 사용자는 자신의 title_player_account Entity ID를 생성자에게 보냅니다.
  • 생성자는 초기 초대 구성에서 사용자의 Entity ID를 지정하여 네트워크를 만듭니다.
  • 네트워크 생성이 완료되면 생성자는 참가할 사용자 집합에 네트워크 설명자와 초기 초대 식별자를 보냅니다.
  • 각 사용자는 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.

Matchmaking

PlayFab Matchmaking과 같은 매치메이킹 서비스를 사용하여 함께 플레이할 사용자 목록을 찾을 수 있습니다. 흐름은 다음과 같을 수 있습니다.
  • 사용자는 서비스로 매치 요청을 시작합니다. 매치 결과에 각 사용자의 Entity ID가 포함되어야 하므로 title_player_account Entity ID가 요청의 일부여야 합니다.
  • 사용자는 네트워크의 일부가 되어야 하는 사용자 집합이 포함된 매치 결과를 받습니다.
  • 미리 정해진 알고리즘을 사용하여 어떤 사용자가 생성자가 될지 선택합니다.
  • 생성자는 초기 초대 구성에서 다른 매치된 사용자의 Entity ID를 지정하여 네트워크를 만듭니다.
  • 네트워크 생성이 완료되면 생성자는 대역 외 통신 매체를 사용하여 네트워크 설명자와 초기 초대 식별자를 다른 매치된 사용자에게 보냅니다.
  • 각 매치된 사용자는 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.
생성자에서 다른 매치된 사용자에게 연결 정보를 보내려면 대역 외 통신 매체가 필요합니다.
마지막 수정일 2026년 8월 13일