> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 선택 서비스

> PC GDK 타이틀에 선택 사항인 XBOX 및 PlayFab 서비스(XUser 로그인, 업적, XGameSave, 소셜, 멀티플레이, XStore 커머스)를 계층화하세요.

PC GDK 타이틀이 실행되면 설계 요구 사항에 따라 선택 사항인 XBOX 서비스와 Microsoft Azure PlayFab 기능을 계층화하세요. Microsoft Store에 게시하는 데 이들 중 어느 것도 필수는 아닙니다. 타이틀에 맞는 것을 선택하세요.

## 권장 채택 순서

1. **로그인 & 신원** — [XUser](/build/core-features/common/user/gamecore-user-models)와 [PlayFab 로그인](/services/playfab/identity/player-identity/login).
2. **업적 & 스탯** — [XSAPI Achievements](/services/xbox-services/player-data/achievements/index)와 [Player stats](#player-stats).
3. **클라우드 저장** — [XGameSave](/build/core-features/common/game-save/game-saves-overview).
4. **소셜** — [친구 및 최근 플레이어](/services/xbox-services/community/social-manager/live-social-manager-overview)와 [Rich presence](#rich-presence).
5. **멀티플레이** — [Lobbies](#lobbies), [Matchmaking](#matchmaking), [Multiplayer](#multiplayer), [Invites](#invites), [Chat](#chat).
6. **커머스** — [XStore](/publishing/xstore-commerce/xstore-overview), [In-game purchases](#in-game-purchases), [DLC](/publishing/game-publishing/concepts/add-ons).
7. **서버 측 통합** — [S2S authentication](#s2s-authentication), [User-generated content](#user-generated-content), [라이브 운영](/services/playfab/live-service-management).

## 선택 서비스 항목

아래 각 행은 원본 PC E2E 가이드에서 다룬 항목에 매핑됩니다. 자세한 통합 안내는 연결된 기능 문서에 있습니다.

| 항목                                                | 권장 SDK                           | 위치                                                                                             |
| ------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------- |
| [Chat](#chat)                                     | PlayFab Party                    | [PlayFab Party chat](/services/playfab/multiplayer/networking)                                 |
| [In-game purchases](#in-game-purchases)           | XStore (GDK)                     | [XStore 심층 가이드](/publishing/xstore-commerce/xstore-overview)                                   |
| [Invites](#invites)                               | PlayFab Lobby + XBOX 초대          | [PlayFab Lobby](/services/playfab/multiplayer/lobby)                                           |
| [Leaderboards](#leaderboards)                     | XSAPI 타이틀 관리 리더보드                | [Leaderboards](/services/xbox-services/player-data/stats-leaderboards/index)                   |
| [Lobbies](#lobbies)                               | PlayFab Lobby                    | [PlayFab Lobby](/services/playfab/multiplayer/lobby)                                           |
| [Matchmaking](#matchmaking)                       | PlayFab Matchmaking / SmartMatch | [PlayFab Matchmaking](/services/playfab/multiplayer/lobby)                                     |
| [Multiplayer](#multiplayer)                       | MPSD + MPM, PlayFab Multiplayer  | [Multiplayer](/services/xbox-services/multiplayer/index)                                       |
| [Networking](#networking)                         | PlayFab Party networking         | [PlayFab networking](/services/playfab/multiplayer/networking)                                 |
| [Player stats](#player-stats)                     | XSAPI Stats Manager              | [Stats](/services/xbox-services/player-data/stats-leaderboards/index)                          |
| [Rich presence](#rich-presence)                   | XSAPI Presence                   | [Rich presence](/services/xbox-services/community/presence/live-presence-overview)             |
| [S2S authentication](#s2s-authentication)         | Entra ID + User Store ID         | [Service-to-service auth](https://learn.microsoft.com/en-us/store/commerce/service-to-service) |
| [User-generated content](#user-generated-content) | PlayFab Economy v2               | [PlayFab UGC](/services/playfab/economy-monetization/index)                                    |

## Chat

PC와 XBOX에서 동기식 음성 및 텍스트 채팅에는 **PlayFab Party**를 사용하세요. 핵심 단계:

1. [PlayFab Party SDK](/services/playfab/multiplayer/networking)를 설정합니다.
2. XBOX 서비스와 PlayFab 모두로 플레이어를 인증합니다.
3. `PartyManager::CreateNewNetwork()`로 Party 네트워크를 생성하거나 참가합니다.
4. 로컬 사용자당 `PartyLocalChatControl`을 생성하고 `PartyNetwork::ConnectChatControl()`로 연결합니다.
5. `PartyLocalChatControl::SetAudioInput/Output`과 `PartyAudioDeviceSelectionType`을 통해 오디오 입력/출력 기기를 선택합니다.
6. 채팅 제어 쌍 간의 채팅 권한과 음소거 상태를 구성합니다.
7. `SendText`를 통해 텍스트 채팅을 추가하고, 선택적으로 `SetTextChatOptions`를 통해 번역을 추가합니다.
8. Azure Speech Services를 통한 음성-텍스트 전사 및 텍스트-음성 합성으로 접근성을 추가합니다.
9. 캡처된 마이크 오디오에 오디오 잡음 억제를 활성화합니다.

XBOX에서도 출시한다면 XBOX 서비스 요구 사항을 충족하기 위해 [Party XBOX Live Helper Library](/services/playfab/multiplayer/networking)를 사용하세요.

## In-game purchases

Microsoft Store에서의 인게임 구매 플로우에는 **XStore**(`XGameRuntime.h`를 통해)를 사용하세요.

* 스토어 카탈로그, 연관 제품(애드온, 소모품, 내구재), 사용자의 자격(엔타이틀먼트) 컬렉션을 조회합니다.
* `XStoreShowPurchaseUIAsync`로 구매 UI를 표시합니다.
* `XStoreReportConsumableFulfillmentAsync`로 소모품을 소모합니다.
* 엔타이틀먼트 변경 후 `XStoreQueryProductForCurrentSkuAsync`로 라이선스를 갱신합니다.

PlayFab 기반 가상 경제(통화, 인벤토리, 번들)의 경우 XStore 구매를 PlayFab Economy v2와 결합하세요.

## Invites

PC/XBOX 전반의 초대와 참여에는 **PlayFab Lobby**를 사용하세요.

1. [PlayFab Lobby & Matchmaking SDK](/services/playfab/multiplayer/lobby)를 통합합니다.
2. XBOX 서비스와 PlayFab으로 인증합니다.
3. 로비 소유 방식을 선택합니다: 플레이어 소유(`PFMultiplayerCreateAndJoinLobby`), 서버 소유(`PFMultiplayerCreateAndClaimServerLobby`), 또는 매치메이킹 생성.
4. `PFMultiplayerStartListeningForLobbyInvites`로 초대를 수신합니다.
5. 플랫폼의 초대 UI를 통해 초대를 보내면 대상이 네이티브 XBOX/Store 알림을 받습니다.

로비는 초대를 수락한 후 플레이어가 참가하는 게임 세션 역할도 겸합니다.

## Leaderboards

XBOX 서비스의 소셜 및 글로벌 리더보드에는 **XSAPI 타이틀 관리 리더보드**를 사용하세요.

1. Partner Center의 **XBOX services → Player data**에서 리더보드를 정의합니다.
2. Stats Manager를 사용해 리더보드에 연결된 스탯 이벤트를 발행합니다.
3. `XblLeaderboardGetLeaderboardAsync`(글로벌) 또는 `XblLeaderboardGetLeaderboardForSocialGroupAsync`(친구)로 리더보드를 조회합니다.

[Leaderboards](/services/xbox-services/player-data/stats-leaderboards/index)를 참조하세요.

## Lobbies

공유 세션 상태(멤버 목록, 임의 속성, 소유권)에는 **PlayFab Lobby**를 사용하세요.

* PlayFab Multiplayer C SDK로 로비를 생성, 참가, 검색, 나가기 합니다.
* 게임 플레이 메타데이터를 로비 속성으로 저장합니다(게임 모드, 맵, 준비 상태).
* 매칭된 그룹에서 로비를 형성하려면 PlayFab Matchmaking과 결합합니다.
* 로비 멤버십 위에 네트워킹과 음성을 추가하려면 PlayFab Party와 결합합니다.

## Matchmaking

공유 로비를 생성하는 스킬/속성 기반 매치메이킹에는 **PlayFab Matchmaking**을 사용하세요.

* 플레이어 속성에 대한 규칙을 사용해 PlayFab Game Manager에서 매치메이킹 큐를 정의합니다.
* `PFMatchmakingCreateMatchmakingTicket`으로 티켓을 제출합니다.
* 매치가 찾아지면 플레이어들이 여러분이 소유한 공유 로비에 배치됩니다.

XBOX Live 전용 타이틀의 경우 MPSD를 통한 SmartMatch도 지원되지만, 새 타이틀에는 PlayFab Matchmaking이 권장 경로입니다.

## Multiplayer

PC/XBOX에서 지원되는 두 가지 멀티플레이 스택:

* **PlayFab Multiplayer** — 크로스 플랫폼, 세션에 PlayFab Lobby를, 전송에 PlayFab Party를 사용합니다. 새 타이틀에 권장.
* **XBOX services multiplayer** — MPSD 세션 + Multiplayer Manager(MPM). XBOX 전용 타이틀에는 여전히 지원됩니다.

두 경로 모두 [Multiplayer 개요](/services/xbox-services/multiplayer/index)에서 설명합니다.

## Networking

실시간 게임 플레이 트래픽의 네트워크 전송에는 **PlayFab Party**를 사용하세요.

* 연결된 엔드포인트 사이에서 신뢰성/비신뢰성 메시지를 전송합니다.
* 동일한 Party 네트워크에 음성, 텍스트, 게임 플레이 데이터를 계층화합니다.
* XBOX에서는 Party가 플랫폼의 네트워크 경로와 자동 통합됩니다. PC에서는 UDP와 폴백을 사용합니다.

## Player stats

타이틀 관리 플레이어 스탯에는 **XSAPI Stats Manager**를 사용하세요.

1. Partner Center의 **XBOX services → Player data**에서 스탯을 정의합니다.
2. `XblStatsManagerSetStatAsNumber` / `SetStatAsString`으로 플레이어에 스탯을 추가합니다.
3. 게임 플레이에 응답해 스탯을 증가시키거나 덮어씁니다.
4. 매 프레임 `XblStatsManagerDoWork`로 보류 중인 업데이트를 플러시합니다.

스탯은 리더보드를 지원하며 플레이어의 프로필에 표시됩니다.

## Rich presence

플레이어가 무엇을 하고 있는지 브로드캐스트하려면 **XSAPI Presence**를 사용하세요.

1. Partner Center에서 프레즌스 열거형과 문자열 집합을 정의합니다.
2. 플레이어가 새 상태(메뉴, 레벨, 매치)로 전환할 때 `XblPresenceSetPresenceAsync`로 프레즌스를 업데이트합니다.
3. `XblPresenceGetPresenceAsync` 또는 `XblPresenceGetPresenceForMultipleUsersAsync`로 다른 플레이어를 조회합니다.

[Rich presence](/services/xbox-services/community/presence/live-presence-overview)를 참조하세요.

## S2S authentication

백엔드가 플레이어를 대신해 Microsoft Store API를 호출해야 할 때 서비스 간 인증에는 **Microsoft Entra ID + User Store ID**를 사용하세요.

* 두 가지 User Store ID 유형:
  * `UserCollectionsID` — Microsoft Store **Collections** 서비스(엔타이틀먼트 인벤토리)로 인증.
  * `UserPurchaseID` — Microsoft Store **Purchase** 서비스(거래 검증)로 인증.
* 서비스는 Entra ID 액세스 토큰을 획득하고, 이를 게임 클라이언트의 User Store ID와 함께 사용해 Store REST API를 호출합니다.
* 새 타이틀에 권장됩니다. X-토큰 기반 인증은 레거시입니다.

## User-generated content

일급 또는 서드파티 에셋 파이프라인 위에 UGC 카탈로그를 얹으려면 **PlayFab Economy v2**를 사용하세요.

1. PlayFab으로 플레이어를 인증합니다.
2. `CreateUploadUrls`로 서명된 업로드 URL을 생성합니다.
3. `CreateDraftItem`(`Type:ugc`)로 초안 아이템을 생성합니다.
4. `GetEntityDraftItems`로 초안 아이템을 열거합니다.
5. `PublishDraftItem`으로 게시합니다. 게시된 아이템은 공용 카탈로그에 표시됩니다.
6. `GetItemPublishStatus`로 상태를 확인합니다.
7. `SearchItems`(OData `Filter`, `OrderBy`, `Select`)로 카탈로그를 쿼리합니다.

선택적인 검토/모더레이션은 PlayFab Game Manager의 Catalog Reviewer가 처리합니다.

## 관련 항목

* [PC 엔드투엔드 개요](/build/gdk-and-engines/overview)
* [XBOX 서비스 개요](/services/xbox-services/index)
* [PlayFab 개요](/services/playfab/get-started)

## 관련 API 문서

* [XSAPI 개요](/reference/live/xsapi-c/atoc-xsapi-c) — 신원, 프레즌스, 소셜, 업적, 리더보드
* [XStore API 레퍼런스](/reference/system/xstore/xstore_members) — Microsoft Store 커머스
* [PlayFab 개요](/services/playfab/get-started/index) — PlayFab REST + SDK 인터페이스


## Related topics

- [게임의 XBOX 서비스 구성](/ko/publishing/game-publishing/tutorial-xbox-managed/how-to-configure-xbox-services.md)
- [XBOX 서비스 구성](/ko/publishing/game-publishing/concepts/xbox-services.md)
- [파트너 센터에서 웹 서비스 설정하기](/ko/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/web-services/live-web-services.md)
- [Microsoft Store API로 서비스 인증하기](/ko/publishing/xstore-commerce/xstore-authenticating-service.md)
- [XBOX 서비스 구성 요약 페이지](/ko/services/xbox-services/fundamentals/portal-config/live-portal-summary-tab.md)
