애플리케이션에서 배틀 패스 구현 방법

주의
Game Commerce 자산으로만 작업 시 이 방법 안내서를 사용합니다.

배틀 패스는 배틀 패스 기간에 퀘스트 완료용 보상을 발급하거나 활발하게 플레이하는 것으로 플레이어의 참여를 높일 수 있게 해 줍니다.

제한적 보상이 있는 무료 배틀 패스는 모든 플레이어가 사용할 수 있습니다. 최종 보상 역시 무료 패스에 포함되어 있지 않습니다.

또한, 플레이어는 최종 보상을 포함하여 모든 보상이 있는 프리미엄 패스를 구매할 수 있습니다.

배틀 패스 진행률은 레벨로 나누어집니다. 새 레벨을 잠금 해제하고 배틀 패스 만료 전에 최종 보상을 열 시간이 있으려면 플레이어는 필요한 경험을 얻거나 레벨을 구매해야 합니다.

데모 프로젝트는 엑솔라 제품을 사용하여 배틀 패스를 구현하는 예시를 제공합니다. 배틀 패스 시도 방법:

  1. Xsollus 데모 장면을 시작합니다.
  2. 데모 사용자로 로그인하거나 새 사용자를 생성합니다.
  3. 사이드 메뉴에서 Battle pass를 클릭합니다.

프로젝트용 배틀 패스 적응 방법:

  1. 배틀 패스 논리를 프로젝트에 추가합니다.
  2. 보상 쿠폰 세트를 생성합니다.
  3. 배틀 패스 구성을 생성합니다.
  4. 배틀 패스 아이템을 생성합니다.
  5. 레벨업 아이템을 생성합니다.

프로젝트에 배틀 패스 논리 추가

배틀 패스용 모든 논리는 BattlepassPage 프리패브에 포함되어 있으며 다음 블록으로 나뉘어 있습니다.

  • ScriptHolders — 배틀 패스 구성, 아이템, 플레이어 정보 작업용 스크립트
  • UIScriptHolders — 플레이어 상호 작용용 스크립트

배틀 패스 논리 추가 방법:

  1. 프로젝트에서 BattlepassPage 프리패브를 인스턴트화합니다.
  2. 인터페이스를 변경합니다(선택 사항).
  3. 정보 논리 저장을 수정합니다.

보상 쿠폰 세트 생성

보상은 가상 아이템과 인게임 재화 패키지일 수 있습니다.

현재 솔루션에서 보상은 쿠폰 상황을 통해 플레이어에게 수여됩니다. 쿠폰 세트 생성 방법:

  1. 게시자 계정의 프로젝트로 이동합니다.
  2. 플레이어 보상용 가상 아이템인게임 재화 팩을 생성합니다.
  3. 각 보상에 대해 다음 권장 사항을 사용하여 쿠폰이 있는 캠페인을 설정합니다.

    • 사용자당 상환 수를 배틀 패스의 계획된 쿠폰 상환 개수로 지정합니다. 하나의 쿠폰은 배틀 패스 일부로서 여러 번 상환될 수 있습니다(예: 다른 배틀 패스 레벨에서, 프리미엄 및 무료 버전에서).
    • 캠페인의 유효 기간은 배틀 패스 유효 기간과 같아야 합니다.

배틀 패스를 만들려면 사전에 보상 목록을 만드는 것이 좋으며 각 보상은 다음과 같습니다.

  • 쿠폰 코드
  • 가상 아이템 또는 인게임 재화 패키지 SKU
  • 배틀 패스의 특정 레벨에 보상이 속하는 경우
  • 무료 또는 프리미엄 버전에 보상이 속하는 경우

알림
이전 보상이 만료되기 전에 새 배틀 패스용 보상을 구성할 수 있습니다. 애플리케이션 논리를 중단하지 않으려면 새 배틀 패스 시작 전에 쿠폰 프로모션을 활성화하지 않아야 합니다.

배틀 패스 구성 생성

배틀 패스 구성은 JSON 파일이며 다음을 포함합니다.

  • 배틀 패스 이름
  • 배틀 패스 만료 날짜
  • 무료 및 프리미엄 버전용 보상을 표시하는 레벨 구조

알림
프리미엄 배틀 패스 버전의 가장 높은 레벨용 보상은 자동으로 최종 배틀 패스 보상입니다. 이 보상의 표시는 레벨 완료용 보상 표시와 다릅니다.

JSON 파일 구조:

매개 변수유형설명
이름
string배틀 패스 이름. 배틀 패스 아이템 이름과 일치해야 합니다.
ExpiryDate
string배틀 패스 만료 날짜.
레벨
array배틀 패스 레벨 구조.
Levels.Tier
integer레벨 번호.
Levels.Experience
integer다음 레벨에 도달하기 위한 경험의 양.
Levels.FreeItem
object배틀 패스 무료 버전의 보상 정보. null일 수 있습니다.
Levels.FreeItem.Sku
string가상 아이템 또는 인게임 재화 패키지 SKU. 사용자에게 보상 이미지와 정보를 표시하는 데에 사용되었습니다.

알림
인게임 재화 패키지용으로 패키지 SKU 및 인게임 재화 SKU 둘 다 사용될 수 있습니다.
| |
Levels.FreeItem.Quantity
| integer | 보상의 수. | |
Levels.FreeItem.Promocode
| string | 보상용 쿠폰 코드. | |
Levels.PremiumItem
| object | 배틀 패스 프리미엄 버전의 보상 정보. null일 수 있습니다. | |
Levels.PremiumItem.Sku
| string | 가상 아이템 또는 인게임 재화 패키지 SKU. 사용자에게 보상 이미지와 정보를 표시하는 데에 사용되었습니다.

알림
인게임 재화 패키지용으로 패키지 SKU 및 인게임 재화 SKU 둘 다 사용될 수 있습니다.
| |
Levels.PremiumItem.Quantity
| integer | 보상의 수. | |
Levels.PremiumItem.Promocode
| string | 보상용 쿠폰 코드. |

배틀 패스 구성 예시:

Copy
Full screen
Small screen
{
  "Name": "BP2021JAN",
  "ExpiryDate": "29-03-2021",
  "Levels": [
    {
      "Tier": 1,
      "Experience": 1000,
      "FreeItem": {
        "Sku": "Sku",
        "Quantity": 10,
        "Promocode": "HELLO_WORLD"
      },
      "PremiumItem": {
        "Sku": "Sku2",
        "Promocode": "HELLO_WORLD2"
      }
    },
    {
      "Tier": 2,
      "Experience": 1000
    },
    {
      "Tier": 3,
      "Experience": 1000
    }
  ]
}

배틀 패스 아이템 생성

배틀 패스 아이템은 배틀 패스 구성용 컨테이너이며 플레이어의 프리미엄 상태(플레이어의 프리미엄 버전 구매 여부) 결정에 사용됩니다.

배틀 패스 아이템 생성 방법:

  1. 게시자 계정의 프로젝트로 이동합니다.
  2. 이름이 #BATTLEPASS#가상 아이템 그룹을 생성합니다.

알림
#BATTLEPASS# 그룹은 유틸리티 그룹이며 인게임 스토어 및 인벤토리에 표시되지 않습니다.

  1. 가상 아이템을 다음 매개 변수를 이용해 생성합니다.
    • 아이템 이름 — 구성에서 지정된 배틀 패스의 이름.
    • SKU — 배틀 패스 ID. 구성에서 지정된 배틀 패스의 이름을 사용하는 것이 좋습니다.
    • 아이템 속성 — 소모성 또는 비소모성 아이템.

알림
애플리케이션 디버깅 중에는 소모성 아이템을 생성하는 것이 좋습니다. 배틀 패스 아이템 여부에 대한 시스템의 반응을 테스트할 수 있게 합니다.

    • 가격 — 배틀 패스 프리미엄 버전 가격. 인게임 재화 또는 실질 화폐로 설정되어 있습니다.

알림
가상 아이템이 실질 화폐 및 인게임 재화로 가격이 매겨졌다면 애플리케이션은 실질 화폐 가격을 표시합니다.

    • 그룹 — #BATTLEPASS#.

알림
애플리케이션 디버깅 중에는 추가로 #BATTLEPASS#에 아이템을 배치하기보다는 그룹에 아이템을 배치하는 것이 좋습니다. 이 경우에는 인벤토리에 아이템이 표시됩니다.

  1. 배틀 패스 구성을 생성된 가상 아이템에 추가합니다.
    1. Get virtual item API 호출을 사용하여 JSON 형식의 현재 아이템 설명을 가져옵니다.
    2. 배틀 패스 구성을 문자열로 온라인 서비스 또는 JavaScript의 JSON.stringify() 메소드를 사용하여 변환합니다.
    3. 아이템 설명에서 long_description 매개 변수 en 개체의 결과 문자열을 지정합니다.
    4. Update virtual item API 호출 사용 및 요청 본문의 업데이트한 아이템 설명을 지정하여 아이템을 수정합니다.

배틀 패스 아이템 설명 예시:

Copy
Full screen
Small screen
{
  "sku": "BP2021JAN",
  "name":{
    "en": "BP2021JAN"
  },
  "type": "virtual_good",
  "description":{
    "en": "BP2021JAN"
  },
  "image_url": "https://cdn3.xsolla.com/img/misc/images/7cb1c2b719af329a9bc1df994d58b749.png",
  "long_description": {
    "en": "{
                \"Name\":\"BP2021JAN\",
                \"ExpiryDate\":\"01-07-2021\",
                \"Levels\":
                    [
                        {
                            \"Tier\":1,
                            \"Experience\":100,
                            \"FreeItem\":
                                {
                                    \"Sku\":\"Bullets\",
                                    \"Promocode\":\"B2021S1FL1E100\",
                                    \"Quantity\":50
                                }
                        }
                    ]
            }"
  },
  "attributes":[
  ],
  "is_free": false,
  "order": 1,
  "groups":[
    "Battlepass"
  ],
  "regional_prices":[
  ],
  "prices":[
    {
      "amount": 1,
      "currency": "USD",
      "is_default": true,
      "is_enabled": true
    }
  ],
  "media_list":[
  ],
  "vc_prices":[
  ],
  "is_enabled": true,
  "is_show_in_store": true,
  "regions":[
  ],
  "inventory_options":{
    "consumable": false,
    "expiration_period": null
  }
}

레벨업 아이템 생성

현재 배틀 패스 솔루션은 플레이어가 실질 화폐 또는 인게임 재화로 레벨을 구매할 수 있게 합니다. 레벨 가격은 언제나 같습니다. 현재 레벨 내에서 플레이어가 얻는 경험은 다음 레벨로 전송됩니다.

레벨업 아이템 생성 방법:

  1. 게시자 계정의 프로젝트로 이동합니다.
  2. 가상 아이템을 다음 매개 변수를 이용해 생성합니다.
    • 아이템 이름 — 구성에서 지정된 배틀 패스 이름이 <battlepassname>인 경우 <battlepassname>_levelup_util 형식의 레벨업 아이템 이름.
    • SKU — 구성에서 지정된 배틀 패스 이름을 사용한는 것이 좋습니다.
    • 아이템 속성 — 소모성 또는 비소모성 아이템.
    • 가격 — 레벨 가격. 인게임 재화 또는 실질 화폐로 설정되어 있습니다.

알림
레벨업 아이템이 실질 화폐 및 인게임 재화로 가격이 매겨졌다면 애플리케이션은 실질 화폐 가격을 표시합니다.

    • 그룹 — #BATTLEPASS#.

알림
애플리케이션 디버깅 중에는 추가로 #BATTLEPASS#에 아이템을 배치하기보다는 그룹에 레벨업 아이템을 배치하는 것이 좋습니다. 이 경우에는 인벤토리에 아이템이 표시됩니다.

현재 배틀 패스 솔루션의 세부 사항

배틀 패스 표시 논리

논리에 따라 단 하나의 배틀 패스만 애플리케이션은 표시합니다.

  • 하나 이상의 만료된 배틀 패스가 존재한다면 애플리케이션은 가장 가까운 만료 날짜의 배틀 패스를 표시합니다.
  • 모든 배틀 패스가 만료되었다면 애플리케이션은 마지막으로 만료된 배틀 패스를 표시합니다.

예시 1

현재 날짜: 2021년 3월 4일.

배틀 패스 만료 날짜: 2021년 3월 1일, 2021년 4월 1일, 2021년 5월 1일.

애플리케이션이 표시하는 배틀 패스 만료 날짜는 2021년 4월 1일입니다.

예시 2

현재 날짜: 2021년 3월 4일.

배틀 패스 만료 날짜: 2021년 2월 1일, 2021년 3월 1일.

애플리케이션이 표시하는 배틀 패스 만료 날짜는 2021년 3월 1일입니다.

정보 논리 저장

현재 솔루션에서 배틀 패스의 플레이어 진행률에 대한 모든 정보(레벨, 경험, 받은 보상 등)는 사용자가 편질할 수 있는 특성에 저장되어 있습니다. 데모의 일부로서 이러한 특성의 읽기 및 편집은 Character 페이지에서 할 수 있습니다.

시스템이 필수 특성을 찾지 않는다면, 새 특성이 자동으로 생성됩니다. 시스템이 현재의 배틀 패스용이 아닌 특성을 찾는다면 그러한 특성들은 자동으로 삭제됩니다.

주의
사용자가 편집할 수 있는 특성은 게임의 클라이언트 측에서 변경할 수 있습니다. 배틀 패스의 플레이어 진행률 데이터를 보호하려면 자체 논리 구현 시 읽기 전용 특성을 사용하는 것이 좋습니다.

플레이어의 프리미엄 상태를 결정하려면 플레이어 인벤토리의 배틀 패스 아이템 현재 상태를 확인하세요.

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2022년 8월 8일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!