이벤트 기반 통계 살펴보기
이벤트 기반 통계를 사용하여 파트너 센터 구성된 타이틀의 경우 이 항목에서는 파트너 센터 이벤트 및 통계를 구성한 다음, 타이틀에 코드를 추가하여 이벤트를 보내고 통계를 업데이트하는 방법을 보여 줍니다.
파트너 센터에 로그인
다음 예제에서는 파트너 센터를 사용하여 Xbox 게임 환경을 구성합니다.
회사에서 Xbox용 제품을 만드는 데 동의한 후 파트너 센터에서 콘텐츠를 구성합니다. 회사에 아직 파트너 센터 액세스 권한이 설정되지 않았고 게임을 개발 중인 경우 Microsoft 계정 관리자에게 문의하세요. 앱을 개발하는 경우 Xbox 앱 파트너 요청(xboxapps@microsoft.com)에 문의하세요. ID@Xbox 프로그램을 사용하는 경우 ID 설정(idsetup@microsoft.com)에 문의하세요.
ID@Xbox 프로그램을 통해 모든 규모의 자격을 갖춘 게임 개발자는 Xbox One(또는 그 이상)에서 디지털 게임을 자체 퍼블리싱하여 창의성을 발휘할 수 있습니다. 이는 스튜디오가 성공을 극대화하는 데 필요한 도구와 지원을 제공합니다. 자세히 알아보려면 https://www.xbox.com/Developers로 이동하세요.
파트너 센터에 액세스한 후 게임에 대한 제품 그룹을 만들려면 Microsoft가 필요합니다. Microsoft 계정 관리자가 이 프로세스를 지원할 수 있습니다.
Microsoft에서 게임에 대한 제품 그룹을 만든 후 파트너 센터를 사용하여 게임에 대해 Xbox 서비스를 구성합니다. 게임의 Xbox 서비스 구성을 서비스 구성이라고도 합니다.
다음 단계를 사용하여 게임에 대한 이벤트, 통계, 도전 과제 및 순위표를 추가할 수 있는 파트너 센터의 위치로 이동합니다.
파트너 센터에서 사용자 계정으로 로그인합니다.
게임이 포함되어 있거나 포함될 제품 그룹을 선택합니다.
제품 그룹 페이지에서 게임을 선택하거나 새 제품 추가를 선택하여 새 항목을 만듭니다.
새 제품을 만드는 경우 제품 이름을 입력합니다.
리소스 액세스의 경우 배타적 리소스 액세스(ERA)를 선택합니다.
게임을 위한 물리적 미디어를 제작해야 하는지 아니면 디지털 다운로드로만 제작해야 하는지 선택하세요.
제품 만들기를 선택합니다.
왼쪽 창 하단에서 제품이 생성된 샌드박스를 확장합니다.
서비스 구성은 샌드박스 수준에서 정의됩니다. 제품을 다른 샌드박스로 내보내는 경우 서비스 구성도 내보내야 합니다.
샌드박스 하위 메뉴에서 서비스 구성을 선택합니다. 이 페이지를 사용하여 현재 샌드박스의 타이틀에 대한 Xbox 서비스를 구성합니다.
시나리오에 대한 이벤트 식별 및 정의
파트너 센터에서 달성하려는 플레이어 경험을 구현하는 규칙을 정의하기 전에 이러한 경험을 주도할 이벤트를 식별하고 정의해야 합니다.
이벤트 기반 모델에서 도전 과제와 순위표는 플레이어 통계를 기반으로 합니다. 결과적으로 타이틀이 보내야 하는 이벤트를 보기 위해 정의할 통계를 볼 수 있습니다.
이 예에서 정의할 경험을 강화하기 위해 레이스의 각 랩이 끝날 때 보내는 이벤트를 사용합니다.
이 이벤트를 LapCompleted
이라고 합시다. 우리는 이 이벤트를 사용하여 맞춤형 경험을 추진할 것입니다. 이러한 경험을 강화하기 위해 다음 필드도 LapCompleted
이벤트의 일부로 정의합니다.
LapTime: 랩을 완료하는 데 걸리는 시간을 분 단위로 나타내는 필드입니다.
CarModel: 랩을 완료하는 데 사용되는 자동차의 모델을 나타내는 문자열 필드입니다.
WeatherCondition: 랩이 완료되었을 때 트랙의 기상 조건을 식별하는 문자열 필드입니다.
TrackId: 랩이 완료된 트랙의 ID입니다.
이제 파트너 센터에서 이 이벤트를 정의합니다.
파트너 센터의 왼쪽 창에서 Test Sandbox>서비스 구성>이벤트 및 통계 규칙을 선택합니다.
새로 만들기를 선택하여 새 이벤트를 만듭니다. 다음과 같이 새 이벤트 추가 대화 상자가 나타납니다.
기본 이벤트에서 기본을 선택합니다.
이벤트 이름에 LapCompleted를 입력합니다.
선택적으로 설명에 이벤트에 대한 설명을 입력합니다.
이벤트 필드 추가를 선택합니다.
Field Name에 LapTime을 입력하고 다음과 같이 Type을 Double로 지정합니다.
이벤트 필드 추가를 선택합니다.
프로세스를 반복하여 다음 이벤트 필드를 추가합니다.
자동차 모델: 유니코드 문자열
날씨 조건: UnicodeString
트랙 ID: Int32
이벤트는 다음 스크린샷과 유사해야 합니다.
이벤트 저장을 선택하여 샌드박스에 이벤트를 저장합니다.
디자인 통계 규칙
이제 플레이어 경험을 정의했으므로 이러한 경험을 구현하는 통계 규칙을 만들 수 있습니다. 세 가지 시나리오(주요 통계, 도전 과제 및 순위표) 모두에 LapTime
을 사용하고 있으므로 먼저 구성하겠습니다.
이 통계는 주요 통계(영웅 통계라고도 함)로 표시되며, 추가 메타데이터가 있는 글로벌 순위표와 함께 사용됩니다.
게임에서 특정 동작이 발생할 때 게임 내 이벤트가 트리거되며, 이는 통계를 만들기 위한 원시 데이터로 간주됩니다. 모든 이벤트에서 하나 이상의 통계를 만들거나 업데이트해야 합니다. (단일 이벤트에서 여러 통계를 생성하는 방법에 대한 자세한 내용은 이벤트 기반 통계 개요를 참조하세요.)
이벤트 및 통계 규칙 페이지의 이벤트 목록에서 LapCompleted 이벤트를 선택합니다.
새로 만들기(통계 규칙 오른쪽에 있음)를 선택하여 새 통계 규칙을 만듭니다. 선택한 이벤트를 기준으로 합니다. 다음과 같이 통계 규칙 추가 대화 상자가 나타납니다.
Stat Rule Name에 FastestLap을 입력합니다.
다른 앱과 타이틀이 이 규칙에 의해 생성된 통계에 액세스하기를 원하기 때문에 모든 타이틀에 대한 읽기 액세스 열기 확인란을 선택합니다.
통계 규칙에는 이벤트가 통계를 생성하거나 업데이트하는 방법을 정의하는 논리가 있습니다. 가장 빠른 랩을 추적하고 싶기 때문에 새로운 랩 타임이 기존의 가장 빠른 랩 타임보다 낮은 경우에만 통계 값을 업데이트하려고 합니다.
이렇게 하려면 다음과 같이 Operator에서 Min을 선택하고 Parameter에서 LapTime을 선택합니다.
마지막으로 이벤트에 플레이어의 자동차, 트랙, 날씨 조건과 같은 특정 통계에 필요한 모든 추가 데이터(stat context 또는 metadata라고 함)가 포함되어 있는지 확인해야 합니다.
메타데이터에 필드를 추가하려면 CarModel을 선택한 다음 이벤트 필드 추가를 선택합니다.
다음과 같이 WeatherCondition 및 TrackId 필드에 대해 이 작업을 반복합니다.
통계 규칙 추가를 선택하여 통계 규칙을 생성합니다.
주요 통계, 순위표 및 도전 과제 구성
주요 통계
이제 통계 규칙이 완료되었으므로 GameHub의 GameHub Achievement 탭에 통계가 표시되기를 원합니다. 따라서 추천 통계(파트너 센터에서는 영웅 통계라고 함)를 구성해야 합니다.
파트너 센터의 왼쪽 창에서 Test Sandbox>서비스 구성>영웅 통계s를 선택합니다.
새로운 추천/영웅 통계를 추가하려면 새로 만들기를 선택합니다.
영웅 통계 표시 이름에 가장 빠른 랩을 입력합니다.
표시 형식에서 ShortTimespan을 선택합니다. 표시 단위에서 초를 선택합니다.
의미 체계 표시에서 최상을 선택합니다. 이는 컴패니언 앱에 이 값이 해당 통계의 최고 점수임을 나타냅니다.
인스턴스 선택을 선택한 다음 Stat Instance에서 FastestLap을 선택합니다. 이는 추천 통계가
FastestLap
통계 값을 기반으로 함을 나타냅니다.서수에 1을 입력합니다. 이는 주요 통계를 나열할 때 이 주요 통계를 가장 먼저 표시해야 함을 나타냅니다.
정렬 순서에서 오름차순을 선택합니다. 이는 다음과 같이 낮은 값이 높은 값보다 우수함을 나타냅니다.
새 영웅 통계 추가를 선택하여 추천/영웅 통계를 생성합니다.
글로벌 순위표
동일한 랩 타임 통계를 사용하여 모든 플레이어가 자신의 랩 타임이 전 세계의 다른 모든 플레이어와 비교하여 순위가 매겨지는 방식을 볼 수 있도록 순위표를 구성할 수 있습니다.
파트너 센터의 왼쪽 창에서 샌드박스 테스트>서비스 구성>순위표를 선택합니다.
새로 만들기를 선택하여 새 글로벌 순위표를 만듭니다.
순위표 ID에 FastestLap을 입력합니다.
인스턴스 선택을 선택하고 이전에 생성한 FastestLap 통계 규칙을 선택한 다음 통계 인스턴스 추가를 선택합니다.
다음과 같이 정렬에서 오름차순을 선택합니다. 이 선택은 낮은 시간이 더 좋다는 것을 나타냅니다.
새 순위표 추가를 선택하여 새 글로벌 순위표를 만듭니다.
플레이어 통계가 업데이트되면 순위 변경 사항을 반영하도록 순위표도 업데이트됩니다.
순위표를 생성할 때 기존 플레이어 통계가 있는 경우 이러한 통계로 새 순위표를 업데이트하는 데 몇 시간이 걸릴 수 있습니다.
이벤트 기반 도전 과제
타이틀 관리 도전 과제를 사용하는 것이 좋습니다. 그러나 여전히 이벤트 기반 도전 과제를 사용하는 타이틀의 경우 다음과 같이 이벤트를 사용하여 서비스에서 도전 과제를 잠금 해제할 수 있습니다.
이벤트를 사용하여 이벤트 기반 도전 과제를 잠금 해제하려면
파트너 센터의 왼쪽 창에서 샌드박스 테스트>서비스 구성>도전 과제 및 챌린지를 선택합니다.
새 도전 과제를 추가하려면 새로 만들기를 선택하세요.
도전 과제 이름에 60초 미만을 입력합니다.
설명에 60초 이내에 랩 완료를 입력합니다. 이 설명은 도전 과제가 잠금 해제될 때 플레이어에게 표시됩니다.
Not Achieved Description에 60초 이내에 랩 완료를 입력합니다. 이 설명은 도전 과제가 아직 잠겨 있을 때 플레이어에게 표시됩니다.
다음과 같이 도전 과제 아이콘으로 사용할 1920 × 1080픽셀 .png 파일을 업로드합니다.
도전 과제 추가를 선택하여 도전 과제를 생성합니다.
도전 과제 목록에서 60초 미만 도전 과제가 선택되어 있는지 확인합니다. 보상 오른쪽에 있는 새로 만들기를 선택하여 플레이어에게 도전 과제 잠금 해제에 대한 보상을 제공합니다.
이 도전 과제를 잠금 해제하기 위해 플레이어에게 20개의 게이머 점수를 제공합니다. 보상 유형에서 게이머 점수를 선택합니다.
다음과 같이 값에 20을 입력합니다.
보상 추가를 선택합니다.
60초 미만 도전 과제가 여전히 도전 과제 목록에서 선택되어 있는지 확인합니다. 규칙 오른쪽에 있는 새로 만들기를 선택하여 도전 과제를 잠금 해제하는 조건을 정의합니다.
규칙 이름에 60초 미만 규칙을 입력합니다. 이 값은 플레이어에게 표시되지 않으므로 원하는 대로 호출할 수 있습니다.
액션에서 최소를 선택합니다. 이는 선택한 통계 인스턴스가 임계값보다 작거나 같을 때 도전 과제가 잠금 해제되었음을 나타냅니다.
임계값에 60을 입력합니다.
인스턴스 선택을 선택하고 FastestLap 통계 규칙을 선택한 다음 통계 인스턴스 추가를 선택합니다.
규칙 추가를 선택하여 다음과 같이 도전 과제에 대한 규칙을 생성합니다.
게임에서 이벤트를 보내는 코드 추가
이제 Xbox 서비스에서 플레이어 시나리오를 업데이트하는 데 사용할 LapCompleted
이벤트를 정의했으므로 플레이어가 게임에서 레이싱 랩을 완료할 때 이벤트를 보내도록 게임에 코드를 추가해야 합니다.
이벤트를 작성하려면 이벤트 이름이 LapCompleted
인 XblEventsWriteInGameEvent 함수를 호출합니다.
플랫 C API
HRESULT hr = XblEventsWriteInGameEvent(
xboxLiveContext,
"LapCompleted",
R"({"DifficultyLevelId":100, "GameplayModeId":"Adventure"})",
R"({"LocationX":1,"LocationY":1})"
);