이 페이지는 통합의 XBOX 측면에 중점을 둡니다 — 로그인된 XUser에 연결된 PlayFab 계정을 프로비저닝하는 방법과 Microsoft Store 엔타이틀먼트 흐름이 PlayFab 이코노미에 어떻게 연결되는지를 다룹니다. PlayFab 기능 전반(Game Manager, 카탈로그, 클라우드 스크립트, 매치메이킹, Party)에 대해서는 PlayFab 설명서를 참조하세요.
XBOX 및 PlayFab 사용자 계정
XBOX services 계정과 PlayFab 계정은 두 개의 별도 ID입니다:- XBOX services 계정 — 플레이어에게 노출됨. 플레이어의 Microsoft 계정(MSA)이 소유합니다. 게이머태그, XUID, 친구, 도전 과제, 상태를 포함합니다.
- PlayFab 계정 — 백엔드에서 사용됨. PlayFab TitleId(PlayFab의 Game Manager에서 타이틀을 만들 때 할당되는 4–6자리 16진수 문자열) 내의 Entity ID로 식별됩니다. XBOX 타이틀 ID와 동일하지 않습니다.
- 플레이어가
XUserAddAsync로 추가되었고XUserHandle을 보유합니다. - 해당 플레이어에 대한 PlayFab 계정이 PlayFab TitleId 아래에 존재합니다(첫 로그인 시 자동으로 프로비저닝됨).
- XBOX와 PlayFab 계정이 연결되어 있으며, 타이틀은 인증된 PlayFab REST/SDK 호출을 위한 유효한 자격 증명(Entity ID + PlayFab 토큰)을 보유합니다.
PlayFab에 플레이어 로그인
지원되는 두 가지 로그인 경로가 있습니다. 사용하는 PlayFab 서비스에 따라 하나를 선택하세요:PlayFab Services SDK
모든 타이틀에 권장됨. GDK에 게이밍 확장 라이브러리(
PlayFab.Services.C)로 제공됩니다. 이코노미, 리더보드, 클라우드 스크립트, 매치메이킹, 그리고 Party 이외의 기능을 사용하는 모든 타이틀에 사용됩니다.PlayFab Party Xbox Live Helper Library
PlayFab Party가 사용하는 유일한 PlayFab 서비스이고 XBOX services가 유일한 인증 공급자인 경우에만 사용하세요. GDK 내 PlayFab Party SDK와 함께 제공됩니다.
PlayFab Services SDK (권장)
PlayFab Services SDK는 GDK와 함께 제공되며PFAuthenticationLoginWithXUserAsync를 노출합니다. 이 함수는 XUserHandle을 받아 한 번의 호출로 플레이어를 PlayFab에 로그인시킵니다. 첫 실행 시 연결된 PlayFab 계정을 자동으로 프로비저닝하려면 createAccount = TRUE로 설정하세요.
설정
- GDK를 설치합니다.
- PlayFab.Services.C 게이밍 확장 라이브러리를 프로젝트에 추가합니다:
- Visual Studio에서 프로젝트를 열고 → 프로젝트 → 속성을 선택합니다.
- 구성 속성 → Gaming Desktop → 일반에서 Gaming Extension Libraries를 열고 PlayFab.Services.C를 추가합니다.
XUserAddAsync로 플레이어를 XBOX 계정에 로그인시키고 반환된XUserHandle을 보관합니다.PFAuthenticationLoginWithXUserAsync를 호출합니다:XUserHandle을user매개변수로 전달합니다.- 첫 로그인 시 PlayFab이 연결된 계정을 자동으로 프로비저닝하도록
createAccount = TRUE로 설정합니다.
- 결과로 얻은 PlayFab 자격 증명(Entity ID + PlayFab 토큰)을 세션 동안 유지하고, 이후의 모든 PlayFab 호출에 사용합니다.
PlayFab Party XBOX Live Helper Library
PlayFab Party가 타이틀이 사용하는 유일한 PlayFab 서비스라면 PlayFab Services SDK를 건너뛰고 GDK의 PlayFab Party SDK와 함께 번들로 제공되는 Party XBOX Live Helper Library를 통해 로그인할 수 있습니다. 흐름XUserAddAsync로 플레이어를 XBOX에 로그인시킵니다.- 채팅이 처음 시작될 때
XUserGetId로 XUID를 검색합니다. - XUID로
PartyXblManager::CreateLocalChatUser를 호출하여 **PartyXblLocalChatUser**를 생성합니다. - 해당 사용자 객체로
PartyXblManager::LoginToPlayFab를 호출합니다.- GDK(콘솔 및 PC)와 XDK에서는 헬퍼 라이브러리가 내부적으로 필요한 XBOX services 토큰을 가져와 XBOX 자격 증명으로 플레이어를 PlayFab에 로그인시키고, 첫 로그인 시 PlayFab 계정을 자동으로 생성합니다. 이 방법으로 생성된 계정에는 이메일이나 사용자 이름이 첨부되어 있지 않습니다.
- GDK/XDK가 아닌 타이틀(예: GDK 없는 PC Win32)에서는 대신
PartyXblTokenAndSignatureRequestedStateChange를 받습니다. XBOX services 토큰을 직접 가져와PartyXblManager::CompleteGetTokenAndSignatureRequest를 통해 다시 전달합니다.
- 성공 시 PlayFab Entity ID와 토큰을 담은
PartyXblLoginToPlayFabCompletedStateChange를 받습니다.
원격 사용자의 경우
PartyXblManager::CreateRemoteChatUser를 사용하세요 — 원격 사용자 흐름에는 인증이나 토큰 교환이 필요하지 않습니다.XUser는 ID 브리지입니다
다운스트림의 모든 것 — PlayFab 로그인, MPSD 세션 쓰기 토큰, S2S 호출, 엔타이틀먼트 쿼리 — 은XUserAddAsync에서 반환된 XUserHandle로 시작됩니다. PlayFab 통합에 중요한 두 개의 API가 있습니다:
더 넓은 로그인 모델(MSA, XSTS 토큰, 샌드박스 범위 지정)에 대해서는 XBOX services ID를 참조하세요.
크로스 플랫폼 타이틀
PlayFab은 많은 플랫폼 인증 공급자를 지원합니다. iOS, Android, Steam, PlayStation에서 동일한 타이틀을 출시할 때, 모든 플레이어를 XUser를 통해 라우팅하려고 시도하지 마세요 — 플랫폼의 기본 PlayFab 인증 공급자를 사용하세요:- iOS — Apple ID (
LoginWithApple). - Android — Google Play Games (
LoginWithGoogleAccount). - Steam —
LoginWithSteam. - XBOX / GDK PC —
PFAuthenticationLoginWithXUserAsync(이 페이지).
PlayFab 이코노미를 통한 Microsoft Store 인앱 구매
Microsoft Store를 통해 인앱 아이템을 판매하는 GDK 타이틀의 경우, PlayFab은 이코노미 백엔드 역할을 하고 Microsoft Store가 실제 트랜잭션을 처리합니다. PlayFab은 엔타이틀먼트 메서드를 사용하여 Microsoft Store 구매를 플레이어의 PlayFab 인벤토리에 조정합니다 — 플레이어가 먼저 XBOX 계정에 로그인되어 있어야 합니다.흐름
- 플레이어가 XBOX(
XUserAddAsync)와 PlayFab(PFAuthenticationLoginWithXUserAsync)에 로그인됩니다. - 플레이어가 기기에서 Microsoft Store를 통해 아이템을 구매합니다.
- 타이틀이 구매를 PlayFab에 알립니다.
- PlayFab이 XBOX 토큰으로
ConsumeMicrosoftStoreEntitlements를 호출하여 플레이어의 PlayFab 인벤토리를 동기화하고 새로운 아이템을 부여합니다.
Partner Center 사전 요구 사항
- XBOX Creators Program 또는 관리 파트너에 등록됨.
- XBOX 비즈니스 파트너 정보와 동일한 게시자 GUID(
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee)로 Partner Center에 게시자 ID가 구성됨. - XBOX services를 사용하기 위한 컨셉 승인.
PlayFab의 Microsoft Store 애드온은 Partner Center에서 스토어 관리 소모품을 지원하지 않습니다. 개발자 관리 소모품(또는 내구재)만 생성하세요.
Partner Center와 PlayFab에서 일치하는 항목 만들기
Partner Center의 제품 ID와 PlayFab의 아이템 ID는 엔타이틀먼트 동기화가 작동하려면 정확히 일치해야 합니다.- Partner Center → 애드온 → 새 소모품(개발자 관리) 만들기(또는 내구재)를 선택합니다. 고유한 제품 ID(예:
MyItem_001)를 입력합니다. - PlayFab Game Manager → Engage → Economy → New item을 선택합니다. Item ID에 동일한 문자열(
MyItem_001)을 입력합니다. Partner Center와 일치하도록 Consumable 또는 Durable로 표시하고 저장합니다.
용어 참조
카탈로그 및 스토어 — 전역적으로 하나의 Item ID
PlayFab을 사용하면 타이틀당 여러 카탈로그를 정의할 수 있으며 각 카탈로그 내에서 아이템을 스토어로 그룹화할 수 있습니다. Microsoft Store 엔타이틀먼트 동기화가 작동하려면 각 Product ID가 PlayFab 타이틀의 모든 카탈로그 버전에서 정확히 하나의 Item ID와 일치해야 합니다. 잘못됨 — 카탈로그 간에 동일한 ID 재사용:
올바름 — SKU당 하나의 Item ID, 스토어 간에 자유롭게 재사용:
카탈로그 내의 스토어는 그런 다음 이러한 고유한 아이템의 임의의 하위 집합을 자유롭게 번들할 수 있습니다:
참고 항목
- XBOX services ID — XUser, MSA, XSTS 토큰, 샌드박스 범위 지정.
- XBOX 멀티플레이어 — 멀티플레이어 전송 옵션으로서의 PlayFab Party.
- Game Chat 2 — PlayFab Party 위에 계층화된 Game Chat 2.
- Multiplayer Activity — MPA + PlayFab Party 통합.
- GDK용 PlayFab Services SDK 빠른 시작
- PlayFab 가격
