메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

Love2d의 안드로이드 포트는 알파 단계입니다.

차차 개선되어 나가긴 하겠지만 아직 불안정한 부분이 많으며, 일어날 수 있는 오작동과 그로 인한 결과는 일절 책임지지 않습니다.

 

이 문서는 Windows 사용자 기준입니다.

Linux나 Mac을 사용할 정도의 내공이 있으신 분들은 자신의 OS에 무언가가 필요할 경우 구글 등으로 검색해서 지혜를 찾아내는 혜안이 있으실 것이므로 

Windows 사용자 기준으로 문서를 작성합니다. 

 

0. 앞서

Love2d 안드로이드를 빌드하기 위해서는 PC와는 또 다른 개발환경이 필요하다.

PC처럼 그냥 exe 파일이랑 합체! 하면 좋겠지만 안드로이드는 그렇게 되지 않는다.

그래서 소스 코드를 받아서 빌드해야 한다.

안드로이드 개발에 대해 하나도 몰라도 상관없다.(나도 모른다.) 남이 만든거 컴파일만 하면 되는 거니까.

 

그냥 .love 파일을 핸드폰에서 돌리고 싶다면 그냥 최신 버전의 apk 파일을 받아 설치하면 된다.

( https://bitbucket.org/MartinFelis/love-android-sdl2/downloads )

그러나 '나는 내 게임으로 apk를 만들어서 올릴거야!' 라는 야망을 가지신 분들은 게임 이름, 버전 정보, 아이콘 등을 바꿔야 하므로 빌드를 새로 하고

약간의 수정 사항을 거쳐야 한다.

 

1.개발 환경 구축

일단 빌드하기 위한 개발 환경을 구축한다.

그냥 안드로이드 개발환경이라 cocos2d-x 등과 그닥 차이 없다.

만일 이미 상기의 개발환경을 갖추고 있다면 아래의 것들이 설치되어 있는지, 설정이 제대로 되어 있는지 정도만 확인하면 충분하겠지만

그런거 없는 사람들은 따라하면서 개발환경을 구축하자.

 

1-1. Java SDK(JDK) 설치

http://www.oracle.com/technetwork/java/javase/downloads/index.html

여기에서 자기 버전에 맞는거 찾아 다운로드해서 설치하면 된다.

약관에 동의해야 다운로드 받을 수 있고, 그 다음은 다음다음 넥스트 OK의 연속.

 

1-2. Ant 설치

http://ant.apache.org/bindownload.cgi

Current Release of Ant  부분으로 가서(Ctrl+F로 찾으면 됨) .zip archive 를 받아준다.

( http://apache.mirror.cdnetworks.com//ant/binaries/apache-ant-1.9.4-bin.zip )

다운로드받아서 압축파일을 C:\ant 경로에 풀어준다.

당연히 없을테니 만든다.

 

1-3. Android SDK 설치

http://developer.android.com/sdk/index.html

우리는 안드로이드 스튜디오 그런거 필요 없다. 따라서 아래쪽의 SDK Tools Only 부분으로 가서 받는다.  

( http://dl.google.com/android/installer_r24.0.1-windows.exe )

설치 다음다음.

 

1-3-1. Android SDK 패키지 설치

공식 문서에서는 이렇게 설치하라고 한다.

    Android SDK Platform-tools API 19.0.1
    Android SDK Build-Tools API 19.0.1 (or API 19.0.2, it doesn't matter)
    SDK Platform Android 4.4.2 API 19
    ARM EABI v7a System Image API 19
    Google APIs ARM System Image API 19
    Sources for Android SDK API 19
    Android Support Library
    Google USB driver

 

가급적 위의 버전으로 설치하자.

Android SDK Platform-tools 등의 경우 19.0.1 버전이 없을 수 있는데 그럼 그냥 요령껏 19 설치하던지, 최신 버전 설치하던지.

 

1-4. Android NDK 설치

r10 이상의 버전에서는 빌드 오류가 발생하니 r9d 버전을 설치하자.

http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip (64비트 사용자는 이쪽) 

http://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip (32비트 사용자는 이쪽)

자기 OS에 맞는 것 다운받아서 c:\ndk에 압축 해제하자.

 

고생했다. 이제 개발도구 설치는 끝났다.

 

2. 소스코드 다운로드받기

git따위 쓰지 않는다, 나는 야매니까!

다운로드 링크 https://bitbucket.org/MartinFelis/love-android-sdl2/downloads 로 가면 Download repository가 있다. 받아준다.

c:\love_android에 압축을 풀었다.

 

3. 환경변수 설정

윈도우키+Pause를 누르거나 내컴퓨터-우클릭-속성 누른다.

좌측의 고급 시스템 설정을 눌러준다.

고급 탭으로 가서 맨 아래의 환경변수.. 버튼을 누른다.

시스템 변수(S)에서 새로만들기를 눌러준다.

아래의 값들을 추가하자.

 

이름: ANT_HOME

값: C:\ant

 

이름: JAVA_HOME

값: C:\Program Files\Java\jdk1.8.0_25 (JDK 버전이 다르면 경로가 달라질 수 있으니 내가 어디에다 설치했는지 한번 확인해보자.)

 

이름: ANDROID_SDK

값: C:\Program Files\Android\android-sdk (설치 경로가 여기가 맞는지 확인해보자.)

 

이름: ANDROID_HOME

값: ANDROID_SDK랑 똑같음.

 

이름: ANDROID_NDK

값: C:\ndk

 

이름: ANDROID_SWT

값: %ANDROID_SDK%\tools\lib\x86 (64비트 사용자는 %ANDROID_SDK%\tools\lib\x86_64 를 입력.)

 

그리고 Path를 선택, 편집 버튼을 누른 뒤 아래의 값을 덧붙인다.

;%ANT_HOME%\bin;%ANDROID_SDK%\tools;%ANDROID_NDK%

 

4. ndk-build 실행

명령 프롬포트를 실행한 뒤 cd c:\love_android 명령을 실행하여 소스를 받아놓은 곳으로 간다.

이후 ndk-build 실행.

멀티코어라면 좀 더 효율적인 작업을 위해 --jobs 명령어를 사용할 수 있다.

ndk-build --jobs 3 식으로. 숫자는 코어수 +1을 의미한다.

듀얼코어라면 코어 2개+1이니까 3이고, 쿼드코어라면 코어 4개+1이니까 5 넣어주면 될 것이다.

싱글코어는 그런거 없다. 그냥 ndk-build.

시간이 좀 걸리고, 기다리면 된다. 

 

5. ant 실행

ant debug 명령어를 실행한다.

모든 것이 성공적이라면 c:\love_android\bin\love_android_sdl2-debug.apk 가 생겼을 것이다.

빌드 성공!

 

만약 아이콘을 바꾸거나 AndroidManifest.xml을 수정하게 된다면 위의 과정을 모두 거칠 필요는 없고

그냥 ant debug만 다시 해주면 된다.

 

구글 Play Store에 게임을 내기 위해서는 이 apk 파일에 서명을 해야 하는데 (keystore)

이에 대한 내용은 http://blog.naver.com/norubal29a/22020266816 링크를 참조하길 바란다.

 

다음 글에서는 소스를 수정하여 엔진이 아닌 자신의 게임을 apk로 만드는 방법에 대해 다루어 보겠다. 

조회 수 :
575
등록일 :
2014.12.15
00:59:56 (*.209.38.113)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=797992
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜sort 최근 수정일
185 질문 있습니다.. C언어 인거 같은데 [7] 포오ㅏ로 1957   2005-02-24 2008-04-20 17:16
x=0x2F;for(;x>>--x<=x;x--)x<<1; 에서 x=? 이거 답좀.. * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:20)  
184 밑에 포와로님의 질문 답 [4] 대슬 1900   2005-02-24 2008-03-17 04:37
제가 단 맨 처음 댓글, 그리고 흑곰님이 말씀하신 값이 맞습니다. (-2) x = -2 일 때 x>>--x의 값이 x보다 커지면서 for문을 빠져나갑니다. 그리고 for문 다음에 있는 x<<1은 아무 효과도 못 냅니다. 그냥 폼. (효과를 내려고 했으면 x = x<<1처럼 했어야) 그...  
183 흑곰님 질문 [2] 라컨 2015   2005-08-22 2008-03-17 04:37
Dim 출현, 맞춤, 틀림 Private Sub 네모_Click() 맞춤 = 맞춤 + 1 점수 = 점수 + 5 Label2.Caption = "맞춤:" + Str(맞춤) Print Val(맞춤) * Val(점수) End Sub Private Sub Form_Click() 틀림 = 틀림 + 1 Label3.Caption = "틀림:" + Str(틀림) End Sub Priv...  
182 퀴즈소스입니다 허클베리핀님 라컨 2546   2005-08-23 2008-03-17 04:37
Private Sub Form_Click() If 시작 <= 1 Then MsgBox ("이제 왔군 학생") MsgBox ("이번이 시험인건 알고 있겠지?") MsgBox ("문제를 낼테니 잘 풀어라") 문제 = InputBox("흑곰의 이전 닉네임은 무엇이였나?") If 문제 = "답" Then MsgBox ("맞았군") Cls Pri...  
181 비베 질문 [2] 재피디 1888   2005-09-10 2008-03-17 04:37
그 처음에 그냥 창 뜨지않고 모니터 오른쪽 하단에 시계나오는칸에 뜨게 하는법좀. * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:24)  
180 액션알피지 원거리 무기 질문 [8] 아리포 1741   2006-01-18 2008-03-17 04:37
원거리 무기를 가까이에서쏘면 연속으로 발사됩니다 계속 ;; 아주빠르게 이거 어떻게 고침 * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:24)  
179 여러분 질문있어요. 성심성의껏좀 알려주세요 흑흑 [6] 케르메스 2022   2006-02-11 2008-03-17 04:37
sw = 0; for (j=2; j<WWT; j++) { if ((WWT%j) == 0) { sw = 1; } } if(sw ==1) { cout << "WWT는 정수입니다" } if(sw ==0) { cout << "WWT는 정수가 아닙니다" } -------------------------------------------------------------- 이건 변수인 WWT가 정수인...  
178 [질문]알만툴 게임 [1] 허클베리핀 1974   2006-12-28 2008-03-17 04:37
처음 키면 ascll 로고뜨고 eb!회사 로고뜨는 나오는거 그림 어케바꾸나욤?? * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 14:24)  
177 똥똥배의 게임대회 이야기(1) 혼돈 2953   2007-02-06 2008-03-17 04:37
지금부터 제 이야기를 잘 들어 두시는 게 수상의 열쇠가 될지도 모릅니다. 제가 끝판 보스도 아니고, 공지 내놓고 마감일까지 기다리는 것은 지루하니 이런 저런 이야기를 들려 드리도록 하죠. 1. 지금 여러분이 해야 할 일 지금 개학인데 왜 하필 시작하냐는 ...  
176 똥똥배의 게임대회 이야기(2) [2] 혼돈 2816   2007-02-07 2008-03-17 04:37
2. 100KB 공모전의 추억 1회 규칙이 10M로 제한 된 것은 과거 100KB 공모전이 담겨있어서 입니다. 과거 100KB 공모전이라고 있었는데, 그 제한된 용량을 이용해서 다양한 작품이 나왔었죠. 그 중에 우수상을 탔던 것이 '삭제 되었수다'로서 오히려 제한된 용량...  
175 똥똥배의 게임대회 이야기(3) [1] 혼돈 3007   2007-02-08 2011-02-11 12:53
3. 아마추어다운 게임이란 무엇인가? 아마추어는 자유롭습니다. 자신이 원한다면 무엇이든 표현할 수 있습니다. (심하게 비윤리적이라면 문제가 되겟지만) 하지만 프로는 그렇지 못합니다. 일단 상업성 때문에 '돈이 되는' 게임을 만들어야 하고, 수많은 사람...  
174 똥똥배의 게임대회 이야기(4) [1] 혼돈 2881   2007-02-10 2011-02-11 12:52
4. 공모전도 커뮤니케이션 게임을 만들기 전에 먼저 생각해야 하는 것은 게임을 하는 사람들입니다. 그래서 게임회사라면 시장조사가 가장 먼저 해야 할 일입니다. 회사에서 만든 게임을 얼마나 많은 게이머들이 즐길지 알고 예상되는 수익을 계산하고 거기에 ...  
173 스크립트 질문좀 하겠습니다....이벤트에 대한것!! [2] 여유 1859   2007-04-23 2008-03-17 04:37
Class Quick_status < Game_Player 아니면 Class Quick_status < Game_Event 어떤걸로 하는것이 옳은 선택일까요 그리고 이벤트의 X,Y좌표 이벤트의 Screen_x,y좌표(화면 XY좌표) 이벤트의 ID 이벤트의 이름 이것들을 나타낼 수 있는 방법을 알려주세요 예) a...  
172 질문요.C++ [7] 질문자01 2729   2007-05-10 2008-04-03 05:32
도대체 파라미터가 뭔지 모르겠어요.  
171 흥크립트 0.9 새 기능 소개 [3] file 혼돈 2290   2007-10-15 2008-03-17 04:37
 
170 흥크립트 Ver0.9 변수 안의 변수 기능 [2] 혼돈 2208   2007-10-16 2008-03-17 04:37
상당히 고급기능이라 꼭 알 필요는 없지만, 잘 활용하면 배열이나 구조체 비슷하게 활용 가능합니다. 참고로 []를 쓰는 숫자변수와 {}를 쓰는 문자변수는 서로 다른 테이블을 쓰므로 이름이 겹쳐도 상관없습니다. [변수X] 1 [변수[변수X]] 10 {변수} "변수" {...  
169 혼돈형한테 질문 (페인트샾 관련) [2] file 장펭돌 939   2007-11-19 2008-03-17 04:37
 
168 혼돈형에게 질문! [3] 장펭돌 1851   2007-11-28 2008-03-17 04:37
만화를 그릴때, 우선 손으로 그리지 않습니까 그럼 그린뒤에 스캔해서 컴퓨터로 옮긴뒤에 펜으로 그려진 선을 잘 보정해 줘야 채색이 가능할텐데, 어떻게 선을 다시 컴퓨터로 그려주나여 그냥, 노가다로 마우스로 원래 펜으로 그린 선을 따라서 그려주는 겅미?...  
167 질문 2가지+1 [2] file Wonder 1964   2007-11-30 2008-03-17 04:37
 
166 흥크립트로 만든 예제 [1] file 대슬 2051   2007-12-01 2008-03-17 04:37