처음엔 자신이 게임을 만들면 매우 자랑스럽고 만족스러울 줄 아랐는데, 그게 아니었다.
역시 중요한 것은 퀄리티였다.
처음 프로젝트를 시작할 때 정확한 목표가 없이 시작했더니 이거 영... 공개하기 쑥스러울 뿐이다.
하지만 지금이 지나면, 지난 3주간의 노력이 하드디스크 속에서 영원이 잊혀질 것 같기에 이렇게 흔적을 남긴다.
최초 시작 화면이다.
메뉴 스테이트 다이어그램이다.
게임 화면이다. 탱크가 미사일을 발사해야 한다.
하지만, 미사일 모델을 구하기 어려워서 빨간 구(쩝;;;)가 날라간다.
스샷은 여기까지...
사실 처음 시작의 계기는 인터넷에서 잘 정리된 Terrian 소스 코드를 보고 시작했다. 그 김에 공부도 할겸해서 책 찾아보며 Terrian 에 대해 이해하고 예제 소스 참고하면서 만들었는데, 생각외로 난관이 몇가지 있었다. 그 중 첫번째가 예제 소스에선 단순히 지형격자 만들고 여기에 높이맵을 적용한 것에서 끝났는데, 와이어 프레임으로 볼 경우 상관없지만 폴리곤으로 보았을 경우 따로 노말을 지정해 주지 않기 때문에 Flat Shading 으로 표현된다는 점이었다. 예전에 OpenGL 공부할때에 노말 구하는 계산을 해본적이 있지만 DX 기반에서 하자니 다른 것 보다 LPD3DMESH 에서 VertexData 에 접근하는게 익숙치가 않았다. 머.. 이런저런 시행착오 끝에 버텍스당 노말을 계산하여 적용하니 최초 초기화면에 보이는 것과 같이 부드러운 Smooth Shading 이 표현되었다. 노말 계산이 한번에 성공하였을때까진 기분이 매우 좋았었다. ^^;하지만, 단순한 테리안까지는 쉬웠는데, 여기에 멀티 텍스쳐를 적용하자니 영 머리 아프기 시작했다. 위 스샷에서는 테리안에 단순히 통으로 텍스쳐 하나만 적용된 것을 볼 수 있는데, 이러니 보기에 영 단순해 보인다. 책에는 멀티 텍스쳐를 활용한 내용들이 나왔지만 ("C++와 DirectX 9 를 이용한 실시간 3D 지형 엔진" 참조) 기반 프레임 구조가 너무나 달랐기에 책에 있는것을 그대로 따라할 수도 없고, 적절한 텍스쳐 구하기도 힘들어서 이부분은 그냥 포기하고 넘어갔다.
테리안까지 만들고 나니 볼만하긴 한데, 그건 역시 테리안 예제 수준이지, 게임이라고 하기엔 웃음밖에 안나왔다;;; 무언가 오브젝트를 추가해야 할 것 같은데 영;;;; 컨셉을 잡기가 힘들었다. (나는 게임 구상쪽으론 영 머리가 안 돌아가나보다. ) 그러던 와중 막연하게 어차피 오브젝트 추가되면 충돌검출이나 물리효과가 필요하겠단 생각으로 물리 모델링쪽 부분을 보기 시작했다. 사실 이 부분에서 프로젝트 만드는 것이 목적이었으므로, 깔끔히 접고 공개된 엔진이나 공부하는게 이득이었을 거란 생각을 종종한다.
서적 "게임프로그래머를 위한 물리 모델링" 을 훑어 보면서 사실 내용이 그리 어렵진 않았다. 예전에 고등학교 다닐때 배웠던 내용들이기도 했고 책에서 설명을 자세히 하기도 했다. (진짜 어려운 부분은 과감히 스킵했기에 ㅋ) 다만 소스 코드를 책에서 제공하는 그대로 쓰자니 왠지 스타일이 마음에 안들기도 하고 (-_- 사소한 것에 고집부린다.) 조금씩 바꿔가며 열심히 타이핑하면서 코딩할 때 까진 좋았다. 어차피 책에 소스코드 대부분이 있기에 특별히 막힐 일이 없었다. 이 쯤에서 게임에 미사일 런처를 두고 미사일 발사를 시뮬레이션 해야겠다는 생각을 하였다. 최초 구상에선 다양한 미사일들이 화려한 궤적을 그리며 날아가는 것이 었는데, 막상 적용하다 보니 미사일이 내 생각처럼 날아가질 않는다. (워~ -ㅁ- 이쯤에서부터 슬슬 미치기 시작한다.) 왜! 왜! 역동적으로 날아가질 않는거냐고!!
메뉴만들고 사운드 넣고 하는 자잘한 거는 머.... 짜증난 상태에서 승질만 내며 코딩했다 -ㅁ-
그렇게 힘들게 코딩하고 나니 남는건 허접한 퀄리티의 App 하나와 책 산지 얼마 되지도 않았는데 꾸질꾸질해져 버린 아까운 내책 ㅡㅜ
이 정도 밖에 못 만들다니... 아 부끄러워 하;;;;;
'Dev.Write' 카테고리의 다른 글
MFC 기반의 Direct3DX Window (0) | 2010.01.15 |
---|---|
MFC Custom_Control 연습 (0) | 2010.01.15 |
물리 프레임의 기본 - 충돌(1) (0) | 2010.01.06 |
물리 프레임의 기본 – 회전 동역학 (0) | 2010.01.02 |
물리 프레임의 기본 – 선형 동역학 (2) (0) | 2009.12.11 |