"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
"와, 게임 개발 입문서로서는 정말 딱 좋은데?"
책을 다 읽고 나서 느낀 점이다. 문득, 대상 독자는 고교 과정을 이수한 사람이라면 충분히 이해할 수 있는 내용이라고 판단했다. 다만, 수학 공부를 한 지 좀 시간이 지나서 희미한 개념만 알고 있다면 좀 갑갑하겠다는 생각은 들었다. 내가 그랬으니까.
뜬금없이 왜 이런 얘기를 하냐고? 2장에 나오는 필수적인 수학 내용에서 벡터 연산 내용이 쉽게 이해되지 않아서다. 방향과 힘의 크기를 나타낸다는 지식은 있다. 수학보다는 물리 때문에 더 기억하고 있는 내용이다. 그런데 내적과 외적 용어가 나오니 내가 이런 걸 공부한 적이 있었나 싶을 정도였다. 이를 테면, 내게는 이런 지식들이 허들이 됐던 거다.
그렇지만 비교적 내용을 쉽게, 적당히 설명한다. 아무래도 모교 선생님들에게 감사를 표한 걸로 봐서 직간접적으로 도움을 받았던 게 아닐까 싶다. 왜냐하면 내용 전달하는 게 지식의 나열이 아니라 "설명"하는 문장들로 가득했기 때문이다. 속된 말로 치고 빠질 포인트를 잘 잡았다는 느낌? 다시 말해, 선생님이 학생들을 가르치기 위한 교습법대로 진행했다는 느낌이 남아 있다.
1장은 개발 환경을 구성하는 방법을 개략적으로 알려주고 게임 세계를 이해하기 위한 밑밥을 깔아놨다. 개념을 전달하기위해 간단히 적어두다보니 본인 입장에선 유니티를 처음 써보는데 어떻게 해야 할지 감이 오지 않아 애를 먹었다. 쉽게 되지 않다보니 스트레스 받을 것 같아서 과감하게 설치하고 띄워만보고 계속 책을 읽어나갔다. 읽고 나면 어떻게든 되겠지 싶어서다.
2장은 필요한 수학과 물리 개념을 알려준다. 게임의 가장 기초적인 내용과 이와 관련된 수학과 물리 개념들을 풀어나가는 솜씨가 괜찮았다. 때로는 너무 쉬운 거 아니야? 싶을 정도의 수준이지만 쉽고 깔끔하게 설명을 해주면 이해하는 데 무척 도움이 된다. 본인은 아는 내용도 꽤 됐지만 그럼에도 재밌게 읽어나갈 수 있었다. 삼각함수, 사인, 코사인, 탄젠트. 그림과 간략한 설명을 해주니 이해하는 데 무리는 없었다. 만약 고교 졸업 또는 일반 수학을 공부하고 대학 졸업한지 얼마 되지 않았다면 전혀 무리 없이 이해할 수 있는 수준이다. 앞서 얘기한 것처럼 벡터 연산과 내적, 외적은 조금 어렵다는 느낌이었지만, 갓 졸업한 사람들에게는 큰 어려움은 아닐 테다.
3장은 매우 중요한 개념을 알려준다. 이건 놓치면 안 되는 부분이다. 시간의 불연속성. 자주 게임을 하면서 놓치기 쉬운 부분일 듯 싶다. 하지만 절대 놓치면 안 되는 부분이다. 황당한 게임 상황을 겪지 않으려면 잘 고려해야 하는 부분인데, 막연하게만 알던 부분을 비교적 깔끔하게 이해할 수 있었다. 자료구조는 배웠으니 됐고, 알고리즘은 항상 볼 때마다 까다롭다. 기초적인 알고리즘은 대략 알고 있지만, 잘 안 썼던(그런데 왜 써야 하는지도 잊어버렸던) 알고리즘들을 다시 살펴보게 됐고, 특히 게임 세계에서 많이 쓴다는 알고리즘은 이번에 처음 보게 됐다. 특히 충돌 처리 알고리즘. 보통 학교에서는 이런 것보다는 정렬, 탐색 알고리즘을 더 비중있게 배웠던 것 같다. 또는 암호화 알고리즘이라든지. 그런데 충돌 처리 알고리즘은 생소했다. 그래서 이해하려고 더 애쓴 것 같다. 완벽히 이해한 건 아니니, 추가로 책이나 인터넷에서 검색을 해봐야 할 것 같다.
4장은 방법론을 얘기하는데, 객체 지향 개념을 리마인드한 것 같다. 그것도 어렵지 않게 말이다. 내공 없이는 저렇게 풀어나가기 어려울 텐데, 라는 생각이 들었다. 디자인 패턴도 몇 가지 다시 보거나 새로 알게 됐고, 안티 패턴에서 "최적화 안 하는 게 답"이라는 맥락의 표현도 봤다. 다른 책에서 이른 최적화는 독이 된다는 내용과 통하는 것 같다. 사실 실무에서도 많이 느끼는 부분이기도 하다. 왠만한 건 머신 성능이 좋아서 잘 받쳐주니까 돌아는 가게 하고, 필요한 부분을 최적화 하면서 전반적으로 균형을 맞춰주는 게 효율이 좋았다. 내용을 잘 파악해야 개선이 되는데 그런 거 없이 섣불리 최적화 했다가 문제가 많이 생기는 직간접적인 경험도 해봤으니까.
어떻게 보면 4장도 이미 다른 최적화 관련 책이나 기술 서적에서 많이 언급되는 내용들을 가급적 평이하게 설명하는 것도 같다. 이런 내용을 보면서 선생님들의 도움이 아니었을까 하는 추측을 해봤다. 정말 그랬는지는 알 수 없지만.
간만에 맘에 드는 게임 개발 입문서를 봤다. 가끔 게임 개발을 해보고 싶어서 책을 찾아보면 내 입장에서는 중급자를 위한 내용들로 가득 찬 책들만 있었다. 비교적 입문서 성격을 가졌다 해도 목차를 보면 이미 필드에서 뛰고 있는 사람들을 위한 책처럼 보였다. 비 게임 개발자로서 허들로 느낄 수 밖에 없었는데, 이 책은 매우 좋은 입문서 역할을 해줄 것 같다.
여기 내용을 숙지하고 조금씩 게임 개발 첫 발을 뗄 수 있을 것 같아 즐겁다. 저자들의 목표가 달성되어가는 소리가 들리는 듯하다.