본문 바로가기

프로그래밍/libGDX 엔진

libGDX #1 설치하기 도전

libgdx에 대해 간략하게 튜토리얼을 해보며, 공부를 해보았다. 게임 제작은 경험이 없는지라 많이 해매겠지만 일단, 몸으로 직접 부딪치며 해보면서 모르는걸 배우는게 가장 빠를것 같아 무작정 게임을 만들어 보기로 했다. 일주일간 진전없이 헤매기도 할 것이고, 경력있는 분들이 보기에는 연못가 개구리 장난치는것 마냥 보일지도 모르겠지만 중요한건, 결국 난 libgdx를 사용하여 게임을 완성할 것이다. 이것이 가장 중요한 것이라고 생각한다. 그럼, 시작해보자!


먼저, libgdx를 모르는분들은 제가 앞서 포스팅한 libgdx 소개글을 보기를 바란다.



libgdx의 기본 설치법은 또 다른 포스팅에서 소개한것처럼 수동으로 하는 방법이 있으나 이제는  setup-ui를 통해서 진행한다. 사실 한 번 수동으로 해보고 포스팅까지 해보니 더 할 이유는 못느끼겠고, 기본적으로 이클립에서 라이브러리 등록하는법을 알고 있고, 안드로이드 프로젝트의 asset 폴더를 desktop 프로젝트가 참조하는 형식으로 이루어져 서로 동기화가 된다는 사실정도만 이해하고 있으면 큰 문제는 없다. 다만, 이클립스에 익숙하지 못하거나 직접 수동으로 설치하고 싶은분들은 아래 글을 참조하면 된다.



이게 사실 시리즈로 #2까지 현재 올라오고, #3을 쓰던중에 잠시 중단하고 있는데, 이유가 여러가지 있다. 첫 번째는 양이 많아서 영어 번역이 힘들다는 점이다. 프로그래밍도 접한지 얼마 안되었고, 영어번역도 이번이 처음이라 여러모로 힘들다. 읽다보면 번역기 돌린거마냥 어색한 말투다. 근데, 번역기가 아니라 직접 번역했는데 저렇다는게 함정이다. 두 번째는, 사실 이게 가장 큰 이유인데 저 튜토리얼 쓴 외국 프로그래머분이 libgdx 엔진 개발자중 하나인데 이걸 쓸 당시 버전이 2년전 버전이라 지금과 많이 상이하다는거다. 튜토리얼을 끝내고 마지막에 0.96버전으로 리팩토링한 부분을 소개하는 포스팅을 썻긴했지만 코드만 나열되어있을뿐 자세한 설명은 없다. 이걸 이전버전의 튜토리얼을 보고, 새로운 버전으로 리팩토링해서 다시 글을 재구성하느니 그냥 내가 혼자 튜토리얼을 만들어서 쓰는게 낫다. 번역하는 시간이 더 든다. 여러가지 이유로 위의 libGDX 튜토리얼 번역작업은 2편에서 끝이 나게 되었고, 직접 스스로 공부한 내용과 진행사항, 에로사항을 여기에 쓰게 된 것이다.


자, 그럼 libGDX를 다운받아보자.

libGDX의 공식 홈페이지에서 다운로드로 들어가면, 릴리즈 빌드와 나이틀리 빌드가 나온다. 릴리즈 버전이 늘상 생각하는 최신버전이고 나이틀리 버전은 어제밤까지 나온 버전을 Git허브에서 바로 다운받는 방식이다. 전 나이틀리 버전을 다운받았지만, 메소드명이 미묘하게 다르거나 하는일이 발생할 수 있으므로 릴리즈 버전을 받도록 합시다. 이 글을 쓰는 지금 최신 릴리즈 버전은 0.99버전이다. 이거 다 쓰고나니까 1.0 버전하면서 대폭적인 변화 생기고 내 글이 휴지통으로 들어가는 일은 없었으면 한다.


다운받은 파일을 열어보면 아래 그림처럼 목록이 나올 것이다. gdx-setup-ui.jar를 더블 클릭합시다.

아래와 같은 창이 뜰 꺼에요. Create를 눌러주세요.

아래와 같이 설치정보를 입력하라고 나오는데, 1번은 프로젝트명, 패키지명, 게임클래스명이다. 3번에 미리보기가 나오니까 참고해서 알아서 짓도록 합시다. 2번에는 다운받았던 libgdx zip파일을 넣어주어야하는데 저는 이미 zip파일을 다운받아논게 있기떄문에 노랑색으로 칠해진 폴더 버튼을 누르고 zip파일을 넣어주었습니다. zip파일 없는분은 노랑 폴더 옆에 다운로드 버튼 누르면 지가 알아서 넣고 셋팅까지 해줍니다. 그 후, Open the generation screen 버튼을 누르면, 1번의 Destination에서 설정한 위치로 프로젝트 폴더가 3번 미리보기 형식으로 생성됩니다. 

이제 생성된 폴더들을 이클립스에서 import 합시다. 이 때, 이클립스는 adt(안드로이드 이클립스)를 쓰시거나 이클립스에서 adt플러그인 설치 + 안드로이드 sdk설치를 하시거나 둘 중 하나 미리 설치가 되어야합니다. 전 후자로 하였습니다. import를 하였으면 아래와 같이 이클립스 패키지 탐험가에 나오게 됩니다.

저 3개의 파일이 중요합니다. desktop의 Main 파일은 데스크탑 런쳐이며, android의 MainActivity 파일은 안드로이드 런쳐입니다. 게임 로직은 pug-game 프로젝트의 패키지에서 구현하게 됩니다. 처음 생성하게되면, 현재버전은 libgdx버전정보를 담은 이미지파일을 띄워주게 되어있는데 필요없습니다. PugGame가서 ctrl+a 누르고 delete키 눌러서 싹 지워주세요. 우리는 Game을 만들꺼니까 Game 클래스를 상속받은 녀석으로 새로 시작할껍니다.

package com.dpug.puggame;

import com.badlogic.gdx.Game;

public class PugGame extends Game {

	@Override
	public void create() {
		// TODO Auto-generated method stub

	}
}
또한, 우리는 추후 Opengl을 사용하게 될 수도 있기에 desktop과 android 프로젝트로 가서 Main.java와 MainActivity.java의 소스를 조금 수정해줍니다.

cfg.useGL20 = false; 가 기본값인데, 이걸 cfg.useGL20 = true; 로 두 파일 전부 바꿔주시면 됩니다.

이제 Main.java에서 에프 11을 눌러 실행하면, 검은색 화면이 나옵니다. 정상입니다. 안드로이드에서 테스트하고 싶으시면, MainActivity에서 실행하시면 됩니다. 안드로이드 에뮬레이터가 아닌 안드로이드 연결하실때 제대로 연결이 안되시는분은 제가 포스팅한 안드로이드와 이클립스 연결 방법 포스팅을 참고하세요.



이로써, libGDX의 설치가 끝났습니다. 질문은 댓글로 부탁드려요.