> ## 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.

# Winter Starfall PlayFab 데모 게임 개요

> 계정, 경제, 매치메이킹, 분석 등 라이브 서비스 기능을 처음부터 끝까지 보여주는 PlayFab의 플레이 가능한 데모 게임 Winter Starfall을 살펴봅니다.

# 데모 게임: Winter Starfall

Winter Starfall은 PlayFab이 다양한 기능을 소개하고, 실제 라이브 게임에서 이러한 기능이 어떻게 구현되는지 살펴볼 수 있도록 개발한 게임입니다.

이 게임은 [WinterStarfall.com](https://winterstarfall.com/)에서 플레이할 수 있습니다. 이미 PlayFab 개발자 계정이 있는 경우, 개발자 포털의 My Studios and Titles 페이지에서도 접근할 수 있습니다.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/demo-games-overview.png?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=4312da1a7db281fb614184912df424b7" alt="데모 게임을 보여주는 Game Manager 홈페이지" width="1100" height="600" data-path="images/playfab/demo-game/demo-games-overview.png" />

이 게임은 웹 앱으로 빌드되어 있으며, 사용자 지정 기능 구현을 위해 PlayFab SDK의 API와 PlayFab의 Azure Functions 통합을 사용합니다. 현재 이 게임은 다음 PlayFab 기능을 사용합니다.

* Economy V2 (카탈로그, 통화, 번들, 스토어)
* 타이틀 데이터, 플레이어 데이터 및 기타 핵심 PlayFab 기능
* 플레이어와의 커뮤니케이션을 위한 타이틀 뉴스
* Azure Functions를 사용하는 Cloud Script

## 추가 데모 기능

Winter Starfall에는 PlayFab의 '내부 동작'을 더 쉽게 확인할 수 있는 기능이 포함되어 있습니다. 게임은 누구나 플레이할 수 있지만, 이러한 기능을 완전히 활용하려면 [무료 개발자 계정](https://developer.playfab.com)에 가입해야 합니다.

우측 상단의 프로필 아이콘 옆에 PlayFab 아이콘이 있으며, 이 아이콘을 선택하면 PlayFab 활동 사이드바가 열립니다.

<img src="https://mintcdn.com/microsoft-4404708b/21eXsQWfZsj4EYti/images/playfab/demo-game/winter-starfall-activity.webp?fit=max&auto=format&n=21eXsQWfZsj4EYti&q=85&s=054047b1d948df754d82778ae711bd27" alt="winter-starfall-profile" width="3211" height="1359" data-path="images/playfab/demo-game/winter-starfall-activity.webp" />

1. 활동 사이드바에는 게임을 플레이하면서 업데이트되는 API 호출 목록이 표시됩니다. 각 API 호출에는 관련된 PlayFab SDK를 나타내는 태그와 색상 코드가 지정되어 있습니다.
2. 목록에서 API 호출 중 하나를 선택하면 전체 API 요청 및 응답을 볼 수 있습니다.
3. **View title F8941**을 선택하면 Game Manager에서 해당 타이틀이 열려 다양한 기능이 어떻게 구성되어 있는지 확인할 수 있습니다. 이 단계에서는 PlayFab 개발자 계정으로 로그인하라는 메시지가 표시됩니다.
4. **Clear**는 활동 바에서 현재 알림을 모두 제거합니다.

<Note>
  데모 게임은 언제든지 플레이할 수 있지만, Game Manager에 접근하려면 [무료 개발자 계정](https://developer.playfab.com)에 가입해야 합니다.
</Note>

## 포함된 PlayFab 기능

다음 섹션에서는 게임에서 사용되는 다양한 PlayFab 기능에 대해 자세히 설명합니다.

### 인증

PlayFab 게임에서 가장 먼저 발생하는 일은 플레이어의 로그인입니다. 로그인이 완료되면 이후 모든 API 호출에 필요한 인증 토큰이 반환됩니다. Winter Starfall은 이메일, Microsoft(OpenID를 통한), Google, Facebook 등 여러 가지 복구 가능한 로그인 방식을 지원합니다. [소스 코드 및 시나리오 튜토리얼](/services/playfab/demo-game/source-code-and-best-practices)에서는 로그인 흐름과 플레이어 인증 모범 사례를 자세히 살펴봅니다.

[PlayFab 인증 자세히 알아보기](/services/playfab/identity/player-identity/authentication)

### Economy

Winter Starfall은 판타지 롤플레잉 게임(RPG)으로, 플레이어가 스토어를 방문하고 아이템을 구매하며 전투를 통해 통화를 획득할 수 있는 경제 시스템을 포함하고 있습니다. PlayFab의 최신 경제 서비스는 게임의 인벤토리 및 상거래와 관련된 모든 것을 처리합니다. [소스 코드 및 시나리오 튜토리얼](/services/playfab/demo-game/source-code-and-best-practices)에서는 게임에서 이루어지는 구매 흐름을 자세히 설명합니다.

[Economy V2 자세히 알아보기](/services/playfab/economy-monetization/economy-v2/overview)

### 플레이어 데이터

PlayFab의 플레이어는 다양한 기능에 의해 서비스에 저장되는 연관 데이터를 가집니다. 플레이어 데이터 기능을 사용하면 여러 게임과 디바이스에서 공유할 수 있는 키/값 쌍, 객체, 파일 형태로 플레이어 관련 정보를 저장할 수 있습니다.

Winter Starfall에서는 플레이어 데이터를 사용하여 게임 상태와 어떤 캐릭터가 플레이어 파티에 합류했는지 같은 정보를 저장합니다. 플레이어가 스토리를 진행하는 동안, 플레이어의 위치는 [UpdateUserData](xref:titleid.playfabapi.com.client.playerdatamanagement.updateuserdata) API 호출을 통해 플레이어 프로필에 기록됩니다. 이 데이터는 이후 로그인 시 `GetUserData`로 액세스하여, 플레이어를 과거 진행 상황이 반영된 스토리의 올바른 지점으로 로드합니다.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/winterstarfall-player-data.jpg?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=49372a116bcafd08eb85bb8ae82bba41" alt="winter-starfall-player-data" width="1280" height="800" data-path="images/playfab/demo-game/winterstarfall-player-data.jpg" />

예를 들어, 다음은 로그인 흐름 중에 `GetUserData` 호출에서 사용되는 API 요청 및 응답 본문 예시입니다.

**GetUserData - Request**

```json theme={null}
{
  "Keys": [
    "stats",
    "location",
    "party",
    "notifications",
    "cinematicProgression",
    "enemyGroupProgression"
  ]
}
```

**GetUserData - Response**

```json theme={null}
{
  "code": 200,
  "status": "OK",
  "data": {
    "Data": {
      "location": {
        "Value": "{\"id\":\"intro\",\"map\":[\"intro\",\"intro-village\"]}",
        "LastUpdated": "2024-09-20T18:16:13.68Z",
        "Permission": "Private"
      },
      "party": {
        "Value": "{\"characters\":[{\"id\":1,\"armor\":\"dfae3ef9-92a0-493b-9bb8-f88a09718d26\",\"weapon\":\"32e1f684-43b0-4fe6-982e-b0829ff0d6f3\",\"spells\":null}],\"guests\":[]}",
        "LastUpdated": "2024-09-20T18:16:13.68Z",
        "Permission": "Private"
      }
    },
    "DataVersion": 20
  },
  "CallBackTimeMS": 97
}
```

[플레이어 데이터 기능 자세히 알아보기](/services/playfab/player-progression/player-data)

### 타이틀 데이터

타이틀 데이터는 키-값 쌍을 저장한다는 점에서 플레이어 데이터와 비슷하지만, 특정 플레이어가 아닌 게임 타이틀과 관련된 데이터를 저장합니다. Winter Starfall은 Economy 시스템과 함께 타이틀 데이터를 사용하여, `multipliers` 값을 `sell, 0.5`로 저장함으로써 아이템 판매 시 가격을 계산합니다. 판매 흐름 작동 방식에 대한 자세한 내용은 [소스 코드 및 시나리오 튜토리얼](/services/playfab/demo-game/source-code-and-best-practices)을 참조하세요.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/winterstarfall-title-data.jpg?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=c90a1a2de5f2b0cdefc3b93630023a1f" alt="Game Manager의 winterstarfall 타이틀 데이터 개요" width="1280" height="800" data-path="images/playfab/demo-game/winterstarfall-title-data.jpg" />

[타이틀 데이터 자세히 알아보기](/services/playfab/live-service-management/game-configuration/titledata)

### Azure Functions를 사용하는 CloudScript

CloudScript는 사용자 지정 서버 측 기능을 구현할 수 있는 유연한 기능으로, 다른 PlayFab 기능과 결합하면 거의 무제한적인 솔루션을 만들 수 있습니다.

이 게임은 이 기능을 활용해 다음과 같은 여러 시나리오를 처리합니다.

* [CombatVictory](https://github.com/PlayFab/winter-starfall/blob/main/azure-functions/CombatVictory.cs) - 플레이어가 전투에서 승리한 후, 경험치와 아이템을 부여하고 파티 멤버를 추가하는 일련의 작업을 실행합니다.
* [PlayerCreated](https://github.com/PlayFab/winter-starfall/blob/main/azure-functions/PlayerCreated.cs) - 신규 플레이어에게 시작 아이템과 스탯을 지급합니다.
* [ProgressCheckpoint](https://github.com/PlayFab/winter-starfall/blob/main/azure-functions/ProgressCheckpoint.cs) - 주요 스토리 지점에 도달한 후 아이템과 캐릭터를 잠금 해제하는 작업을 수행합니다.
* [ResetPlayer](https://github.com/PlayFab/winter-starfall/blob/main/azure-functions/ResetPlayer.cs) - 사용자 데이터, 아이템, 통계를 삭제하여 완전한 초기화를 수행합니다.
* [SellItem](https://github.com/PlayFab/winter-starfall/blob/main/azure-functions/SellItem.cs) - Economy 시스템의 기본 기능이 아닌 할인 판매 기능을 제공합니다. 구매/판매 흐름은 [소스 코드 및 시나리오 튜토리얼](/services/playfab/demo-game/source-code-and-best-practices)에서 자세히 다룹니다.

[Azure Functions를 사용하는 CloudScript 자세히 알아보기](/services/playfab/live-service-management/service-gateway/automation/cloudscript-af)

<Note>
  Winter Starfall의 CloudScript 함수는 C#으로 작성되었지만, [Azure Functions](https://learn.microsoft.com/azure/azure-functions/supported-languages?tabs=isolated-process%2Cv4\&pivots=programming-language-csharp)에서 지원하는 모든 언어를 사용할 수 있습니다.
</Note>

### 타이틀 뉴스

타이틀 뉴스는 타이틀 범위에 속한 모든 플레이어와 커뮤니케이션하는 데 사용됩니다. Winter Starfall은 게임 플레이 팁과 공지를 표시하는 알림 시스템으로 이를 구현합니다.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/winterstarfall-title-news.jpg?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=dfa9a280fd3013c08a2e038f90f99f7e" alt="winter-starfall-title-news" width="3321" height="1930" data-path="images/playfab/demo-game/winterstarfall-title-news.jpg" />

타이틀 뉴스 외에도 PlayFab은 이메일 및 푸시 알림용 템플릿 같은 다른 커뮤니케이션 기능을 제공합니다.

[타이틀 커뮤니케이션 방식 자세히 알아보기](/services/playfab/live-service-management/game-configuration/title-communications/overview)

## 데모 제한 사항

Winter Starfall은 실제 플레이어 데이터를 기반으로 동작하기 때문에, 일부 기능은 Game Manager 보기에서 범위가 제한되어 있습니다. 이 섹션에서는 제한된 기능이 Game Manager에서 어떻게 보이는지에 대한 개요를 제공합니다. 이 페이지들을 더 자세히 살펴보려면 [소스 코드를 다운로드](https://github.com/PlayFab/winter-starfall)하여 게임의 로컬 인스턴스를 실행하거나, 처음부터 새로운 타이틀을 만들 수 있습니다.

<Note>
  개발자 포털의 기능에 대한 전체 가이드는 [Game Manager 문서](/services/playfab/live-service-management/gamemanager)를 참조하세요.
</Note>

### 플레이어

Winter Starfall 타이틀에서는 플레이어 정보를 보호하기 위해 Game Manager의 **Players** 섹션이 숨겨져 있습니다. 일반적으로는 게임의 전체 플레이어 목록을 쿼리하고 특정 계정을 선택하여 Game Manager를 통해 해당 데이터를 업데이트할 수 있습니다. 플레이어 개요 페이지에서는 인벤토리 아이템, 모든 로그인 기록, 플레이어 데이터 등 플레이어와 관련된 모든 정보를 확인할 수 있습니다.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/player-overview.png?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=ab0d5defe256d9be89f5a8faac3b169c" alt="플레이어 개요" width="1280" height="1200" data-path="images/playfab/demo-game/player-overview.png" />

### 데이터 및 분석

**Analyze** 섹션의 일부 기능도 타이틀 및 플레이어 정보 보호를 위해 제한됩니다. 이러한 제한에는 **Data** 및 **Audit History** 섹션이 포함됩니다. **Data** 섹션에는 [Data Explorer](/services/playfab/data-analytics/learn-data/data-explorer) 같은 기능이 있으며, 이를 통해 PlayFab 이벤트 기록을 쿼리하고 볼 수 있습니다. 여기에는 특정 플레이어가 로그인한 시점과 같은 이벤트(API 호출)가 표시됩니다.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/demo-game-data.png?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=dd8dd0c11b6e7ed7208422e8a10d4b40" alt="데이터 페이지" width="1280" height="1400" data-path="images/playfab/demo-game/demo-game-data.png" />

[감사 기록](/services/playfab/live-service-management/gamemanager/audit-logs)은 편집 권한을 가진 사람이 타이틀에 대해 변경한 이력을 확인할 수 있는 기능을 제공합니다.

**Data** 섹션에 포함된 다른 기능들에 대한 전체 개요는 [Data & analytics 문서](/services/playfab/data-analytics)를 참조하세요.

### 기타

타이틀 설정 아래에서 **Secret keys** 탭은 숨겨져 있습니다. [비밀 키 관리 문서](/services/playfab/live-service-management/gamemanager/secret-key-management)를 참조하세요.

<img src="https://mintcdn.com/microsoft-4404708b/68AB2fedpk3M7e-n/images/playfab/demo-game/secret-keys.jpg?fit=max&auto=format&n=68AB2fedpk3M7e-n&q=85&s=a152e4f9929b777d3e1767ec65e06bf6" alt="Secret Keys 페이지를 보여주는 Game Manager UI" width="1280" height="800" data-path="images/playfab/demo-game/secret-keys.jpg" />

## 다음 단계

데모를 사용해 본 후, PlayFab의 작동 방식을 더 자세히 알아보려면 다음 문서부터 시작할 것을 권장합니다.

* [Game Manager](/services/playfab/live-service-management/gamemanager)에 대해 자세히 알아보기
* [Entity 모델](/services/playfab/live-service-management/game-configuration/entities)에 대해 알아보기
* [PlayFab Services SDK](/services/playfab/sdks/sdk-overview)에 대해 알아보기

## 참고 항목

* [Winter Starfall 플레이하기](https://winterstarfall.com/)
* [튜토리얼: 소스 코드 다운로드 및 예제 흐름](/services/playfab/demo-game/source-code-and-best-practices)


## Related topics

- [Vanguard Outrider (레거시)](/ko/services/playfab/demo-game/legacy-vanguard-outrider.md)
- [PlayFab 기본 사항](/ko/services/playfab/get-started/index.md)
- [소스 코드 및 모범 사례 - Winter Starfall](/ko/services/playfab/demo-game/source-code-and-best-practices.md)
- [XBOX 게임 게시 개요](/ko/publishing/game-publishing/publishing-processes/managed-creators/overview.md)
- [평가판 개요](/ko/publishing/game-publishing/concepts/availability/trials.md)
