'코딩하고'에 해당되는 글 53건

이번 포스트는, 지난 2편에서 이야기 했던 cocos2d를 처음 접하는 당혹감에 대한 내용이다.
내가 당혹감이라고 표현하는 이유는, 이전에 까지 접해왔던 여러 언어들 C/C++, Java, PHP, ....여러 언어들에 너무 익숙해져있었던 나머지,
Objective C 언어를 너무 쉽게 생각했다.

"어차피 C언어니까, 별다를게 있겠어?" 하고 쉽게 생각했는데, 정말 별다른게 많았다.  

생전 처음 보는 생소한 문법, 물론 자바와 유사한 점이 있긴하지만, 확연히 다르다.
물론 C언어의 문법을 약간 따르고 있을뿐, 확연히 다르다.

거기에다가, 나는 전혀Objective C 언어를 할줄 몰랐다. 엎친데 덮친격으로 cocos2d라는 것도 생전 처음 써봤다.

소프트웨어 개발자로 월급 받으며 먹고 살고 있는것이 벌써 7년이고, 전공도 컴퓨터 공학이었던 나에게는 이런 생소하고 당혹스러운 경험은 무서웠다.

대략 1주일 가량 이리 저리 앉아서, 이것 해보고, 저것 해보고 나니, Objective C언어는 별무리 없이 쓸수 있었다. 물로 내가 꼭 필요한 부분에 한해서이다. cocos2d는 매뉴얼 보면서 하나씩 구현해봤다.

그리하여 나온게임이 아래 게임이다.

http://itunes.apple.com/us/app/blue-ocean/id430842838?l=ko&ls=1&mt=8


게임이름도 거창하게 "Blue Ocean" 푸른 바다, 사실 이때 내 마음이 저 맑디 맑은 망망대해에 점하나를 똑 찍어놓은듯한 그런 느낌이었고, 이를 시작으로 많은 게임을 만들어보자는 생각에 작명하게 된것이다.

나중에 차근 차근 그 과정을 써나가면서, 주요 소스 코드들과, 이미지들을 사용한 방법, 레벨을 구성할때 했던 고민들, 맵을 만들때 데이터와 코드를 분리하기 위해 했던 많은 고민들, 로딩을 자연스럽게 하기 위해서 했던 고민들, 여러 고민들... 정말 고민들이 많았다.

그 고민들의 출처는 아마, 무지로부터 왔을것이다. 해본적이 없으니까.!!!!

여러분중에 누구라도, 처음에 뭔가를 만들려고 한다면, 익숙하지 않은 이런것들에 대해서 당혹감을 당연히 가질수 있다. 그런데 아무런 걱정할 필요 없다. 필자처럼, 생전 처음 보는 도구들을 이용해서 하루 2~3시간의 작업으로 6개월만에 이런 게임도 하나 만들어낼수 있었으니 말이다. 여러분은 나보다 훨씬 더 재밌고 좋은 게임을 만들 가능성이 높다. 

자, 지금부터 1주일간이 시간이 주어진다면, 당장 지나주에 설치해둔 xcode를 열고 아래와 같이 한번 따라 해보자. 다음주가 되면, 그냥 클릭 몇번하는게 아주 자연스럽게 될것이다.(물론 나는 중간에 수도없이 프로젝트를 만들었다, 없애고, 만들었다 없애고 하는 과정이 있었다. 왜냐면, 프로젝트를 수작업으로 라이브러리 추가하고 따로 빌드하는 법을 그 당시에는 몰랐기 때문이다. 지금도 사실 그렇게 할필요는 없다.)


cocos2d용 프로젝트 만들기.(동영상으로 모든 설명을 요약)


사실, 프로젝트 만들고 하는 과정을 하나씩 캡쳐하고 설명하고 하는것이 더 좋을수 있으나, 개인적으로 동영상 하나 보면서 따라하는 것 만큼 쉬운게 없었다. 그래서, 동영상 수정이나 그런걸 전혀 할줄 모르기때문에, 퀵타임의 화면기록을 떠서 위와 같이 올린다.

실행해보면, 정말 "세상아 안녕!!!" 하는 것이 끝이다. 너무 허탈하지만, 그게 시작이다.

다음 포스트에서는 Hello World의 소스를 약간 분석해보면서, 정말 핵심적으로 우리가 나중에 손대야 할만한곳들에 대해서면 이야기 해보도록 하자.
사실 나도 아직 cocos2d템플릿으로 만들어놓고, 내가 추가한 부분은 많아도, 원래걸 수정한 부분은 몇군데 안된다. 그만큼 사용하기 좋게 만들어둔것이라고 생각한다.


이 포스트들은 순전히 개인적인 기록을 목적으로, 정리하는데 의의를 두고 글을 쓰고 있습니다.
질문하실 부분이 있거나, 지적하실 부분이 있다면 댓글로 남겨주세요.
 

'코딩하고 > iOS' 카테고리의 다른 글

iOS용 게임 개발기 -4.1-  (0) 2011.08.02
iOS용 게임 개발기 -4-  (0) 2011.08.01
iOS용 게임 개발기 -3.1-  (0) 2011.07.11
iOS용 게임 개발기 -2-  (0) 2011.07.09
iOS용 게임 개발기 -1-  (0) 2011.07.08
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,
2편에서는 지난 1편에서 약속한대로, 개발환경의 설치와 게임 엔진중에 하나인 cocos2d가 무엇인지, 물리엔진중에 하나인 box2d가 무엇인지 알아보고 그 설치방법에 대해서 이야기 하겠다.

일단 iOS용 프로그램을 개발하려면,iOS SDK를 설치해야 하고, Xcode라고 하는 개발툴을 설치해야 한다.
Xcode는 얼마전까지는 무료였으나. 4로 업데이트 되면서 부터 유료 개발자 프로그램에 등록한 사람에 한하여 무료 다운로드 가능하도록 되어 있다.
무료로 구할수 있는 방법이 있을것 같으나, 이 부분은 구글이라던지 다른 경로를 통해서 알아보는 것이 더 빠를것이다.

xcode가 우선 무엇인가?
지금 이글을  읽고 있는 분이 이전에 개발을 한번도 하지 않으신 분이였다면, 다르게 설명을 해야 하나, 개발을 한번이라도 해보고 윈도우즈또는도스에서 c언어를 통해서 무엇인가 프로그래밍이라는 것을 해본적이 있는 분께는 아주 쉽게 설명할수 있다.
윈도우즈 개발하시던 분이라면,Visual Studio 와 같은 개발툴을 한번 정도는 접해보셨을것 이고, 자바 개발자라면 eclipse와 같은 개발환경을 한번은 접해보셨을 것이다.

그렇다,!!! xcode는 Mac용 프로그램을 쉽게 개발할수 있게 도와주는 IDE중에 하나이다. 굉장히 강력하고 여러 편리한 기능이 많이 제공되고 있으며, 이전까지 무료였다는게 믿어 지지 않을 정도로 그 완성도가 높은 개발 툴이다.


 
위 캡쳐 화면은 나의 개발환경을 참고용으로 올려둔 것이다. 개발하시던 분들은 아!! 뭐 이거구나. 하고 바로 사용가능하다.

만약 개발자가 아니신분들은 아이폰용 프로그래밍을 쉽게 해줄수 있도록 도와주는 프로그램 정도로 이해하고 넘어가도 무방하다. 나는 비록 개발자이지만 리눅스 또는 도스에 익숙한 커맨드 라인(메모장 같은 걸로 편집해서 컴파일명령을 내리는 )에 익숙한 개발자여서 통합 개발환경에 익숙하지 않았다. 그런데 한번 두번 쓰면 자연스럽게 손에 익는 그런 도구라서 따로 공부할 필요도 없었다, 사용하다 모르는 부분이 있으면 여기에 댓글을 남겨주면, 내가 직접 찾아서라도 답변을 남기도록 하겠다.

그러면, 이 xcode를 어디서 다운받는가?
바로 애플 개발자 센터이다. http://developer.apple.com/xcode/index.php 여기로 가보면, 친절한 설명과 다운 받으려면 유료회원으로 가입해야 된다는 설명이 나온다. 좌절하지 말고 구글등을 통해서 여러 경로를 알아보도록 하자. 물로 나는 유료회원으로 가입했기 때문에, 여기서 다운로드 받았다.

여기서 유료회원과 무료회원의 차이는 궁극적으로, 무료회원은 시뮬레이터등을 이용해서 프로그램을 돌려볼수는 있지만, 앱스토어에 등록하거나, 실제 디바이스에 올려보지 못한다. 유료회원은 그게 다 가능하다, 앱스토어에 무료 앱을 올리고자 해도, 유료 개발자 프로그램에 가입해야 한다. 1년에 104,000원 정도 밖에 안하므로, 한달에 9000원 정도 취미로 쓴다 생각하고 결재하는것이 좋은것 같다.

요약하면, 당신이 프로그램을 개발하고자 한다면, 제일 처음 기본적으로 Mac OS 가 설치된 PC는 기본적으로 있어야 한다.
맥북 저렴한걸 사는것도 좋고(http://store.apple.com/kr) 최저가 1,290,000원 이다. 해킨토시라고 있는데, 일반 PC 에 OSX를 설치하는 것을 말한다. 이걸 할수 있다면, 이런 방법도 추천한다. 그러나, 정신이 피폐해지기 쉽고, OSX 에 관한 지식이 없다면, 해킨으로는 도저히 개발을 할수 없을것이다.  그리고 개발툴인 xcode를 설치해야 한다. 위에서 말한 사이트에서 유료개발자로 가입한후 다운로드 받아도 되고, 일단 다운받은 다음에 클릭만 하면 설치가되므로 아무런 걱정할필요 없다. iOS용 프로그램을 개발하기로 했으므로, iOS용 SDK를 설치해야 하는데 xcode설치할때 같이 설치할수 있다. 

여기 까지하면 기본적인 앱은 클릭 몇번으로 만들수 있다. 

나는 게임 개발하는 과정을 정리하기로 했으므로, 게임개발에 반드시 필요한 두가지 엔진추가로 설치하였다.
그중 한가지는 이미지들을 처리해주고, 각종 애니메이션들을 처리해주는 스프라이트 엔진인 cocos2d이고, 그리고 이것을 설치할때 같이 설치하는 물리엔진인  box2d이다. 이름에서 부터 알수 있듯이, 2d 환경에서 물리를 시뮬레이트해주고(그 유명한 앵그리버드도 box2d를 사용한것으로 알고 있다.) 이미지를 처리해주는 굉장히 훌륭한 엔진이다. cocos2d는 많은 게임들에 사용되고 있을만큼 그 사용성도 광범위 하므로, 게임을 개발하고자 마음먹었다면, 이참에 같이 설치해서 공부해두는것이 좋다. 물론 다음에 내가 만든 게임 코드들 하나 하나를 보면서 cocos2d를 사용중 봉착한 문제점, box2d엔진을 사용하다 만나게 된 여러 문제점들을 하나씩 짚고 정리할 예정이다.

먼저 coco2d를 설치해보자.
http://www.cocos2d-iphone.org/
여기로가서 stable버전을 다운로드 하고(현재 0.99.5 xcode4 지원안함.) 수작업으로 프로젝트에 맞춰서 사용하여도 되고, 최신 버전으로 다운받아서(1.0이상버전은xcode4지원) 프로젝트 생성할때 클릭 두번으로 쉽게 작업하여도 된다.

나는 0.99.3시절에 시작하여, 중간에 iOS버전을 두번 올리면서 개발환경도 두번업데이트 했다. 사실 아무것도 모르고 무턱대고 클릭하다 보니, 일이 커지게 되었으나, 막상 하고 나서 보니, 역시 최신 버전을 쓰기 잘했구나 싶을 정도로 많은 발전을 한것이 느껴졌다.

cocos2d를 다운받고 설치하면, 자동으로 xcode 템플릿이 설치된다.(xcode4의 경우는 반드시 1.0 이상 버전을 사용해야 설치됨)


설치하고나서, xcode를 실행시키고 새로운 프로젝트를 생성해보면 위와 같이 나온다. 제일 처음 나오는게 물리엔진을 사용하지 않는 cocos2d템플릿, 두번째 것은 cocos2d 와 물리엔진 box2d를 사용하는 템플릿, 마지막것은 다른 물리엔진인 chipmunk를 사용하는 템플릿이다.

그 용도에 맞게, 선택해서 프로젝트를 생성하면 기본적인 앱이 이미 만들어져서 나온다.
게임 성격이 물리엔진이 필요치 않다면, 당연히 cocos2d만 사용해서 만들도록 하는것이 좋다.

물리엔진이 무엇인지 잠깐 설명하면, 쉽게 말해서, 우리가 앵그리버드에 새들을 쏴 올리면, 그 새들이 곡선을 그리고 날아가고(중력과 힘의 영향을 받음) 그리고 다른 장애물이나 돼지에 부딪치거나 하면 튕기거나 하는데 이런 것들이 다 현실에서는 물리현상들이다. 이런것들을 일일이 개발자가 하나씩 계산해서 좌표를 직접 찍어줄수 있는데, 이런걸 미리 다 하나로 모아서 라이브러리화 해놓고, 그것들을 자연스럽고 쉽게 사용할수 있는 api들을 제공하는데 바로 이것을 물리엔진이라고 한다.



이글은 전혀 퇴고의 과정을 거치지 않는 정말 라이브한 글이다. 단순히 내가 겪은 과정을 무에서 시작해서 유를 만들어내는 과정을 정리하고, 그 과정중에 만난 시행착오들을 정리하는데 더 큰 의미를 두는 글이다.

다음 포스트는 cocos2d를 처음 사용할때 느끼는 당혹감에 대해서 이야기 하도록 하겠다.
나는 당혹감을 느끼고 나서, 비로소 편안해졌다.  오브젝티브 C  에 대해서는 꼭 필요한 경우가 아니면, 여러 설명을 하지 않을 예정이다.

-2편 끝-

 

'코딩하고 > iOS' 카테고리의 다른 글

iOS용 게임 개발기 -4.1-  (0) 2011.08.02
iOS용 게임 개발기 -4-  (0) 2011.08.01
iOS용 게임 개발기 -3.1-  (0) 2011.07.11
iOS용 게임 개발기 -3-  (0) 2011.07.11
iOS용 게임 개발기 -1-  (0) 2011.07.08
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,
얼마전 아주 사소하지만, 개인적으로 많은 경험과 배움을 얻을수 있는 iOS용 게임을 만들어 미국 앱스토어에 등록을 했다.

물론, 모두가 원하는 대박이 나지는 않았다.

정말 개인적으로 많은 것들을 알수 있게 해주었고, 지구상에서 많은 다양한 시장에서의 반응을 모을수 있는 계기가 되었다.

게임을 등록하고 나서 보니, 그 동안 많은 시행착오를 겪었는데, 어디하나 정확하게 정리해둔 것이 없는것 같아, 많은 시간이 지났으나 이제부터 이곳의 한 카테고리를 빌려 그 개발과정 및 후기를 정리해서 올리도록 하겠다.

1. iOS앱들이 대박나는데, 나도 해볼까??
대박은 나지 않았다. 
앱을 제작하고, 등록하는데 들어간 총비용은 개발자 계정 104,000원 이 전부였다.
물론 보통의 경우 Mac OS를 운영할수 있는 Mac Book이라던지, 미니맥들을 구매해야 하나, 나는 해킨을 이미 사용하고 있어서 그럴 필요는 없었다. Mac Book을 구매하려면 보통 100만원은 추가로 비용을 잡고 있어야 한다.

게임을 만들때 가장 필요한 요소가 디자인 부분인데, 다행이도 하늘에서 내려준 디자이너가 바로 내 옆에 있었다.(물리적으로는 200킬로 가량 떨어져있다.) 그에게 이런 이런 작업이 필요한데, 해보겠느냐고 오랜시간 설득하고 회유하고 한 결과, 현재 앱스토어에 등록된 게임의 모든 이미지를 직접 작업할수 있었다.(다행이도 원화는 디자이너의 언니분께서 해주셨다.) 

이로서 개발자 인건비 0원(본인), 디자이너 인건비 0원으로 시작하여 앞으로 계속 만들 게임들의 수익을 정확하게 배분하기로 하고 시작하였다.

개발방법은 회사를 다니기때문에, 회사에서는 정말 열심히 일하고, 퇴근해서 밤 10시부터 대략 2~3시간 정도씩 매일 작업하는 것으로 진행했다.
이렇게 진행해도 충분히 진행가능하였으며, 디자이너와 이메일과 메신저등으로이야기 하며 작업을 분담 진행하였기 때문에 생각보다 효율적으로 진행할 수 있었다.

총 소요된 시간은 대략 6개월 정도이다, 레벨 45개, 3가지 시나리오를 구성하였으며, 총 투입된 이미지 리소스들은 대략 100개의 파일이 넘는다.

그리고 사운드를 구할곳이 없어서, 돈주고 살까 했으나, 아직 그럴 단계의 게임이 아니었기에 무료로 리소스를 구할수 있는 곳을 찾아서 사용하였다.

내 직업이 소프트웨어 개발자 이지만, Objective C를 능숙하게 다룰줄 몰랐으며, 게임엔진에 대한 지식또한 전무하였다. 그리고 물리엔진에 대한 개념은 있으나, 이번 작업을 통해 완전히 이용할수 있게 되었다.

다음 포스트에서 게임 개발에 필요한 기본적인 장비 셋팅(개발환경 설치) 및 게임엔진 선택 및 설치, 그리고 물리엔진 설치에 대해서 이야기 하도록 하겠다.

 

'코딩하고 > iOS' 카테고리의 다른 글

iOS용 게임 개발기 -4.1-  (0) 2011.08.02
iOS용 게임 개발기 -4-  (0) 2011.08.01
iOS용 게임 개발기 -3.1-  (0) 2011.07.11
iOS용 게임 개발기 -3-  (0) 2011.07.11
iOS용 게임 개발기 -2-  (0) 2011.07.09
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,