올해 10월 28일에 출간된, 따끈따끈한 한빛미디어의 신간, '한 권으로 배우는 게임 프로그래밍'이다. 재미있는 것은 제목 그대로 이 책은 '게임 프로그래밍'을 가르쳐 주는 입문서다. 처음부터 끝까지 따라 하면 게임 하나가 딱 완성되는 그런 책이 아니라, 처음부터 끝까지 읽고 공부하면, '게임'이 어떻게 만들어지는지, '어떤 구조'로 만들어져 있고 '어떤 원리'로 구현을 해야 하는지, '이해'를 하고 '구현'할 수 있게 해주는 책이다.
깜찍한 표지 그림과 제목만 보면, 가볍게 프로그래밍을 핥아주는(?) 책인 것 같아 보이지만, 이 책은 그림만 귀엽고 핥지 않고 제대로 파 준다는 면에서 좋은 책인 것 같다. 이 가볍고 깜찍한 그림은 게임 프로그래밍을 제대로 파면서도 초보자나 비 전공자가 포기하지 않고 쉽게 이해할 수 있도록 도움을 주는 삽화의 캐릭터다.
책 페이지를 넘겨보면 이 책은 실습 환경을 유니티를 추천하고 있다. 저자의 말대로 이 책은 실습 위주의 실천서가 아닌 이론서에 가깝기 때문에 다른 실습 환경을 사용해도 문제는 없다. 하지만 객체지향의 C#을 기준으로 설명을 하고 있으며, 프레임 기반의 게임 엔진(유니티, 언리얼 등) 동작 방식을 기반으로 하기 때문에 가볍고 무료인 유니티 엔진 환경에서 실습을 하면 보다 편할 것이다.
한빛미디어의 '한 권으로 배우는 게임 프로그래밍'은 비전공자와 초보자, 입문자에게 모두 추천할 수 있는 책인데, 나도 이 페이지의 그림을 보고 나서 이걸 기획자 후배에게 추천해서 읽게 해야겠다고 생각했다.
UI의 좌표계와 게임 세계 좌표계가 분리되어 있다는 점을, 초보자는 잘 모른다. 이 구조를 알고 기획을 하는 것과 모르고 기획을 하는 것은 엄청난 차이가 있다. 게임 프로그래머뿐만 아니라 제대로 된 구조를 이해하고 기획을 하고 싶은 게임 기획자에게도 너무나도 좋은 책이다.
책은 총 4개의 장으로 이루어져 있다. 개발 환경 구성과 게임 세계를 이해하는 것이 1장의 내용이고, 외면하고 싶은 수학과 물리가 2장. 게임 프로그래밍에 필요한 기법, 알고리즘과 자료구조 등이 3장. 게임 프로그래밍을 더 잘하기 위한 방법론이 4장으로 되어 있는 구성이다. 이 책이 무엇보다 비 전공자와 입문자, 초보자에게 좋은 이유는 1장의 '게임 세계 이해' 편 때문이다.
프로그래머도 마찬가지지만, 기획자는 시스템과 콘텐츠를 구분하는 것을 어렵게 여길 정도로 게임 세계에 대한 이해가 부족하다. 그런 '유저' 상태의 사람들에게 이 책의 '게임의 구조'를 이해시키는 친절한 그림과 친근한 설명은 게임 개발자로서의 문턱을 대폭 낮춰준다.
벡터의 기본 연산과 함께 다루는 몬스터 스폰 예제. 몬스터 스폰 관련해서 예전에 NDC 슬라이드를 보고 현웃 터진 적이 있었다. 잘 모르는 기획자가 몬스터 10마리를 스폰 해달라고 프로그래머에게 서술형 문장으로 요청을 하고, 그러면 프로그래머는 몬스터를 같은 좌표 위에 일렬로 10마리를 세워서 스폰 시킨다는 슬라이드를 보고 엄청나게 웃었었는데 그게 우스갯소리가 아니고 실제로 일어나는 일이라는 것을 그로부터 일 년 뒤 학생들을 가르치면서 알 수 있었다.
수학과 물리는 너무너무 보고 싶지 않겠지만, 게임 프로그래밍에서 수학과 물리를 아는 것과 모르는 것은 엄청난 차이를 보인다. 신입이고 지망생이라면 모를까 경력이라면, 프로그래머든 기획자든 게임 수학과 물리를 모르고 업무를 하는 건 비효율적이 된다.
그다지 두껍지 않은 책에서 정말 게임 프로그래밍에 필요한 것은 모두 알려주는 좋은 책이다.
나는 보통 이 그래프를 UI 애니메이션을 기획하고 작업자에게 전달할 때 사용한다. 기획자가 아무리 입으로 떠들어 보고 손짓 발짓을 해 보았자, 기획자 머릿속에 있는 걸 작업자가 이해할 수 있을 리가 없다. 이럴 때 기획서에 그래프를 추가해서 던져주고 개발해 주세요!라고 하면 서로가 만족하는 결과물을 만들 수 있다.
입으로 "디용~디용~하면서 움직이게 해주세요."라고 해도, 작업자는 모른다는 거다.
3장에서는 게임 프로그래밍에 필요한 기법을 배운다. 알고리즘과 자료구조다. 사실 전공자라면 1학년 때 배우는 게 자료구조이고, 알고리즘도 2학년 또는 3학년 때 끝낸다. 학교마다 교과목은 조금씩 다르지만, 컴공이라면 자료구조와 알고리즘은 반드시 빠지지 않을 정도로 이 두 가지는 프로그래머에게 매우 중요하다.
자료구조는 기획자에게도 매우 중요하다. 신입 기획자 포트폴리오를 보고 있으면, 자료구조에 대한 이해 없이 자료형을 사용해서 감점을 먹는 친구들이 있다. 알고리즘도 그렇다. 서울로 가는 길은 여러 가지가 있지만, 알고리즘을 알고 가는 것과 모르고 가는 것은 천지차이이기 때문에, 게임 프로그래밍을 목표로 한다면 알고리즘은 필수다.
책에서 충돌체에 대한 개념을 다루고 있는데, 기획자도 신입 프로그래머도 이걸 모르는 경우가 너무 다반사라서, 정말 전혀 모르는 생초보를 위한 책이라는 생각이 들었다. 게임 세계에 대한 이해가 전혀 없는 사람에게 '한 권으로 배우는 게임 프로그래밍'은 게임 세계를 친절하게 알려주고, 그 세계를 만들기 위한 꼭 필요한 정보들을 자연스럽고 친숙하게 익힐 수 있게 도와준다.
비전공자 게임 프로그래머 지망생에게 무척 좋은 책이지만, 비전공자인데 기획자를 선택한 사람들에게 정말 정말 좋은 책이라고 생각된다. 기획팀에 추천 도서로 등록해서 읽게 해야겠다.
가볍게 읽히고 친절한 전공 책(?)인 만큼, 전문서적답게 뒤 페이지에는 찾아보기 인덱스가 준비되어 있으니 다 읽은 후에도 가까이 두고 필요한 내용을 찾아보기 좋다. 오랜만에 보기 드문 매우 쓸모 있는 책이었다.
"한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
#한빛미디어, #게임기획자, #한권으로배우는게임프로그래밍, #게임프로그래밍입문, #한빛미디어한권으로게임프로그래밍, #게임개발필수입문서, #게임기획자추천도서
댓글
댓글 쓰기