본문 바로가기
Dev.Mobile/Android

[FPL] Cross-platform Game 'Pie noon' Android Build on Windows

by Devkin 2015. 12. 20.

크로스 플랫폼 게임 개발에 특화된 Google FPL(Fun Propulsion Labs)팀의 Project 중 하나인 Pie noon Game. 안드로이드 빌드를 위한 자바 파일을 제외하고 전부 C++로 작성되었으며, 지원 플랫폼 및 사용된 라이브러리는 다음과 같다.


지원 플랫폼

  • Nexus Player (Android TV Device)
  • Android Phones/Tablets
  • Linux
  • OS X
  • Windows

사용 라이브러리

빌드환경 설정

크로스 플랫폼 게임으로 Windows 뿐만 아니라 OS X 및 Linux 에서도 빌드/배포 가능하나 여기서는 Windows 에서 Android 타겟으로 빌드.

개발환경

  • 플랫폼 : Windows 7
    • Visual Studio 2015 Community
    • Android Studio 1.5 SDK v5.1.1 (API 22)
    • Android NDK r10e
    • JDK 1.8.0
  • 타겟 디바이스 : Asus Zenfone5 5.1 Lollipop

설치필요

  • Python 2.7 설치
  • Google Play services SDK 설치
    • Android Studio의 SDK Manager 를 통해 설치
      • Google Repository
      • Google Play services
  • Google Play Games C++ SDK 다운로드
    • 다운로드한 압축 파일을 Pie noon 소스코드 루트의 dependencies/gpg-cpp-sdk 폴더에 압축 해제
  • CMake 설치
    • 빌드 당시 최신버전인 v3.4.0 사용
  • cwebp 다운로드
  • Apache ant 다운로드
    • FPLUtil을 사용하기 위해 필요
    • 빌드 당시 최신버전인 v1.9.6 사용.
    • 적당한 폴더에 압축 해제

환경변수

PATH 환경변수에 추가

  • cwebp 설치된 폴더 ex.) C:\libwep-0.4.4\bin
  • Android SDK 설치된 폴더 ex.) C:\Users\metalkin\AppData\Local\Android\sdk\tools
  • Android NDK 설치된 폴더 ex.) C:\Users\metalkin\AppData\Local\Android\ndk
  • Apache Ant 설치된 폴더 ex.) C:\apache-ant-1.9.6\bin
  • JDK 설치된 폴더 ex.) C:\Program Files\Java\jdk1.8.0_60\bin

안드로이드 빌드

소스코드 다운로드

공식 빌드 가이드 업데이트가 미흡한지 소스 코드 업데이트에 따라 빌드 방법도 조금씩 달라진다. 따라서, 빌드에 현재 최신 릴리즈인 pienoon-1.2.0.zip 소스 코드를 다운로드하여 사용.

빌드 전, 사전 설치필요 항목의 Google Play Games C++ SDK를 다운로드한 소스 코드 루트의 dependencies\gpg-cpp-sdk 폴더에 압축 해제

빌드

Command line 창에서 소스 코드 루트 ex.) ..\pienoon\ 에서 다음 실행

dependencies\fplutil\bin\build_all_android -E dependencies jni\libs

참고로, 빌드 Clean 수행은 다음과 같다.

dependencies\fplutil\bin\build_all_android -E dependencies jni\libs -c

Troubleshooting

Error : No CMAKE_C_COMPILER could be found.

Searching for Visual Studio 13
...
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeList.txt:16 (project):
  No CMAKE_C_COMPILER could be found.
CMake Error at CMakeList.txt:16 (project):
  No CMAKE_CXX_COMPILER could be found.

Visual Studio 2013 이전 버전이 깔려 있다면 상관없지만, CMake 에서 Visual Studio 2015 버전을 탐지 하지 못해 발생. pienoon\jni\build_flatc.bat파일을 보면,

set visual_studio_version_max=13

Visual Studio 2013 부터 찾기 시작한다. 2015 버전 넘버인 14 이상의 값으로 수정

set visual_studio_version_max=15

CMake cache 가 남아 있기 때문에, pienoon\CMakeFiles폴더와 pienoon\CMakeCache.txt파일을 삭제하고 다시 빌드

Error : 'simd4f_dot3_scalar' was not declared in this scope.

mathfu 라이브러리의 simd 지원 dependency인 vectorial라이브러리가 누락되어 발생하는 에러로 소스 코드를 다운로드 하여,

git clone https://github.com/scoopr/vectorial.git

vectorial\include폴더 내의 vectorial 폴더를 복사하고, pienoon\dependencies\mathfu\include 폴더에 붙여넣는다. 다음과 같은 구조


pienoon\dependencies\mathfu\include\mathfu
                                   \vectorial\config.h
                                             \mat4f.h
                                             \...

배포

dependencies\fplutil\bin\build_all_android -E dependencies jni\libs -i -r -S

디바이스가 연결된 상태에서 실행하면, signing-S한 apk를 설치-i하고 실행-r 한다.

반응형

댓글