PlayFab 파티와 검색 통합
검색은 사용자가 함께 플레이할 상대를 찾는 프로세스입니다. PlayFab 파티에서는 검색 메커니즘을 제공하지 않지만 사용자 간의 통신을 제공하는 기존 메커니즘를 사용할 수 있습니다.
기본 만들기 및 가입 흐름
PlayFab 파티 네트워크는 단일 클라이언트의 사용자가 만들고광고하면 다른 클라이언트의 다른 사용자가 가입합니다.
네트워크 만들기
게임 세션에서 PlayFab 파티 네트워크를 사용할 때 첫 번째 고려 사항은 네트워크를 만들(PartyManager::CreateNewNetwork()
) 클라이언트와 사용자를 선택하는 것입니다. PlayFab 파티의 관점에서 보면 어떤 사용자가 이 작업을 수행하든 상관없습니다. 모든 사용자가 네트워크를 만들 수 있습니다. 작성자에게는 네트워크 내에서 특별한 권한이 부여되지 않습니다. 그러나 네트워크를 만드는 클라이언트는 다음을 담당합니다.
- 변경할 수 없는 네트워크 구성 설정(
PartyNetworkConfiguration
) - 초기 초대 결정(
PartyInvitationConfiguration
) - 다른 사용자에게 네트워크 광고
초기 초대에는 네트워크에 가입할 수 있는 사용자의 목록과 식별자가 포함됩니다. 사용자는 title_player_account
엔터티 ID 목록으로 지정됩니다. 또는 목록이 비어 있을 수 있는데, 이 경우 네트워크 설명자 및 초대 식별자가 있는 모든 사용자가 가입할 수 있습니다.
네트워크 광고
기존 PlayFab 파티 네트워크에 가입하려면 클라이언트에 다음 두 가지 정보가 필요합니다.
- 네트워크 설명자
- 초대 식별자
PlayFab 파티 네트워크는 네트워크 설명자(PartyNetworkDescriptor
)로 식별됩니다. 설명자는 네트워크 연결을 설정하는 데 필요한 정보를 인코딩하는 대부분 불투명한 구조입니다. 네트워크 만들기가 완료된 후 만드는 클라이언트에 네트워크 설명자가 제공됩니다(PartyCreateNewNetworkCompletedStateChange
, PartyNetwork::GetNetworkDescriptor()
). 개발을 용이하게 하기 위해 PlayFab 파티에서는 네트워크 설명자와 웹 친화적 문자열 간에 직렬화하고 역직렬화하는 메서드를 제공합니다(PartyManager::SerializeNetworkDescriptor(), PartyManager::DeserializeNetworkDescriptor()
).
초대 식별자는 초대를 고유하게 식별하는 문자열입니다. 명시적으로 초대를 만들 때 또는 네트워크를 만드는 중 초기 초대를 만들 때 클라이언트에서 제공합니다. 클라이언트에서 초대 식별자를 제공하지 않으면 고유하게 생성됩니다.
새 네트워크를 다른 사용자에게 광고하려면 적절한 통신 매체를 통해 이러한 두 가지 정보를 보냅니다.
네트워크 가입
네트워크 가입은 2단계 프로세스입니다. 네트워크에 가입하려는 클라이언트는 먼저 역직렬화된 네트워크 설명자를 PartyManager::ConnectToNetwork()
에 제공하여 네트워크에 연결한 다음 초대 식별자를 PartyNetwork::AuthenticateLocalUser()
에 제공하여 사용자를 인증해야 합니다.
시나리오 예제
소셜 초대
가장 간단한 시나리오는 단일 사용자가 게임 세션을 만들고 공유 소셜 플랫폼을 통해 알려진 다른 사용자를 초대하는 시나리오입니다. 흐름은 다음과 같을 수 있습니다.
- 초대자가 공개 초대 또는 초대자가 플레이하려는 모든 사용자가 포함된 초대를 사용하여 네트워크를 만듭니다.
- 네트워크가 만들어지면 초대자는 소셜 플랫폼의 초대 메커니즘을 통해 네트워크 설명자와 초대 식별자를 다른 사용자에게 보냅니다.
- 초대된 각 사용자가 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.
참고 항목
초대에서 사용자를 지정할 때 사용자의 title_player_account
엔터티 ID를 사용합니다. 이러한 엔터티 ID는 PlayFab 파티의 대역 외에서 가져와야 합니다.
로비
게임에서 클라이언트 간에 데이터를 보낼 수 있는 로비를 제공하는 경우 네트워크 연결 정보를 교환하기 위한 통신 매체로 로비를 사용할 수 있습니다. 흐름은 다음과 같을 수 있습니다.
- 게임을 함께 플레이할 사용자 집합을 선택합니다.
- 이러한 사용자 중 하나를 작성자로 선택합니다.
- 집합의 각 사용자가
title_player_account
엔터티 ID를 작성자에게 보냅니다. - 작성자가 초기 초대 구성에서 사용자의 엔터티 ID를 지정하여 네트워크를 만듭니다.
- 네트워크 만들기가 완료되면 작성자는 네트워크 설명자와 초기 초대 식별자를 가입해야 하는 사용자 집합에 보냅니다.
- 각 사용자가 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.
매치 메이킹
PlayFab 매치 메이킹과 같은 매치 메이킹 서비스를 사용하여 플레이할 사용자 목록을 찾을 수 있습니다. 흐름은 다음과 같을 수 있습니다.
- 사용자가 서비스와의 일치 요청을 시작합니다. 일치 결과에 각 사용자의 엔터티 ID가 포함되어야 하므로
title_player_account
엔터티 ID가 요청에 포함되어야 합니다. - 사용자가 네트워크에 속해야 하는 사용자 집합을 포함하는 일치 결과를 받습니다.
- 미리 결정된 알고리즘를 사용하여 작성자가 될 사용자를 선택합니다.
- 작성자가 초기 초대 구성에서 일치된 다른 사용자의 엔터티 ID를 지정하여 네트워크를 만듭니다.
- 네트워크 만들기가 완료되면 작성자는 대역 외 통신 매체를 사용하여 네트워크 설명자와 초기 초대 식별자를 일치하는 다른 사용자에게 보냅니다.
- 일치하는 각 사용자가 네트워크 설명자와 초대 식별자를 사용하여 네트워크에 연결합니다.
참고 항목
작성자가 일치하는 다른 사용자에게 연결 정보를 보내려면 대역 외 통신 매체가 필요합니다.