디자인 개요
MPA를 PlayFab Lobby 및 Match 또는 유사한 서비스와 통합하려면, 타이틀 또는 타이틀 서비스가 로비 상태에서 관련 정보를 쿼리한 다음 이 정보를 MPA 서비스로 마이그레이션해야 합니다. MPA 서비스는 로비 또는 세션 상태 정보용으로 의도되지 않았습니다.활동
MPA Activity의 경우, 소스 정보는 기본 로비 정보여야 합니다. 타이틀 또는 서비스는 다음과 같은 모범 사례로 MPA Activity 콘텐츠 필드에 관련 정보를 설정해야 합니다.-
업데이트 빈도
로비 데이터에서 상태 마이그레이션은
CurrentPlayers정보에 대한 업데이트와 같은 변경 사항을 합리적으로 반영하기 위해 수행되어야 합니다. 업데이트 호출은 Fine-Grained Rate Limiting에 설명된 호출 제한을 초과해서는 안 됩니다. 정보를 업데이트하기 위해 MPA Activity를 삭제/재생성해서는 안 됩니다. -
XBOX 사용자 ID(XUID)
플레이어의 XUID는 일반적으로 XBOX 서비스 외부의 서비스에서 확인되지 않은 정보이며 크로스 네트워크 서비스의 주요 식별자가 아닙니다. PlayFab Lobby는 API 또는 서비스 호출을 통해 활성 사용자의 XUID로 변환할 수 있는 플레이어용 크로스 네트워크 PlayFab User Entity ID를 사용합니다. 자세한 내용은 PlayFab 자습서: 플레이어 프로필 가져오기를 참조하세요. 이렇게 확인된 XUID만 안전한 것으로 간주되어야 합니다.
다른 플레이어의 XUID는 이러한 방식으로 검색할 수 없습니다. 해결책으로, XUID는 Lobby에서 플레이어의 사용자 지정 문자열 속성으로 제공될 수 있습니다. 이러한 문자열은 안전한 것으로 간주해서는 안 되며 항상
PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResult를 사용하여 XUID에 대한 예상 PlayFab User Entity ID와 실제 PlayFab User Entity ID를 비교하여 PlayFab 서비스를 통해 검증해야 합니다. 불일치는 잘못된 XUID를 나타냅니다. 모든 서비스에서, 안전하지 않은 문자열로 제공된 XUID는 안전하지 않으며 검증 없이는 사칭 공격으로 이어질 수 있습니다. -
연결 문자열
PlayFab Lobby 서비스와 통합하려면, MPA 활동의 연결 문자열을
PFLobbyGetConnectionString을 통해 검색할 수 있는 Lobby 연결 문자열로 설정해야 합니다. 다른 서비스는 동등한 참여 문자열을 사용해야 합니다. -
로비 참여 가능성 반영
활동은 플레이어가 게임플레이 경험에 참여할 수 있도록 하기 위한 것이며 기본 로비 상태의 참여 가능성과 일치해야 합니다. 활동이 가득 차면(
CurrentPlayers가MaxPlayers값에 도달) 활동은 자동으로 참여 불가능해집니다. 활동을 일시적으로 참여 불가능하게 만들려는 타이틀은 이 동작을 사용할 수도 있습니다. 향후 참여가 불가능한 경우에만 활동을 삭제해야 합니다. 활동의 개인 정보 설정을 변경하는 것은 제한할 뿐이며 모든 참여를 차단할 수 없습니다. 활동 참여의 지연 시간으로 인해, 타이틀은 항상 가득 차거나 참여 불가능한 세션에 대해 참여가 수행되는 플로우를 고려하고 플레이어에게 적절한 오류를 제공해야 합니다. - 개인 정보 변경 반영 Join Restrictions를 통한 활동 개인 정보의 상태와 변경 사항은 기본 PlayFab Lobby에 대해 정의된 Access Policy를 반영해야 합니다. 유사한 서비스에도 동일한 원칙이 적용되며 개인 정보 값의 매핑이 필요할 수 있습니다.
초대
MPA Invites의 경우, 권장되는 소스도 기본 로비 정보여야 합니다. 이 모범 사례 접근 방식은 PlayFab Party와 같은 네트워크 메시에 대한 초대보다 더 안정적이며 로비 데이터를 통해 즉시 상태 정보를 제공할 수 있습니다. PlayFab Lobby 서비스와 통합하려면, MPA 초대의 연결 문자열을 Lobby 연결 문자열로 설정해야 합니다. 이 문자열은PFLobbyGetConnectionString을 통해 검색할 수 있습니다. 또한, 초대에 대해 적절한 크로스 플랫폼 참여 값이 설정되어야 합니다.
