오랜만에 글 올림

갤 보니까 요즘 다들 개발도 안되고 하는거 같은데 다같이 힘내보자


휴가철이라서 컴터를 한동안 안하기도 하고

이번에 진행한 내용은 빨리빨리 진행 하고싶어도 그렇게 안되더라고

암튼 2주정도 진행했던 개발일지 시작함.


내 목표는 일단 모바일로 똥겜이든 뭐든 출시해보는거임.


이전글도 혹시 보고싶음 봐바


1편 - 모바일 UI 만들기

https://gall.dcinside.com/mgallery/board/view/?id=godot&no=482&page=1


2편 - 간단한 캐주얼게임 기획

https://gall.dcinside.com/mgallery/board/view/?id=godot&no=494&page=1">https://gall.dcinside.com/mgallery/board/view/?id=godot&no=494&page=1



근데 나는 갓겜을 만들어보고 싶긴한데

지금은 돈벌어볼 구석 만들어 보려고 하는게 더 크기도 하고

갓겜 만들기는 지금 뭐 걷지도 못하는데 뛰는것도 아니고 날기부터 하려는 꼴이잖아


아주 옛날옛적 학교다닐때 과제로 유니티 게임만드는거 한학기 했었는데,

그땐 게임 로직조금 짜고 룩에만 몰빵하다가 (룩에만 몰빵해서 점수는 잘나옴)


고도엔진으로 모바일게임 제작 파이프라인을 갖추는 것이 더 우선이라 생각해서


- 도전과제, 리더보드(랭킹) 넣기

- 구글플레이게임서비스

- iOS 게임센터

- 인앱 광고

- 구글 애드몹

- 인앱 결제

- 유저 사용 분석

- 파이어베이스 애널리틱스

- 버전 체크 및 간단한 앱 수정

- 파이어베이스 리모트컨피그

- 클라우드 저장

- 파이어베이스 구글 드라이브 연동?



이걸 해보려고 시작함.

유니티는 이런거 연동 쉽게 할 수 있게 잘 되있는거 같은데

고도는 그런거 없다

라고 생각했는데 또 의외로 잘 되있더라고


사실 개발일지라기보다는 좋은 툴들 소개하는 시간이 될 것 같음


NativeLib 소개

안드로이드, iOS 플러그인들 관리해주는 툴이라고 보면 됌

파이썬 기반으로 한 패키지매니져임


https://github.com/DrMoriarty/nativelib">https://github.com/DrMoriarty/nativelib


viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad886f56ff4ae26bd86c0e273337e02fe58cb3f2a945aa16779

설치방법은 고도엔진 가운데 상단에 있는 AssetLib으로 가서

native 라고 검색하면 나옴 이거 설치하면 됌

viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad8869806f4aa27b78ac710df144122227d4694eb165c7fc2cb45

좌상단 메뉴 Project > Project Setting 선택 후 Plugins 탭 이동해서

NativeLib이랑 NativeLib export plugin 두개 활성화 해주고 나면


viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad886f56ff4ae26bd86c0e273332755f85a9d6e77c25aa16779


아까 그 AssetLib 옆에 NativeLib이라고 생기고

그거 들어가면 이제 안드로이드 플러그인 좋은거 쉽게 깔수 있게 됌


파이썬 기반으로 돌아가는데

윈도우 쓰는 고린이들은 파이썬 없을 가능성 크니까

유튜브가서 파이썬 까는법 보고 파이썬 3버전 깔아써라

저거 만든 사람도 파이썬3에서 개발하고 2.7 호환 되게는 한거 같은데

잘 안되면 걍 파이썬3 쓰라고 함

(그리고 윈도우에선 반드시 3을 쓰라고 하고는 있음)

근데 나는 그냥 2.7씀





1. 파이어베이스 이용하기

파이어베이스가 뭐냐면 모바일앱 개발을 도와주는 것들이 있는거임

나는 그중에 앱 사용자 분석이나, 앱스토어에 업데이트 하지 않아도, 간단한 앱데이트를 도와주는 기능을 사용하려고

파이어베이스를 사용하기로 함


파이어베이스를 설명하자면 어려운데 아래 문장이 그나마 제일 괜찮은듯

“파이어베이스는 구글(GOOGLE)이 소유하고 있는 모바일 애플리케이션 개발 플랫폼으로, 이걸 활용하면 여러분도 앱을 개발하고, 개선하고, 더욱 키워나갈 수도 있습니다.”

이라고 소개하는데 암튼 그러함

무슨 SaaS니 백엔드니 클라우드니 하면서 설명하는거는 나도 이해 못하겠음.

그냥 있으니까 쓰는거임


1.1 firebase remote config

이거는 공지사항이나, 최신버전 업데이트 하게 하려고 써봄

그렇게 하려면 원래는 내가 서버 구축해서 서버에다가 json파일 같은거 하나 올려놓고

그거 가져와서 쓰고 그래야 했는데, 아래 그림처럼 웹에서 간단하게 관리할 수 있게 해줌

viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad886f56ff4ae26bd86c0e273332659fa5fcc382e925aa16779

그러면 고도엔진에서 스크립트 짜서 이거 정보 받아와서 내가 사용자들이 썼으면 하는 최신버전을 명시해주면

그 버전보다 아랫버전 쓰고 있는 사람들에게 업데이트 하라고 알림 띄우거나 할 수 있음.


이제 그것을 어캐 하느냐


NativeLib 들어가서 밑에 좀 스크롤 내리다보면

viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad886f56ff4ae26bd86c0e273332703f20c9c3f7a935aa16779

firebase remote config라고 있음

이거 설치하면 그냥 냅다 res://scripts 폴더 안에 오토로드용 스크립트 생기고

오토로드에 로드 되어있고 안드로이드 플러그인 폴더 안에 플러그인 싹 설치되어있음

안드로이드 manifest에도 자동으로 필요한 것들 추가되고 해서 아주 편함.


viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad8869806f4aa27b78ac710df144170767940c2be135c7fc2cb45

그러면 안드로이드 익스포트 세팅에서 커스텀빌드 사용 체크하고, 플러그인들 켜주기만 하면

사용 준비 완료임


아 그전에 파이어베이스 콘솔에 설정가서 google-services.json 받아서

안드로이드 빌드폴더에 넣어줘야함.


viewimage.php?id=2ab2d429f1&no=24b0d769e1d32ca73ceb86fa11d02831eebc6c37c2fa034916facb03222c05ed0edb188fe6aad886f56ff4ae26bd86c0e273337d04a80bc96978c05aa16779

이러고나면

게임 실행하면 자동으로 remote_config 객체가 autoload 되서


if !remote_config.loaded():

return

var latest_version_raw = remote_config.get_string('latest_version')

var latest_version: Dictionary = parse_json(latest_version_raw)


요런식으로 사용하면 댐


물론 시그널도 있음

remote_config.connect("loaded", self, "_on_remote_config_loaded")


func _on_remote_config_loaded():

pass


근데 리모트 콘피그 서비스 자체가 파이어베이스 콘솔에서 값 바꿔준다고

사용자 기기에서 바로바로 갱신되는게 아니고 캐시로 저장해뒀다가 12시간마다 갱신되는거기 때문에

테스트하면서 왜 콘솔에서 값 바꿨는데 적용안되냐고 삽질할 수 도 있는데,

콘솔에서 값 바꾸고 다음날 해보면 됌.

기본 캐시시간이 12시간인 이유는 서버 부하 및 사용자 데이터 사용량을 줄이기 위함이라고 함.

테스트하기 빡세긴 한데 굳이 더 짧게 할 필요는 없을 것 같긴 함

아직 플러그인 코드가 캐시시간 바꿔주는게 없어서

직접 개발해서 오픈소스 기여하거나 하면 될듯


글이 생각보다 길어져서 일단 오늘은 여기까지만 쓰고

반응 괜찮으면 더 써봄