기다리고 기다리던 둠 책이 드디어 왔다. "울펜슈타인 3D" 이후로 어떤 게임이 그리고 어떤 식으로 구성되어 출간될지 너무나 궁금했었는데, 그것도 시대를 풍미했던 둠이!! 아니다. 지금도 시대를 풍미하고 있는 (물론 다른 의미에서) 둠!?이 관련 책으로 출간되어 이 기쁨을 이로다 표현할 수 없을정도이다.
필자가 알기론 둠은 대략 1993년 정도에 나온 게임인 것으로 알고있다. (필자가 상당히 어렸을 때였다.) 거의 30년 전에 개발되어 릴리스된 게임이라 할 수 있는데, 이는 어찌보면 엄청 옛날 게임이고 최신 게임들에 비하면 한참 보잘것없어 보일지도 모른다. 하지만 그 당시 둠을만들기 위해 '이드 소프트웨어' 개발자들이 시도했던 다양한개발 기법과 이를 해결하기 위한 창의적인 아이디어 그리고 시대적 배경들은 개발자들이라면 한 번쯤은 알아둘만한 필독 / 정석과 같은 이야기라고 생각되기에 필자는 해당 도서를 많은 분들께 추천드리고 싶다.
더욱이 게임을 개발하려는 사람들이라면 이 책을 꼭 읽어보시길 추천한다. 단순히소프트웨어적인 측면뿐만 아니라 하드웨어 그리고 트릭, 툴을 비롯한 게임 개발에 필요한 거의 모든 기초를이 책은 잘 기록하고 있다. (물론 CS에 관한 어느 정도지식을 베이스로 알아야 한다. 전혀 그런 지식 없이 이 책을 읽으면 책에 담고 있는 온 전의 의미를얻기엔 한계가 있을 것이다.) 옛날 기술이지만 결국 최신 기술들도 옛날의 기술들에서 파생되어 발전되고보완된 것들이다. 그렇기에 그 뿌리를 안다면 필시 좋은 개발자로 거듭나는 데에 좋은 양분이 될 것이라생각된다.
요즘은 게임을 개발하기에 참 편한 시대이다. unity든 unreal 이건 어느 정도 상용화된 게임엔진이 대중화되었고 더 이상 개발자가 하드웨어 스펙까지 세심하게 고려하여한 땀 한 땀 코드를 짜는 시대는 지났기 때문이다. (물론 하드웨어 핏 하게 최적화가 필요한 파트는여전히 존재한다.) 하지만 필자의 경험상 직접 게임 엔진을 만들어 본 사람과 이미 만들어진 게임엔진을이용하여 게임을 만드는 사람들의 식견과 견문은 엄청나게 차이가 난다. 당연히 자체 게임 엔진을 만들어게임을 구축해보고 릴리스까지 해본 사람의 지식과 견해가 대중화된 게임 엔진을 이용하여 게임 개발을 선호하는 사람들 보다 훨씬 기술적으로 고도화된것은 당연한 것일지 모른다.
그렇기에 게임 개발 나아가 소프트웨어 개발 엔진에 대해 관심 있는 사람들이라면 위 도서를 한 번쯤은 꼭 읽어보길권한다.
【책의 구성】 '게임 엔진 블랙 북:둠'의 책의 구성은 어떠한가.
이 책은 총 7장으로 구성되어 있다. 2장은 하드웨어에 좀 포커싱 된 내용이 많고 3장의 경우 '넥스트'의역사와 이와 관련된 내용 전반을 다루고 있다. 4장은 둠을 개발했던 팀원들과 그 팀이 어떤 식으로 일을했었는지에 관해 다루고 있다. 5장은 개발에 관한 내용들이다. 가장핫한 대목이며 아마도 개발자들이 가장 많은 테크니컬 한 배움을 얻어 갈 수 있는 장이라고 생각된다. 따라서다른 장들은 몰라도 꼭 5장은 딮하게 살펴보길 권장한다.(5장만대략 80장 정도 되는데, 이 책이 총 200장인 것을 볼 때, 얼마나 중요한 장인지 장수만으로도 충분히파악이 가능하다.). 6장은 둠과 콘솔 게임기 간의 역사를 설명하고 있다. 둠을 다양한 플랫폼에 이식하기 위해 어떤 일들이 있었는지 해당 장에 자세히 설명되어 있다. 7장은 이 책 전반에 걸친 에필로그가 쓰여있다.
2파트 : IMB PC
둠이 개발될 당시의하드웨어들의 환경을 잘 설명한 장이다. 현재 최신 스펙의 장비들과 기술에 비하면 한참 보잘것없는 스펙일것이다. 하지만 필자의 기억으로 그 당시에 책에 쓰여있는 기술들은 획기적인 접근이었으며 가장 진보되고최신의 기술이었다. 또한 IT 기술의 폭발적인 성장이 이뤄졌던시기이기도 했었다. 하루가 다르게 CPU 성능과 네트워크성능 그리고 램, GPU 등이 발전했던 시대이기도 했다. (필자가알기론 최근에 들어서야 무어의 법칙이 깨진 것으로 알고 있다. Intel 직원들에게 참으로 숙연해질수밖에 없는 것 같다.)
뿐만 아니라 조금은 생소할 수 있지만 보호 모드와 리얼 모드 간 에어 플리케이션을 동작시키기 위해 어떤 부분들이고려되었는지 등도 자세히 설명되어 있다. 그만큼 둠은 과도기 시대에 한 획을 그은 역사라 할 수 있는부분이 여실히 드러난 파트라 할 수 있다.
5파트 : 소프트웨어: idTech 1
이 책의 가장 핵심인부분이다. 다른 덴 안보더라도 이 장은 꼭 봐야 한다. 둠의소스코드에 관한 히스토리 (공개 역사), 개발 아키텍처, 랜더러 구현 기법, 입력, 충돌감지, AI, 네트워크 등. 게임을 개발함에 사용되었던 창의적인아이디어를 비롯한 수많은 기법들이 설명되어 있다. (심지어 플레이어들을 효과적으로 속일 수 있는 팁도들어있다!) 예시에 나온 코드들은 C와 어셈블러이지만 CS에 대한 학부 이상의 지식을 갖추었다면 해당 장의 내용들을 이해함에 있어 큰 어려움은 없을 것이라 생각된다.
해당 장을 읽을 때 필자는 몹시 기분이 좋았는데, 왜냐하면 마치 지금눈앞에서 둠의 개발과정이 펼쳐지는 것처럼 핵심들만 잘 추려서 생생하게 표현했기 때문이다. 더욱이 예시로사용된 그림들과 '토막 상식'이라는 짬짬이 쓰여있는 칼럼들의내용들은 깨알 같지만 정말로 많은 생각점을 주므로 꼭 읽어보길 권장한다.
코드의 경우 추상화하여 각 단계에서 어떤 식으로 수행되는지를 설명하고 있으므로 머리로 한번 그려가며 책을 따라가면훨씬 와닿는 부분이 많을 것이라 생각된다. (가장 베스트는 이 책을 읽기 전에 간단한 자신만의 게임엔진을 개발하고 그 엔진을 이용해서 게임을 만들어 본 후에 이 책을 읽어보라는 것이다. 그러면 당시개발자들이 얼마나 천재였는지 확실히 깨달을 수 있다.)
【 "게임 엔진 블랙 북:둠"을 읽고서…….】
'모든 지식은 무엇인가에뿌리를 두고 있다.' 옛날에 어떤 책인가에서 필자가 읽었던 문구이다.그렇다 모든 지식은 무엇이 되었건 뿌리를 가지고 있다. 의학도, 공학도, 금융 학도, 법학도결국 타고 타고 올라가면 그 시작이 되는 무엇인가가 있다는 것이다. 게임 개발도 그러하다. 최초의 게임은 픽셀과 같은 도트 게임이었고 이 게임이 2D로 진화하고그것이 3D가 되어 지금에 이른 것은 어찌 보면 자연적인 흐름일지 모른다. 다만 자연적인 흐름이 이렇다 하여 가장 최신의 기술에만 목메어있다면 이는 결국 수박의 겉핥기에 불과한 처사일것이라 생각된다. (3D도 픽셀로 이뤄졌다는 것을 안다면 말이다.!)
요즘과 같이 화려한 그래픽에 비하면 옛날에 나온, 적어도 20~30 년 전에 나온 게임들은 한없이 투박해 보이는 것은 부정할 수 없는 사실이다. 하지만 그 당시 개발자들이 생각했던 아이디어와 창의력은 지금 못지않게 훨씬 다채롭고 독창적이며 기발한 것들이많다.
좋은 개발자가 되기 위해서는 둠의 핵심 개발자들처럼 하루아침에 궁극의 창의력을 뚝딱 발휘할 수 있어야 할지 모른다. 만약 이런 능력을 가졌다면 단시간에 최고의 개발자로써 인정받게 되는 것은 따놓은 당상일 것이다. 하지만 대부분의 개발자(필자를 포함한)들은 그렇지 못한다. 그렇기에 우리는 그들이 남겼던 흔적들을 자세히곱씹으며 그들이 했던 일들을 따라 하고 몸으로 체득하여 습관화해야 한다. 필자가 나름 이 필드에 오랫동안있어보니 이 필드도 넘사벽인 인재가 있긴 하지만 꾸준한 노력으로 그와 비슷한 능력까지 끌어올린 사람들을 여럿 보았다. 즉 노력을 하면 적어도 용은 못 그려도 이무기 정도는 그릴 수 있다는 것이다.
개발자라는 직업은 특히, 게임 개발자라는 직업은 어찌 보면 종합 예술에해당하는 직업이다. 사용자들의 재미를 이해하고 그들의 피드백을 적극 수용하여 우리가 만든 세계에 그들의마음과 즐거움을 녹여내야 하므로 이것이 예술이 아니라면 무엇이겠는가?
그렇기에 만약 게임을 개발해본 경험이 없는 개발자라면 간단한 토이 프로젝트로라도 갤러그 하나를 만들어보길 권한다. 갤러그 게임이 단순해 보이지만 그 속에 숨어있는 철학과 아이디어는 과히 엄청나다. 그렇기에 갤러그를 만든 후의 본인을 돌아보면 확실히 갤러그를 만들기 전의 자신과 많은 면에서 달라졌다는 것을알게 될 것이다.
이번에 리뷰한 둠은 게임사에 획을 그은 그 뿌리를 파악하기에 아주 좋은 '책'임에 틀림없다.