Game > Gamebase > Unreal SDK 사용 가이드 > 초기화

Gamebase Unreal SDK를 사용하려면 먼저 초기화를 진행해야 합니다. 또한 앱 ID, 앱 버전 정보가 TOAST Console에 반드시 등록돼 있어야 합니다.

Include Header File

Gamebase API를 사용하기 위해서는 다음의 헤더 파일을 가져옵니다.

#include "Gamebase.h"

GamebaseConfiguration

초기화 시 필요한 설정들은 아래와 같습니다.

Setting value Supported Platform Mandatory(M) / Optional(O)
appID ALL M
appVersion ALL M
storeCode ALL M
displayLanguageCode ALL O
enablePopup ALL O
enableLaunchingStatusPopup ALL O
enableBanPopup ALL O
enableKickoutPopup ALL O

1. App ID

Gamebase Console에 등록된 프로젝트 ID입니다.

Console Guide

2. appVersion

Gamebase Console에 등록한 클라이언트 버전입니다.

Console Guide

3. storeCode

TOAST 통합 인앱 결제 서비스인 IAP(In-App Purchase)를 초기화하기 위해 필요한 스토어 정보입니다.

Store Code Description
App Store AS only iOS
Google Play GG only Android
One Store ONESTORE only Android

4. displayLanguageCode

Gamebase에서 제공하는 UI 및 SystemDialog에 표시되는 언어를 단말기에 설정된 언어가 아닌 다른 언어로 변경할 수 있습니다.

Display Language

5. enablePopup

시스템 점검, 이용 제재(ban) 등 게임 유저가 게임을 플레이할 수 없는 상황에서 팝업 등으로 사유를 표시해야 할 때가 있습니다. Gamebase에서 제공하는 기본 팝업을 사용할 것인지에 대한 설정입니다.

  • true: enableLaunchingStatusPopup, enableBanPopup 설정에 따라 팝업 노출 여부가 결정됩니다.
  • false: Gamebase에서 제공하는 모든 팝업이 노출되지 않습니다.
  • 기본값: false

6. enableLaunchingStatusPopup

LaunchingStatus가 게임을 할 수 없는 상태일 경우, Gamebase에서 제공하는 기본 팝업을 사용할 것인지에 대한 설정입니다. LaunchingStatus는 아래 Launching 절 아래 State, Code 부분을 참고하십시오.

  • 기본값: true

7. enableBanPopup

로그인 시 해당 게임 유저가 이용 정지 상태인 경우, Gamebase에서 제공하는 기본 팝업을 사용할 것인지에 대한 설정입니다.

  • 기본값: true

8. enableKickoutPopup

Gamebase Server로 부터 Kickout 이벤트를 받은 경우, Gamebase에서 제공하는 기본 팝업을 사용할 것인지에 대한 설정입니다.

  • 기본값: true

Initialize

SDK를 초기화합니다.

API

Supported Platforms UNREAL_IOS UNREAL_ANDROID UNREAL_EDITOR

void Initialize(const FGamebaseConfiguration& configuration, const FGamebaseLaunchingInfoDelegate& onCallback);

Example

void Sample::Initialize(const FString& appID, const FString& appVersion)
{
    FGamebaseConfiguration configuration{ "AppID", "AppVersion", "real", GamebaseDisplayLanguageCode.Korean, true, true, true, true, GamebaseStoreCode.Google, true };

    IGamebase::Get().Initialize(configuration, FGamebaseLaunchingInfoDelegate::CreateLambda([=](const FGamebaseLaunchingInfo* launchingInfo, const FGamebaseError* error)
    {
        if (Gamebase::IsSuccess(error))
        {
            UE_LOG(GamebaseTestResults, Display, TEXT("Initialize succeeded."));

            // Following notices are registered in the Gamebase Console
            auto notice = launchingInfo->launching.notice;
            if (notice != null)
            {
                if (string.IsNullOrEmpty(notice.message) == false)
                {
                    UE_LOG(GamebaseTestResults, Display, TEXT("title: %s"), notice.title);
                    UE_LOG(GamebaseTestResults, Display, TEXT("message: %s"), notice.message);
                    UE_LOG(GamebaseTestResults, Display, TEXT("url: %s"), notice.url);
                }
            }

            // Status information of game app version set in the Gamebase Unreal SDK initialization.
            auto status = launchingInfo->launching.status;

            // Game status code (e.g. Under maintenance, Update is required, Service has been terminated)
            // refer to GamebaseLaunchingStatus
            if (status.code == GamebaseLaunchingStatus::IN_SERVICE)
            {
                // Service is now normally provided.
            }
            else
            {
                switch (status.code)
                {
                    case GamebaseLaunchingStatus::RECOMMEND_UPDATE:
                    {
                        // Update is recommended.
                        break;
                    }
                    // ... 
                    case GamebaseLaunchingStatus::INTERNAL_SERVER_ERROR:
                    {
                        // Error in internal server.
                        break;
                    }
                }
            }
        }
        else
        {
                // Check the error code and handle the error appropriately.
            UE_LOG(GamebaseTestResults, Display, TEXT("Initialize failed."));
        }
    }));
}

Launching Information

Initialize API를 사용하여 Gamebase Unreal SDK를 초기화하면 LaunchingInfo 객체가 결괏값으로 전달됩니다. 이 LaunchingInfo 객체에는 Gamebase Console에 설정한 값들과 게임 상태 등이 포함돼 있습니다.

1. Launching

Gamebase 론칭 정보입니다.

1.1 Status

Gamebase Unreal SDK 초기화 설정에 입력한 앱 버전의 게임 상태 정보입니다.

  • code: 게임 상태 코드(점검 중, 업데이트 필수, 서비스 종료 등)
  • message: 게임 상태 메시지

상태 코드는 아래 표를 참고하십시오.

Status Status Code Description
IN_SERVICE 200 정상 서비스 중
RECOMMEND_UPDATE 201 업그레이드 권장
IN_SERVICE_BY_QA_WHITE_LIST 202 점검 중에는 서비스를 이용할 수 없지만 QA 단말기로 등록된 경우에는 점검과 상관없이 서비스에 접속해 테스트할 수 있습니다.
IN_TEST 203 테스트 중
IN_REVIEW 204 심사 중
REQUIRE_UPDATE 300 업그레이드 필수
BLOCKED_USER 301 접속 차단으로 등록된 단말기(디바이스 키)로 서비스에 접속한 경우입니다.
TERMINATED_SERVICE 302 서비스 종료
INSPECTING_SERVICE 303 서비스 점검 중
INSPECTING_ALL_SERVICES 304 전체 시스템 점검 중
INTERNAL_SERVER_ERROR 500 내부 서버 오류

Console Guide

1.2 App

Gamebase Console에 등록된 앱 정보입니다.

  • accessInfo
    • serverAddress: 서버 주소
    • csInfo: 고객 센터 정보
  • relatedUrls
    • termsUrl: 이용 약관
    • personalInfoCollectionUrl: 개인 정보 동의
    • punishRuleUrl: 이용 정지 규정
    • csUrl : 고객 센터
  • install: 설치 URL
  • idP: 인증 정보

Console Guide

1.3 Maintenance

Gamebase Console에 등록된 점검 정보입니다.

  • url: 점검 페이지 URL
  • timezone: 표준 시간대(timezone)
  • beginDate: 시작 시간
  • endDate: 종료 시간
  • message: 점검 사유

Console Guide

1.4 Notice

Gamebase Console에 등록된 공지 정보입니다.

  • message: 메시지
  • title: 타이틀
  • url: 점검 URL

Console Guide

2. tcProduct

Gamebase와 연계된 TOAST 서비스의 Appkey입니다.

  • gamebase
  • tcLaunching
  • iap
  • push

3. tcIap

TOAST Console에 등록된 IAP 스토어 정보입니다.

  • id: App ID
  • name: App Name
  • storeCode: Store Code

Console Guide

4. tcLaunching

TOAST Launching 콘솔에서 사용자가 입력한 정보입니다

  • 사용자가 입력한 값을 JSON string으로 전달합니다.
  • TOAST Launching 상세 설정은 아래 가이드를 참고하시기 바랍니다.

Console Guide

Get Launching Information

GetLaunchingInformations API를 이용하면 Initialize 이후에도 LaunchingInfo 객체를 얻을 수 있습니다.

API

Supported Platforms UNREAL_IOS UNREAL_ANDROID UNREAL_EDITOR

const FGamebaseLaunchingInfoPtr GetLaunchingInformations() const;

Example

void Sample::GetLaunchingInformations()
{
    auto launchingInformation = IGamebase::Get().GetLaunching().GetLaunchingInformations();
    if (launchingInformation.IsValid() == false)
    {
        UE_LOG(GamebaseTestResults, Display, TEXT("Not found launching info."));
        return;
    }
}

Error Handling

Error Error Code Description
NOT_INITIALIZED 1 Gamebase 초기화돼 있지 않습니다.
NOT_LOGGED_IN 2 로그인이 필요합니다.
INVALID_PARAMETER 3 잘못된 파라미터입니다.
INVALID_JSON_FORMAT 4 JSON 포맷 오류입니다.
USER_PERMISSION 5 권한이 없습니다.
NOT_SUPPORTED 10 지원하지 않는 기능입니다.
  • 전체 오류 코드는 다음 문서를 참고하시기 바랍니다.
TOP