게임을 만드는게 이렇게 재미있습니다. - 게임 매니악스 퍼즐 게임 알고리즘 BookReview


게임 매니악스 퍼즐 게임 알고리즘 : 게임을 만드는게 이렇게 재미있습니다.


저자 : 마츠우라 켄이치로. 츠카사 유키

역자 : 김병국

출판 : 한빛미디어


 <표지>


탄막, 슈팅에 이어 세번 째로 읽은 게임 매니악스 책이다. 세권 다 같은 저자이다 보니, 이제 책에 나오는 소스코드가 친근하게 느껴진다.


다른 두권의 책처럼 마치 소설책 읽듯이 흥미롭게 읽었지만, 역시 이 시리즈의 최고 명저는 탄막 관련 책인 듯 하다. 그때의 감동은 지금 생각해도… 캬~


하지만 퍼즐게임을 만들 생각이 있다면 이 책이야 말로 가장 적합한 입문용 책이 될 수 있다. 현재 우리가 알고 있는 웬만한 퍼즐게임은 다 망라하고 있으며, 거기서 조금만 응용하면 나만의 퍼즐게임도 하나 탄생시킬 수 있을 만큼 내용이 풍부하다. 또, 프로그램에 대한 어느정도의 지식만 있다면 쉽게 이해할 수있는 소스코드도 장점이다. 물론 이 부분은 다음에 얘기할 단점이기도 하지만. 게다가 기술에 대한 설명이라기 보다는 마치 퍼즐 게임은 이렇게 만들면 돼라는 이야기를 듣는 느낌이어서 기술 서적 치고는 꽤 흥미진진하게 읽을 수 있다.


이 책의 가장 큰 단점 ,아니 매니악스 시리즈 전체의 단점이라고 하면 아무래도 소스코드의 품질일 것 같다. 가장 마지막에 쓴 듯한 탄막에서는 조금 나아지긴 했지만, 슈팅과 퍼즐의 소스코드는 아무래도 좀 심각하다. 흔히 말하는 매직 넘버가 남발되는 데다가(enum이라도 쓰라구~), 조금 응용하다보면 스파게티 소스로 발전할 가능성이 농후하다. 경력이 있는 사람이야 이런 함정을 잘 피해 딱 맞게 쓰겠지만, 초보자라면 이 예제를 발전 시키다가 나중에 자신도 주체할 수 없게 된 소스에 당황할 가능성이 더 크다.  


<실수로 주석을 달지 않으면 지옥으로 가는 코드들>


초보자의 경우, 먼저 이 책의 코드를 그대로 입력해보고 실행하면서 이해한 이후, 반드시 리팩토링을 거쳐 코드를 개선하는 과정을 거친다면 스파게티 소스코드로 발전하는 것을 막을 수 있다. 리팩토링에 대한 개념이 명확하지 않다면 다른거 다 제쳐두고 이 책에서 남발되는 매직넘버만이라도 없애라. 예를 들면


if( # == type ) {} // #은 벽

이런 코드를


if( WALL == type ) {}

이렇게라도 고쳐야 한다.


#이 벽인지 똥인지는 일주일만 코드를 보지 않아도 까먹는다.물론 대신 코드를 쉽게 읽을 수 있으니 그건 그거대로 장점이라고 할 수 있다.


또, 퍼즐게임의 규모를 생각해볼 때, 극단적으로 이 소스코드를 그대로 가져다 써도 큰 문제가 없을 가능성도 크다. 물론 그 경우에도 매직넘버는 반드시 바꿔야 한다.


이런  단점에도 불구하고 장점이 훨씬 더 많은 책으로, 입문자나 경력자 모두 한권씩 가지고 있으면 좋을 책이라 생각이 든다. 특히, 이 책을 읽으면서 저자의 게임에 대한 애정과 게임을 만드는 재미를 듬뿍 느낄 수 있다는 점도 다른 책에서 느낄 수 없는 장점이다.


이 저자, 이정도 능력이면 모바일 게임으로 전직해도 먹고는 살 듯하다. (이미 전직 했을라나?)



덧글

댓글 입력 영역