티스토리 뷰

 (이 포스트는 한빛미디어에서 제공하는 "DirectX 12를 이용한 3D 게임 프로그래밍 입문"을 읽고 쓴 서평임을 알려드립니다.)

개인적으로 컴퓨터를 공부하는 입장에서 가장 난이도가 높은 분야를 3개 꼽으라고 하면 운영체제, 컴파일러, 게임을 꼽고 싶다. (개인적인 의견일 뿐 다른 분야가 더 어려울 수 있다. 내가 잘 모르는 것일 수도 있고..) 운영체제를 다루기 위해서는 하드웨어의 복합적인 동작을 알아야되고, 컴퓨터는 언어를 컴퓨터의 입장에서 봐야하기 때문에, 어렵다고 선택했다. 그리고 마지막으로 게임을 선택한 이유는 게임을 개발하기 위해서는 수학을 공부해야 되기 때문이다. 물론 사람에 따라서는 "수학이 제일 쉬웠어요" 라고 할수도 있겠지만, 3D를 표현하기 위해 내부적으로 여러 수식이 복합적으로 적용되어야 하고, 겉의 질감을 표현하기 위해서 빛의 방향과 세기 같은 것도 수식적으로 계산해야 한다. 심지어는 위와 같은 수학만 전문적으로 다룬 책도 있다. 이런 와중에 동 출판사에서 게임 프로그래밍 관련 입문책을 전달 받아 이에 대한 서평을 써보고자 한다. 참고로 게임을 전문적으로 개발해보지는 않았지만, 몇년전에 대회를 준비하면서 3D에 대해서 잠깐 공부한 적이 있었던 경험 측면에서 책을 살펴보고자 한다.

 잠깐 소개를 하자면 DirectX는 Microsoft에서 Multimedia 용도로 사용할 수 있는 API들을 묶은 C++기반의 프레임워크다. 그래도 아마 일반적으로 게임에 대해서 잠깐이나마 접한 사람이라면 "아 그거 3D 게임할 때 꼭 설치해야 되는거?" 라고 알고 있는 그 프레임워크다. 물론 오픈소스용 프레임워크인 OpenGL도 있겠지만, 윈도우 기반에서 실행되는 거의 모든 게임은 이 DirectX 기반의 API를 사용해서 개발된다. 이 책에서 다루는 버전 12는 2015년에 나왔다.

 일단 책을 딱 보면 알겠지만 매우 두껍다. 장장 1천여 페이지인데, 그 많은 페이지 만큼이나 책안에 담고 있는 내용들이 정말 자세하고 다양하다. 우선 이해를 돕기 위해 필요한 기본적인 수학적 내용을 다룬 부분부터 초기화, 렌더링, 셰이더, 조명, 텍스쳐와 같은 게임 개발에 필요한 기본 지식들을 다룬 기초 부분, 마지막으로 기초 부분을 응용한 파트까지 크게 세부분으로 구분되어져 있다. 각 파트별로 실습 예제 코드와 연습문제들이 제시되어 있으며, 글 흐름이 순차적으로 진행되기 때문에 처음부터 공부하고자 하는 사람에게는 많이 뭔가를 알려줄 수 있는 그런 책이 되겠다. 다만 책 양이 많은 만큼이나, 이를 설명하고자 하는 글이 길기 때문에 순간순간 필요한 부분만 따서 보려는 사람에게는 조금 책 보기가 어려울 수 있다. 딱 입문이라는 단어가 이책을 표현하기에 적합한 것 같다. 그렇다고 정말 게임을 처음 개발하는 초보자가 볼 수 있을 만큼 난도가 매우 쉽지는 않다. 이 책은 어느 정도 DirectX 내API를 구성하는 C++ 문법에 대해서 어느정도 익숙한 사람이 보면 좋을 듯 하다는 생각을 해본다. 물론 이 책을 선택했다는 것 자체가 아마 그런 부분에 대해서는 익숙한 사람이겠거니 싶다.

 아 그리고 이책에 대해서 언급하고 싶은 부분이 있다면 책 자체가 번역투같지 않고, 그냥 읽기 자연스럽다는 것이다. 게임 개발서 중에 몇몇 많이 언급되는 책이 해골책과, 용책, 그리고 보석책이 있는데, 보석책을 옮기신 류광님이 이 책도 썼다. 사실 이분이 옮긴 책들이 우리집에 찾아보니 참 많다. 보석책이라고 불리는 GPG 책부터 컴퓨터 프로그래밍의 예술(The Art of the computer Programming), APUE(Advanced Programing in Unix Environment) 책까지... 개인적으로 번역투가 느껴지지 않고, 불편하지 않게 쭉 읽혀지는 느낌이라 선호하는 스타일이다. 이번 책도 역시 그런 느낌으로 읽어서 읽기가 불편하지 않았다. 

 이 책의 단점이라면 굳이 뽑자면 선뜻 구매하기 어려운 책값이나, 책 두께를 딱 보면 선택하기 쉽지 않다. 그리고 입문이라는 책에 맞지 않게 앞에 하나의 파트로 분리된 수학적 지식을 설명한 부분은 다른 파트에 비해서 상대적으로 미약하다.(원서가 그랬다면 할말이 없지만, 조금 수학적 내용도 기초 지식 만큼이나 자세하게 다뤄졌음 좋았을 법하다.) 또한 DirectX의 특성상 뭔가 그림으로 표현되어지는 부분보다는 코드를 설명하고 이를 원론적으로 증명하기 위한 수식이 많이 포함되어 있기 때문에, 읽는데 있어서 끈기를 가져야 한다. 물론 책읽는 독자 입장에서는 끈기를 가지고 읽기가 참 쉽지 않은 부분이지만, 게임 개발을 목적에 두고 있는 사람이라면 이 책은 그럴 의미가 충분한 책이다. 거의 유일무이한 DirectX 12 관련 책이기 하고, 게임 개발서라는 범주로 놓고 볼때 설명과 예제가 충실한 책이라고 생각한다.

책의 원 소개 사이트 : http://www.d3dcoder.net/

역자의 사이트 : http://gpgstudy.com/

책 소개 사이트 : http://www.hanbit.co.kr/store/books/look.php?p_code=B5088646371

댓글