[Gideros + Tapjoy](1) Simple Gideros app

Keewon Seo
Tapjoy Korea
Published in
4 min readSep 7, 2020

앞으로 몇 개의 글을 통해 Gideros로 만든 프로젝트에 Tapjoy SDK를 연동하여 Tapjoy 서비스를 사용하는 방법에 대해 다루겠습니다.

Gideros는 여러 플랫폼에서 동작하는 게임을 만들 수 있는 개발 환경입니다. Android, iOS, MacOS, tvOS, Windows, HTML5 등을 지원합니다. 유명한 게임중에는 ‘마비노기 듀얼’이 Gideros를 사용한 것으로 알려져 있습니다. 제가 만든 Organic Pop도 Gideros 를 사용합니다. 기본적으로 Lua를 이용하여 게임을만들 수 있는데 Native code도 섞어서 쓸 수 있습니다.

Organic Pop은 이런 게임

Tapjoy는 모바일 광고와 분석을 제공하는 서비스로, 광고는 다시 비디오 광고오퍼월 광고로 나눌 수 있습니다. Tapjoy에서는 iOS, Android, Unity SDK를제공합니다. 공식적인 Gideros Plugin은 없습니다만 iOS, Android SDK를 이용하여 연동하는 것이 가능합니다.

우선 Gideros로 예제를 만들어야 연동을 해볼 수 있으므로 이번 글에서는 Gideros로 간단한 예제를 만드는 것에 대해 다루겠습니다.

참고로 저는 현재 Tapjoy 에서 Offerwall+를 만드는 일을 하고 있습니다만, 앞으로 공유할 글은 회사의 공식 입장과는 관련이 없습니다. 또한 고객문의의 경우 제가 답변 드리지 못할 수 있습니다.

테스트 때문에 수시로 스크린샷을 찍는다. 가장 최근에 찍은 Offerwall+ 스크린샷.

우선 Gideros Mobile 홈페이지로 가서 Gideros Studio를 다운로드하여 설치합니다. 새로운 프로젝트를 만들고, main.lua를 추가합니다. main.lua에 모든 코드를 넣을 수도 있지만 관리가 힘들어지므로 Scene이라는 개념을 도입하겠습니다. Scene은 메인 메뉴, 게임 화면, 설정 등 구분할 수 있는 화면이라고 보면 되겠습니다. Gideros는 기본 Plugin으로 SceneManager를 제공하고 있습니다. Plugins에 SceneManager를 추가하여 이 Plugin을 사용합시다. 이번 예제에는 SceneMain 이라는 하나의 Scene 을 추가하고 그 안에 하나의 타이틀과 세 개의 버튼을 넣었습니다.

우리가 만들 예제
우리가 만들 예제

몇 가지 이해해야 할 것들이 있습니다. 사실 Reference를 다 읽고 시작하면 좋겠지만, 우선 Class 사용법을 알아야 합니다. Lua 자체에는 Class가 없는데 여러 사람들이 각자의 방법으로 Class를 구현하여 사용하고 있습니다. Gideros를 사용하려면 Gideros가 Class를 사용하는 방법에대해 알아야 합니다.

그 다음에 중요한 것은 Sprite입니다. Sprite는 화면에 보이는 구성 요소의 base class 로 트리 형태로 구성됩니다. Button도 Scene도 Sprite입니다.

그럼 이제 SceneMain을 보겠습니다. 버튼을 누를 때마다 우리가 앞으로 만들 Plugin의 함수를 부르게 되어있습니다. ‘Show Offers’를 누르면 오퍼월이 나오게 하고, ‘Show Video’를 하면 비디오 광고가 나오게하고, ‘Send Event’를 누르면 특정한 이벤트를 Tapjoy 서버로 보내 대시보드에서 분석할 수 있도록 하겠습니다.

또한 Plugin이 보내는 이벤트를 받아서 UI로 보여주는 작업이 필요합니다. 사용자가 얻은 보상의 양을 사용자에게 보여주는 것이 가능합니다.

Plugin 코드에 대한 설명도 필요한데요, 이것은 다음에 설명하도록 하겠습니다. 미리 말씀 드리면 Lua로 작성하는 부분과 Android/iOS native code로 작성할 부분이 있습니다.

strict.lua 나 Exclude from Execution에 대해 궁금한 분이 계실 수도 있는데, 물어보시는 분이 있으면 설명하도록 하겠습니다.

모든 코드는 여기에 있습니다 - https://github.com/keewon/abplugin_for_gideros

감사합니다.

--

--

Keewon Seo
Tapjoy Korea

Engineering manager, Software engineer and Game developer