『IT EXPERT, 3D 게임 프로그래밍(개정판)』 저자 김용준
이번 개정판의 머리말에서도 언급했었지만, 개정판을 내게 된 것은 자신과의 약속 때문이었습니다. 1판 서문에서 "필자의 소박한 바람은 본서의 개정 증보판을 내는 것입니다. 대부분의 국내서적이 개정판을 내지 못하고 잠깐 동안 출현했다가 사라져버리게 된 경우가 많은데…"라고 언급했고, 그 약속을 꼭 지키고 싶었습니다. 2003년에 나온 책의 생명주기가 벌써 끝났어야 하는 시점인데도 불구하고 꾸준히 독자들의 사랑을 받고 있었기 때문에 필자로서는 그 약속을 반드시 지켜야만 한다는 사명감을 가지고 있었던 것도 사실입니다.
하지만, 본래 이 책이 기획될때는 DX10기반이었습니다. 그러나, 집필이 진행되는 시점에서도 DX10은 뜰 기미가 보이지 않는 것입니다. DX10의 치명적인 약점인 VISTA 문제 때문이었습니다. 결국 집필된 전체원고를 처음부터 다시 재설정하는 작업이 이루어졌고, 결과적으로는 기존 책에 대한 보완 및 개정을 하는 방향으로 가닥을 잡게 되었습니다.
책을 보완하게 된 필자로서는 다행이겠지만 DX10과 64비트로의 전환이 채 이루어지지 않은 시점에서 2010년을 맞이했다는 것은 개인적으로 상당히 우려하는 부분입니다. DX10과 DX11에서 선보인 혁신적인 내용들을 제대로 사용할 수 없다는 것은 기술발전에 있어서 상당한 저해요인이기 때문입니다. DX11의 compute shader는 nvidia의 CUDA나 OpenGL 진영의 OpenCL로도 충분히 구현가능하긴 합니다만, DX11이라는 일관된 인터페이스를 사용할 수 없다는 사실은 솔직히 안타까운 마음입니다.
책을 집필하면서 가장 주안점을 둔 부분은 기존의 내용중에서 잘못된 부분을 바로잡고, 1판에서 제대로 다루지 못했던 부분들을 소개하는 것이었습니다. 특히, CD롬에 배포되는 소스는 그 자체로 매체의 특성상 업그레이드가 불가능하지만, 이번에는 다운로드로 제공하는 방식을 취함으로써 필자가 수시로 버그를 수정할 수 있도록 제공할 예정입니다.
1판과 비교해서 BSP를 언급한 것은 필요불가결한 선택이었습니다. 1판 서문에서 밝혔든 sprit3d.net을 통해서 이미 훌륭한 BSP+Portal+PVS문서가 웹에서 배포되는 시점이었기 때문에 이에 대한 언급을 제외한 것이었지만, 현재로서는 해당 문서를 구하는 것이 어렵기 때문에 최소한의 내용이나마 언급을 한 것입니다. 하지만 Portal과 PVS를 제대로 언급하지 못한 것은 역시 아쉬움으로 남습니다. 독자들께서 필자의 게으름때문이라고 꾸중하신다면 달게 받겠습니다.
이번에 가장 심혈을 기울인 것은 셰이더 프로그래밍 부분입니다. 필자가 설명할 수 있는 수준내에서 최선을 다해서 알기 쉽게 집필하려고 노력하였습니다. 때문에 DX9에서의 직접적인 프로그래밍보다 셰이더 자체에 집중할 수 있도록 렌더몽키라는 전용 툴을 사용해서 내용을 설명한 것입니다.
책을 집필하면서 필자가 느낀 가장 큰 고민은 개발환경의 변화입니다. 과거에는 PC기반의 Windows운영체제에서 DX를 사용하면 모든 고민이 해결되는 시절이었습니다. 하지만, 최근의 스마트폰과 소셜 네트워킹 게임(SNG)이라는 환경은 이러한 플랫폼과 상당한 괴리가 있습니다. 스마트포느이 절대강자로 군림중인 iPhone은 MAC에 기반한 OS를 사용하며 Objective-C와 OpenGL이 기반입니다. 소셜 네트워킹 게임은 상당히 많은 부분에서 웹과 Flash가 기반인 경우가 많습니다. 전통적인 게임개발과 상당히 다른 환경에서 개발이 진행되기 때문에 상당수의 개발자들이 적지않게 당황하고 있을 것으로 압니다.
하지만, DOS에서 Windows로 바뀌고, 2D에서 3D로 바뀌었듯, 패키지 게임은 온라인 게임으로 진화했습니다. 지금 우리가 즐기는 게임의 주류가 PC가 아닌 스마트폰이나 iPad로 넘어간다고 해도 이상할 것이 없습니다. 마찬가지로 MMORPG나 캐쥬얼 게임들이 SNG로 변태된다고 하더라도 당연한 순리일 수 있습니다.
개발자가 개발자답게 살아가기 위해서는 자신의 기술에 신념뿐만이 아니라 변화에 대비하기 위한 끊임없는 단련과 노력이 함께 해야 한다고 생각합니다. 그것이 급변하는 새로운 시장에서 개발자로서 호흡하고 살아갈 수 있는 방법이 아닐까요?