Partner Center에 로그인
다음 예제에서는 Partner Center를 사용하여 XBOX 게임 경험을 구성합니다. 회사가 XBOX용 제품을 만들기 위한 계약이 있으면 Partner Center에서 콘텐츠를 구성합니다. 회사가 아직 Partner Center 액세스가 설정되어 있지 않고 게임을 개발 중이라면, Microsoft 계정 관리자에게 문의하세요. 앱을 개발 중이라면 XBOX 앱 파트너 요청(xboxapps@microsoft.com)에 문의하세요. ID@XBOX 프로그램과 함께 작업 중이라면 ID Setup(idsetup@microsoft.com)에 문의하세요. ID@XBOX 프로그램은 모든 규모의 자격을 갖춘 게임 개발자가 XBOX One(또는 이후 버전)에서 디지털 게임을 자체 게시하여 창의성을 발휘할 수 있도록 합니다. 이는 스튜디오에 성공을 극대화하는 데 필요한 도구와 지원을 제공합니다. 자세히 알아보려면 https://www.xbox.com/Developers를 참조하세요. Partner Center에 액세스한 후에는 Microsoft가 게임에 대한 제품 그룹을 만들어야 합니다. Microsoft 계정 관리자가 이 프로세스를 지원할 수 있습니다. Microsoft가 게임에 대한 제품 그룹을 만든 후에는 Partner Center를 사용하여 게임에 대한 XBOX 서비스를 구성합니다. 게임에 대한 XBOX 서비스 구성은 서비스 구성 이라고도 합니다. 다음 단계를 사용하여 게임에 대한 이벤트, 스탯, 업적, 리더보드를 추가할 수 있는 Partner Center의 위치로 이동합니다.- Partner Center에서 계정에 로그인합니다.
- 게임을 포함하거나 포함할 제품 그룹을 선택합니다.
- 제품 그룹 페이지에서 게임을 선택하거나 새 제품 추가를 선택하여 새 항목을 만듭니다.
- 새 제품을 만드는 경우 제품의 이름을 입력합니다.
- 리소스 액세스에 대해서는 Exclusive Resource Access(ERA) 를 선택합니다.
- 게임에 대한 물리적 미디어를 생산해야 하는지 또는 디지털 다운로드만 될지 선택합니다.
- 제품 만들기를 선택합니다.
- 왼쪽 창 하단에서 제품이 생성된 샌드박스를 확장합니다. 서비스 구성은 샌드박스 수준에서 정의됩니다. 제품을 다른 샌드박스로 내보내는 경우 서비스 구성도 내보내야 합니다.
- 샌드박스 하위 메뉴에서 서비스 구성을 선택합니다. 이 페이지를 사용하여 현재 샌드박스의 타이틀에 대한 XBOX 서비스를 구성합니다.
시나리오에 대한 이벤트 식별 및 정의
Partner Center에서 원하는 플레이어 경험을 구현하는 규칙을 정의하기 전에, 해당 경험을 구동할 이벤트를 식별하고 정의해야 합니다. 이벤트 기반 모델에서 업적과 리더보드는 플레이어 스탯을 기반으로 합니다. 따라서 우리가 정의할 스탯을 살펴봄으로써 타이틀이 어떤 이벤트를 보내야 하는지 알 수 있습니다. 이 예제에서 정의할 경험을 지원하기 위해 레이스에서 각 랩이 끝날 때 보내는 이벤트를 사용합니다. 이 이벤트를LapCompleted라고 부르겠습니다. 이 이벤트를 사용하여 맞춤형 경험을 구동합니다. 이러한 경험을 지원하기 위해 LapCompleted 이벤트의 일부로 다음 필드도 정의합니다.
- LapTime: 랩을 완료하는 데 걸린 시간을 분 단위로 나타내는 필드.
- CarModel: 랩을 완료하는 데 사용된 자동차 모델을 나타내는 문자열 필드.
- WeatherCondition: 랩이 완료되었을 때 트랙의 날씨 조건을 식별하는 문자열 필드.
- TrackId: 랩이 완료된 트랙의 ID.
- Partner Center의 왼쪽 창에서 Test Sandbox > Service Configuration > Events & Stat Rules를 선택합니다.
- 새 이벤트를 만들려면 New를 선택합니다. Add New Event 대화 상자가 다음과 같이 나타납니다.
- Base Event에서 Base를 선택합니다.
- Event Name에 LapCompleted 를 입력합니다.
- 선택적으로 Description에 이벤트에 대한 설명을 입력합니다.
- Add Event Field를 선택합니다.
- Field Name에 LapTime 을 입력한 다음 Type을 다음과 같이 Double로 지정합니다.
- Add Event Field를 선택합니다.
-
다음 이벤트 필드를 추가하는 프로세스를 반복합니다.
- CarModel: UnicodeString
- WeatherCondition: UnicodeString
- TrackId: Int32
- 샌드박스에 이벤트를 저장하려면 Save Event를 선택합니다.
스탯 규칙 설계
이제 플레이어 경험을 정의했으므로 이러한 경험을 구현하는 스탯 규칙을 만들 수 있습니다. 세 가지 시나리오(Featured Stats, 업적, 리더보드)에 모두LapTime을 사용하므로 이를 먼저 구성합니다.
이 스탯은 Featured Stat(Hero Stat이라고도 함)로 표시되며 추가 메타데이터가 있는 글로벌 리더보드에도 사용됩니다.
게임은 게임에서 특정 작업이 발생할 때 게임 내 이벤트를 발생시키며, 이는 스탯을 만들기 위한 원시 데이터로 간주됩니다. 모든 이벤트에서 하나 이상의 스탯이 생성되거나 업데이트되어야 합니다.
(단일 이벤트에서 여러 스탯을 생성하는 방법에 대한 자세한 내용은 이벤트 기반 스탯 개요를 참조하세요.)
- Events & Stat Rules 페이지에서 이벤트 목록에서 LapCompleted 이벤트를 선택합니다.
- 새 스탯 규칙을 만들려면 Stat Rules 오른쪽의 New를 선택합니다. 이는 선택된 이벤트를 기반으로 합니다. Add Stat Rule 대화 상자가 다음과 같이 나타납니다.
- Stat Rule Name에 FastestLap 을 입력합니다.
- 다른 앱과 타이틀이 이 규칙에 의해 생성된 스탯에 액세스할 수 있도록 하려면 Open read access to any title 확인란을 선택합니다. 스탯 규칙에는 이벤트가 스탯을 만들거나 업데이트하는 방법을 정의하는 로직이 있습니다. 최단 랩을 추적하고 싶으므로 새 랩 타임이 기존 최단 랩 타임보다 낮은 경우에만 스탯 값을 업데이트하고자 합니다.
- 이를 위해 Operator에서 Min을 선택하고 Parameter에서 LapTime을 다음과 같이 선택합니다.
- 필드를 메타데이터에 추가하려면 CarModel을 선택한 다음 Add Event Field를 선택합니다.
- WeatherCondition 및 TrackId 필드에 대해 다음과 같이 이 작업을 반복합니다.
- 스탯 규칙을 만들려면 Add Stat Rule을 선택합니다.
Featured Stats, 리더보드, 업적 구성
Featured Stats
이제 스탯 규칙이 완료되었으므로 스탯이 GameHub의 GameHub 업적 탭에 표시되기를 원합니다. 결과적으로 Featured Stat(Partner Center에서 Hero Stat이라고 함)를 구성해야 합니다.- Partner Center의 왼쪽 창에서 Test Sandbox > Service Configuration > Hero Stats를 선택합니다.
- 새 Featured/Hero Stat을 추가하려면 New를 선택합니다.
- Hero Stat Display Name에 Fastest Lap 을 입력합니다.
- Display Format에서 ShortTimespan을 선택합니다. Display Units에서 Seconds를 선택합니다.
- Display Semantic에서 Best를 선택합니다. 이는 값이 스탯의 최고 점수를 나타냄을 컴패니언 앱에 표시합니다.
-
Select an Instance를 선택한 다음 Stat Instance에서 FastestLap을 선택합니다. 이는 Featured Stat이
FastestLap스탯 값을 기반으로 함을 나타냅니다. - Ordinal에 1 을 입력합니다. 이는 Featured Stats를 나열할 때 이 Featured Stat이 먼저 표시되어야 함을 나타냅니다.
- Sort Order에서 Ascending을 선택합니다. 이는 다음과 같이 낮은 값이 높은 값보다 좋음을 나타냅니다.
- Featured/Hero Stat을 만들려면 Add New Hero Stat을 선택합니다.
글로벌 리더보드
동일한 랩 타임 스탯을 사용하여 리더보드를 구성하여 모든 플레이어가 전 세계의 다른 플레이어와 비교하여 자신의 랩 타임이 어떻게 순위가 매겨지는지 볼 수 있습니다.- Partner Center의 왼쪽 창에서 Test Sandbox > Service Configuration > Leaderboards를 선택합니다.
- 새 글로벌 리더보드를 만들려면 New를 선택합니다.
- Leaderboard ID에 FastestLap 을 입력합니다.
- Select an Instance를 선택하고 앞서 만든 FastestLap 스탯 규칙을 선택한 다음 Add Stat Instance를 선택합니다.
- Sort에서 다음과 같이 Ascending을 선택합니다. 이 선택은 낮은 시간이 더 좋음을 나타냅니다.
- 새 글로벌 리더보드를 만들려면 Add New Leaderboard를 선택합니다.
이벤트 기반 업적
타이틀 관리 업적을 사용하는 것을 권장합니다. 그러나 여전히 이벤트 기반 업적을 사용하는 타이틀의 경우, 다음과 같이 이벤트를 사용하여 서비스에서 업적 잠금 해제를 구동할 수 있습니다. 이벤트를 사용하여 이벤트 기반 업적을 잠금 해제하려면- Partner Center의 왼쪽 창에서 Test Sandbox > Service Configuration > Achievements & Challenges를 선택합니다.
- 새 업적을 추가하려면 New를 선택합니다.
- Achievement Name에 Under 60 seconds 를 입력합니다.
- Description에 Completed a lap in under 60 seconds 를 입력합니다. 이 설명은 업적이 잠금 해제될 때 플레이어에게 표시됩니다.
- Not Achieved Description에 Complete a lap in under 60 seconds 를 입력합니다. 이 설명은 업적이 여전히 잠겨 있을 때 플레이어에게 표시됩니다.
- Achievement Icon으로 사용할 1920 × 1080 픽셀 .png 파일을 다음과 같이 업로드합니다.
- 업적을 만들려면 Add Achievement를 선택합니다.
- 업적 목록에서 Under 60 seconds 업적이 선택되어 있는지 확인합니다. 업적 잠금 해제에 대해 플레이어에게 보상을 제공하려면 Rewards 오른쪽의 New를 선택합니다.
- 이 업적을 잠금 해제한 것에 대해 플레이어에게 20 게이머스코어 포인트를 제공합니다. Reward Type에서 Gamerscore를 선택합니다.
- Value에 20 을 다음과 같이 입력합니다.
- Add Reward를 선택합니다.
- 업적 목록에서 Under 60 seconds 업적이 여전히 선택되어 있는지 확인합니다. 업적을 잠금 해제하는 조건을 정의하려면 Rules 오른쪽의 New를 선택합니다.
- Rule Name에 Under 60 seconds rule 을 입력합니다. 이 값은 플레이어에게 보이지 않으므로 원하는 대로 이름을 지정할 수 있습니다.
- Action에서 Min을 선택합니다. 이는 선택된 스탯 인스턴스가 임계값 값 이하일 때 업적이 잠금 해제됨을 나타냅니다.
- Threshold에 60 을 입력합니다.
- Select an Instance를 선택하고 FastestLap 스탯 규칙을 선택한 다음 Add Stat Instance를 선택합니다.
- 다음과 같이 업적에 대한 규칙을 만들려면 Add Rule을 선택합니다.
게임에서 이벤트를 보내는 코드 추가
이제 XBOX 서비스가 플레이어 시나리오를 업데이트하기 위해 사용할LapCompleted 이벤트를 정의했으므로, 플레이어가 게임에서 레이싱 랩을 완료할 때 이벤트를 보내는 코드를 게임에 추가해야 합니다.
이벤트를 작성하려면 이벤트 이름을 LapCompleted로 하여 XblEventsWriteInGameEvent 함수를 호출합니다.
Flat C API
