일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MSX
- 메가드라이브
- Apple II
- 게임보이
- 티스토리챌린지
- 앙상블
- 게임기어
- 닌텐도 스위치
- snes
- Game Gear
- LMD
- 오블완
- ensemble
- mobilesuit
- 3DS
- PC엔진
- 건담
- 슈퍼패미컴
- GOG
- mister
- fpga
- 슈퍼마리오
- 컨트롤러
- ps4
- 모빌슈트
- 이스
- YS
- PSP
- analogue
- 패미컴
- Today
- Total
Just a Blog
'게임 프로그래밍 패턴' 본문
모든 부분을 완벽히 이해했다고 말하기는 어렵겠지만, 일단 '게임 프로그래밍 패턴', 이 책의 각 챕터 읽기를 마무리했다.
이 책은 서점에서 처음 접하게 되었는데, 당시 책의 앞부분에 있던 게임 프로그램의 기본적 구조에 대한 설명이 마음에 들어 구매했었다. 책 이름에 이미 '패턴'이라는 용어가 들어가 있음에도 처음에는 이 책의 내용이 디자인 패턴 중심이라는 것을 인지하지 못했는데, 아마도 당시 그냥 게임 프로그램의 구조 자체에 관심을 가지고 그 지점만을 눈여겨 보았기 때문이 아니었나 싶다.
중간 지점부터 GoF 디자인 패턴을 참조하는 내용도 나오기도 하고 디자인 패턴 분야에서 유명한 용어(Factory, Proxy 등)가 본격적으로 등장하기에 이 책이 디자인 패턴에 대한 것이라는 생각할 수 있었다. 하지만 디자인 패턴의 이론서와 달리 이 책은 게임이라는 특수한 프로그래밍 분야에 특화되어 있고 실재 게임 프로그래밍 분야에서 고민할 만 한 문제들을 가져와 이에 대응하는 디자인 패턴 솔루션을 제시한다는 점에서 더욱 더 실용적이라 하겠다. 실제로 각 챕터에서 게임 프로그래밍에서 고려할 문제 상황을 가져와 이야기를 시작하며, 챕터 중간에 여러 디자인 대안들을 제시하기도 하기도 한다.
책에서 제시되는 코드는 C++ 기반인데, 실제 게임에 사용된 코드라기 보다는 이론 설명을 쉽게 받아들일 수 있도록 만든 의사(pseudo) 코드에 가깝다고 생각한다. 그림 삽화는 마치 저자가 직접 핸드 라이팅 한 것 같은 내용들인데, 거부감 없고 내용의 이해에 도움이 된다. 각주가 많은 편인데, 저자의 부가 설명이 대부분이지만 저자의 농담도 다수 있고 번역자의 추가 설명도 존재한다.
게임 프로그래밍에 관심이 있는 사람이나 디자인 패턴의 실용적 사용에 대해 관심있는 사람에게는 적합한 책이라고 생각한다. '게임 프로그램 내 여러 객체가 사운드 리소스에 원활히 접근하도록 하기 위해서는 어떤 구조로 디자인 되어야 할까?', '게임 내 그래픽 오브젝트들을 게임 진행에 따라 효과적으로 움직이려면 어떤 방식으로 메모리에 적재해야 할까?' 등과 같은 질문에 흥미가 느껴지고 그 모범례를 찾고 싶다면 이 책은 좋은 길잡이가 되어 줄 것 같다.
게임 엔진 또는 프레임워크를 사용하여 게임 프로그래밍을 하는 개발자에게도 생각해 볼 만한 좋은 화두를 던지는 책이라고 생각하는데, 실제 이런 도구의 사용자들이 이 책에 흥미를 느낄지는 미지수이다. 또한 도구를 통해 소규모 게임을 빠르게 개발하고자 하는 개발자 입장에서는 이 책이 좀 더 하위수준(low level)의 내용을 다루고 있기 때문이다.
C++ 언어를 잘 모르거나 잊어 버린 독자들은 책 내 소스 코드를 이해하는데 좀 불편할 수도 있겠다 싶다. 개인적으로 오랜만에 보는 가상 함수, friend 지시자 등이 소스 코드에 포함되어 있었을때 당혹스럽기도 했다.
저자가 디테일한 디자인 조언이나 사례들을 설명해 주는 부분을 보면 저자의 경력이 느껴진다. 이런 저자의 내공이 책 내 설명 부분을 부드럽고 여유 넘치게 만드는 것 같다.