Naver Game
Korean
Korean
  • Naver Game SDK 소개
  • SDK 적용 전 준비사항
  • 필독★ 카페 플러그 SDK에서 네이버 게임 SDK로 교체하는 경우
  • Integration Guide
    • UNITY
    • Android
    • iOS
    • UNREAL
    • Cocos2d-x
  • Naver Game SDK 개발 FAQ
  • Naver Game SDK 운영/제휴 FAQ
  • Naver Game SDK Release Note
Powered by GitBook
On this page
  • Quick Start
  • 기존 프로젝트에 Navergame SDK 적용하기
  • 1. 플러그인 구성
  • 2. 플러그인 설치
  • 3. 플러그인 적용
  • 안드로이드 프로젝트에 Navergame SDK 적용하기
  • 1. Cocos2d-x와 Android를 연결하는 브릿지 파일(코드)을 추가하기
  • 2. 안드로이드로 빌드하기위한 설정
  • 3. 안드로이드로 빌드하기
  • iOS 프로젝트에 Navergame SDK 적용하기

Was this helpful?

  1. Integration Guide

Cocos2d-x

PreviousUNREALNextNaver Game SDK 개발 FAQ

Last updated 10 months ago

Was this helpful?

Quick Start

최신 버전 다운로드

기존 프로젝트에 Navergame SDK 적용하기

본 가이드는 Cocos2d-x 3.17.2 버전을 기준으로 작성되었습니다.

1. 플러그인 구성

  • 샘플 프로젝트내의 Plugins 폴더에 SDK에 필요한 파일들이 들어있습니다.

  1. ) android : android build에 필요한 파일들이 들어있습니다.

  2. ) ios : ios build에 필요한 파일들이 들어있습니다.

  3. ) navergamesdk : cocos2d-x프로젝트와 android, ios 등 각 플폼에 연결 필요한 파일들이 들어있습니다.

2. 플러그인 설치

  • 귀 사의 Cocos2d-x프로젝트와 SDK 연동을 하기 위해서는 Plugins내의 navergamesdk폴더를 아래와 같이 귀 사의 프로젝트 내의 Classes 폴더내에 복사를 합니다.

  • 만약 귀 사의 프로젝트에서 android 혹은 ios 플래폼 하나만 출시하실 예정이라면 platform 하단의 android 혹 ios 폴더 중에 해당하는 폴더만 남기시고 지우시면 됩니다.

2-1. NaverGameSDK.h

  • 해당 파일 안에는 sdk 연결에 필요한 코드가 작성되어 있습니다.

3. 플러그인 적용

귀 사의 프로젝트내에서 sdk를 사용하려는 곳에 헤더파일을 include시킵니다. (샘플프로젝트에서는 HelloWorldScene.h에 적용하였습니다)

#include "NaverGameSDK.h"
  • NaverGameSDK.h를 찾지못한다고 나온다면 rootProject/CmakeLists.txt에 헤더파일을 하단 이미지와 같이 추가시켜줘야합니다.

3-1. SDK 초기화

SDK를 초기화할 때는 다음과 같은 초기화 옵션을 설정하고 init() 메서드를 호출합니다.

  • LoungeId: 공식라운지를 신청하고 받은 LoungeId

nng::NaverGameSDK::init("UKvNABLDsyEJusJGsXL2", "rK4suc_Qd0", "naver_game_4developer");

3-2. SDK 이벤트 리스너 등록

SDK에서 보내는 각종 이벤트를 받기위해서는 리스너를 등록하여야합니다.

//리스너는 NaverGameSDK.h 에 선언되어있습니다.
nng::NaverGameSDK::setSdkListener(this);

3-3. SDK 지원 Funtion 살펴보기

  1. 홈 배너 불러오기

    nng::NaverGameSDK::startHomeBanner();
  2. 점검 배너 불러오기

    nng::NaverGameSDK::startSorryBanner();
  3. 특정 게시판 불러오기

    nng::NaverGameSDK::startBoard(boardId);
  4. 특정 글 불러오기

    등록된 글의 번호로 바로 실행하는 메서드 입니다. 만약 예약노출을 통해서 등록한 예약 게시글의 경우에는 예약글의 번호를 FeedId 에 입력하고 IsTempFeedId 를 True 로 입력해야 합니다.

    nng::NaverGameSDK::startFeed(feedId, isTempFeedId);
  5. sdk 종료시키기

    nng::NaverGameSDK::stopSdk
  6. 국가코드 불러오기

    모바일 기기의 countryCode를 얻어옵니다. 반드시 init() 메서드가 호출된 이후에 호출해야 정상적인 값을 얻어올 수 있습니다.

    nng::NaverGameSDK::getCountryCode();

    국가코드

    국가

    CN

    중국

    JP

    일본

    KR

    대한민국

    TH

    태국

    US

    미국

안드로이드 프로젝트에 Navergame SDK 적용하기

아래는 샘플프로젝트의 안드로이드 빌드 환경입니다.참고하여 주시기 바랍니다.

  • Cocos2d-x 3.17.2

  • Android Studio 4.2

  • Gradle 4.9 (proj.android/gradle/wrapper/gradle-wrapper.properties)

  • Ndk 16.1.4479499

  • Cmake 3.10.2.4988404 (with Ninja 1.10.2)

1. Cocos2d-x와 Android를 연결하는 브릿지 파일(코드)을 추가하기

샘플프로젝트내의 Plugins 폴더입니다

Plugins폴더내의 android 폴더 내용입니다.

  1. ) com... 폴더 안 끝에 android에서 cocos프로젝트와 브릿지역할을하는 NNGSdk.java 파일이 들어있습니다.

  2. ) navergame-sdk-gradle-x.x.x.aar 은 Navergame sdk 라이브러리 입니다.

샘플프로젝트 디렉토리 구조입니다.

1-1. navergame-sdk-gradle-x.x.x.aar

Naver Game SDK 라이브러리입니다.

  • rootProject/proj.android/app/libs 폴더에 붙여넣어줍니다. libs폴더가없으면 생성해주세요.

1-2. NNGSdk.java

Android에서 Cocos2d-x프로젝트와 SDK를 연결시켜주는 브릿지코드가 작성된 파일입니다.

  • rootProject/proj.android/app/src 폴더에 붙여넣어줍니다. com..으로시작되는 폴더 전체를 붙여넣어주세요.

1-3. NaverGameSDK.cpp

Cocos2d-x에서 Android프로젝트와 연결시켜주는 브릿지코드가 작성된 파일입니다.

  • rootProject/Classes/navergamesdk/platform/android/NaverGameSDK.cpp 파일이 있나 확인하고 없으면 Plugins폴더에서 찾아 붙여넣어주세요.

  • cocos2d-x 버전에 따라 JniHelper가 다른이름으로 작성되어 있을 수 있으니 버전이 다를경우 확인해보세요

#include "NaverGameSDK.h"
#include "platform/android/jni/JniHelper.h"

using namespace cocos2d;

namespace nng {
    static bool getStaticMethod(JniMethodInfo &methodinfo, const char *methodName, const char *paramCode) {
        static const char* kCafeSdkClass = "com/navercorp/nng/cocos2dx/sample/NNGSdk";
        return JniHelper::getStaticMethodInfo(methodinfo, kCafeSdkClass, methodName, paramCode);
    }

    static NaverGameSDKListener* sdkListener = nullptr;

    void NaverGameSDK::setSdkListener(NaverGameSDKListener* listener) {
        sdkListener = listener;
    }

    void NaverGameSDK::init(std::string clientId, std::string clientSecret, std::string loungeId) {
        JniMethodInfo t;
        if (getStaticMethod(t, "init","(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V")) {
            jstring _clientId = t.env->NewStringUTF(clientId.c_str());
            jstring _clientSecret = t.env->NewStringUTF(clientSecret.c_str());
            jstring _loungeId = t.env->NewStringUTF(loungeId.c_str());

            t.env->CallStaticVoidMethod(t.classID, t.methodID, _clientId, _clientSecret, _loungeId);

            t.env->DeleteLocalRef(_clientId);
            t.env->DeleteLocalRef(_clientSecret);
            t.env->DeleteLocalRef(_loungeId);
            t.env->DeleteLocalRef(t.classID);
        }
    }

    .
    .
    .

    extern "C" {
        JNIEXPORT void JNICALL
        Java_com_navercorp_nng_cocos2dx_sample_NNGSdk_onSdkStarted(JNIEnv* env, jclass thiz) {
            if (sdkListener == nullptr) return;
            sdkListener->onSdkStarted();
        }

        .
        .
        .
    }
}   /* namespace nng */
  • kCafeSdkClass = "com/navercorp/nng/cocos2dx/sample/NNGSdk";

    • NNGSdk.java 파일의 위치경로입니다. 만약 NNGSdk.java의 위치경로를 변경하였다면 해당 위치에 맞게 수정하여주십시오.

  • Java_com_navercorp_nng_cocos2dx_sample_NNGSdk_Funtion네임

    • NNGSDK.java 파일의 위치경로입니다. 만약 NNGSdk.java의 위치경로를 변경하였다면 해당 위치에 맞게 수정하여주십시오.

2. 안드로이드로 빌드하기위한 설정

1-1. AndroidManifest.xml

  • rootProject/proj.android/app/AndroidManifest.xml 파일 안에 SDK에서 필요한 권한 추가하여줍니다.

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

1-2. build.gradle

  • rootProject/proj.android/app/build.gradle 파일 안에 SDK와 SDK에서 필요한 라이브러를 추가하여줍니다

dependencies {
    implementation project(':libcocos2dx')
    /**
     * Navergame sdk와 필요한 libraries
     */
     
    implementation files('libs/navergame-sdk-gradle-x.x.x.aar')
    implementation "com.naver.nid:naveridlogin-android-sdk:4.2.6" // naveridlogin
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.7.20"      // Kotlin
    implementation "androidx.viewpager2:viewpager2:1.0.0"           // Viewpager2
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"   //swiperefreshlayout
    implementation "com.github.bumptech.glide:glide:3.7.0"          // Glide
    implementation "com.squareup.retrofit2:retrofit:2.9.0"          // Retrofit2
    implementation "com.squareup.retrofit2:converter-gson:2.9.0"
}

1-3. ndk 및 cmake 설치

  • Android Studio 이용방법

    • Android Studio -> Preferences -> 검색에 sdk 검색 후 sdk tools 탭에서 ndk와 cmake를 다운받아줍니다. (Show Package Details 체크하세요.)

1-4. ndk, cmake 적용

  • rootProject/proj.android/local.properties파일에 ndk, cmake 설치파일경로를 입력하여 줍니다.

3. 안드로이드로 빌드하기

Cocos2d-x프로젝트 안드로이드 빌드 방법은 2가지 입니다.

  • cmake

  • ndk

정확한 네이밍은 cocos2d-x버전에 따라 다를수 있으니 확인바랍니다. 3.17.2버전 기준으로는 build.gradle 파일안에서 확인 할 수 있습니다.

3-0. 빌드 타입 적용 방법

rootProject/proj.android/gradle.properties 파일 내의 PROP_BUILD_TYPE 프로퍼티에서 정할 수 있습니다.

  • cmake로 빌드하시려면 PROP_BUILD_TYPE=cmake 로 설정하시면 됩니다.

3-1. CMAKE로 빌드하기

  • rootProject/proj.android/gradle.properties 내 PROP_BUILD_TYPE=cmake 확인합니다.

  • rootProject/proj.andorid/local.properties에 cmake 및 ndk설치파일패스가 잘 입력되어있는지 확인합니다.

  • cmake 빌드를 위해서는 Ninja가 필요합니다. ninja설치를 확인합니다.

  • 빌드버튼 클릭!

3-2. NDK로 빌드하기

  • rootProject/proj.android/gradle.properties 내 PROP_BUILD_TYPE=ndk-build 확인합니다.

  • rootProject/proj.android/app/jni/Android.mk에 SDK에 필요한 파일 및 폴더경로를 추가해줍니다.

  • rootProject/proj.andorid/local.properties에 ndk설치파일패스가 잘 입력되어있는지 확인합니다.

  • 빌드버튼 클릭!

iOS 프로젝트에 Navergame SDK 적용하기

네이버 게임 iOS SDK는 iOS 12.0 버전부터 지원합니다.

네이버 게임 SDK를 사용하려면 XCode에서 다음과 같이 개발 환경을 설정합니다.

  • TARGETS 항목 중 실행될 앱을 선택합니다.

  • Build Setting 탭을 선택하고 Linking 항목에서 Other Linker Flags를 찾습니다.

    • Basic 또는 Customized모드 인 경우 Other Linker Flag가 보이지 않는 경우도 있습니다.이 경우 All 모드를 선택합니다.

    • 우상단에 위치한 검색창에 Other Linker Flag를 입력하면 쉽게 찾을 수 있습니다.

  • Other Linker Flags에 -ObjC 옵션과 -lc++ 옵션을 추가합니다.

  • Info.plist에 아래의 사용자 권한 획득 옵션을 추가합니다.

    • Privacy - Camera Usage Description

    • Privacy - Photo Library Usage Description

  • TARGETS 항목 중 실행될 앱을 선택하고 Info탭의 URL Types 항목에 Identifier 값과 URL Schemes값을 입력합니다.

  • Identifier 값은 해당 TARGET의 General 탭에서 확인할 수 있습니다.

ClientId: 에 애플리케이션을 등록하고 받은 클라이언트 아이

ClientSecret: 에 애플리케이션을 등록하고 받은 클라이언트 시크릿

countryCode는 두 개의 알파벳으로 이루어진 국가코드()입니다. 이를 활용하면 코드 내에서 국가별 분기처리가 가능합니다.주요 국가코드는 다음과 같으며 이외의 국가 코드는 를 참고하십시오.

rootProject/CmakeList.txt에

URL Schemes 값에는 에 애플리케이션을 등록할 때 입력한 값을 입력하면 됩니다.

네이버 아이디로 로그인 개발자 센터
네이버 아이디로 로그인 개발자 센터
ISO 3166-1 alpha-2
링크
SDK에 필요한 파일 및 폴더경로가 잘 추가가 되어있는지 확인합니다.
네이버 아이디로 로그인 개발자 센터
URL Scheme
Release 1.3.8 · naver/navergame-sdk-cocos2dxGitHub
헤더파일과 cpp파일을 등록하여줍니다.
navergamesdk 폴더를 등록하여줍니다.
cocos-3.17.2버전 기준으로 ndk-16.1.4479499, cmake-3.10.2.4988404 버전을 사용하였습니다.
3.17.2버전 기준으로 'ndk-build' 와 'cmake' 입니다.
Logo