이책에서다루는내용
이책에서주로다룰내용은게임엔진기술과구조(아키텍처)다.즉,상용게임엔진을이루는여러하부시스템의바탕이되는이론뿐만아니라이를구현하는데필요한자료구조,알고리듬,소프트웨어인터페이스를이야기하면서이것들이게임엔진안에서하나로동작하는지볼것이다.게임엔진과게임의경계는다소불분명하다.이책에서는주로게임엔진자체에집중할텐데,여기에는여러가지로우레벨기반시스템및렌더링엔진,충돌시스템,물리시뮬레이션,캐릭터애니메이션등이포함되며,개인적으로게임플레이기반계층이라고부르는부분에대한심층적논의도포함된다.
이책의대상독자
이책은입문서이지만숙련된프로그래머라도많이다뤄보지않았을부분에대해유용한화두를제시한다.이전과마찬가지로풍부한참고문서와인용문을제공하기때문에특정게임개발과정에대해깊게공부하고싶은독자를위한단초가될수도있다.
지은이의말
오늘날의게임콘솔,모바일기기,개인용컴퓨터의핵심인컴퓨터하드웨어는병렬성(parallelism)을중요하게활용한다.이기기들의CPU와GPU의깊은안쪽에서는여러개의기능단위(funtionalunit)가동시에작동하며,분할정복(divide-and-conquer)기법을통해고성능연산을수행한다.병렬하드웨어가기존의단일스레드프로그램을빨리돌릴수있게해주지만,오늘날의연산플랫폼에서이미널리쓰이는하드웨어병렬성의이점을활용하려면프로그래머가병행소프트웨어를제대로짜야한다.
게임엔진아키텍처의초판에서는게임디자인의관점에서만병렬성과병행성을살짝언급했었다.주제에걸맞은심도깊은취급을하지못한것이다.3판에서는병행성과병렬성에관한완전히새로운장을추가함으로써비로소제대로다루게됐다.또한8장과16장은보강을통해병행프로그래밍기법들이게임엔진하부시스템과게임객체모델업데이트에어떻게적용되는지,그리고어떻게범용목적잡(job)시스템이게임엔진내병행성의잠재력을이끌어낼수있는지를알아볼것이다.
이미말했지만좋은게임프로그래머라면C++(그리고기타업계에서자주쓰이는여러언어들)에대한단단한실무지식을지녀야한다.프로그래머의고차원언어에대한지식은기반이되는소프트웨어와하드웨어에대한이해에바탕을둬야한다고생각한다.따라서3장을확장해컴퓨터하드웨어의기본지식,어셈블리언어,그리고운영체제커널에대해다뤘다.
게임엔진아키텍처3판에서는이전판에서다뤘던여러주제를보강했다.로컬및전역컴파일러최적화에대한내용이추가됐다.좀더폭넓은C++언어표준들이추가됐다.메모리캐싱과캐시일관성에관한내용은확장했다.애니메이션에관한장은말끔히다듬었다.그리고2판에서와마찬가지로저자와여러열성적인독자들에의해발견된오탈자를수정했다.게임엔진프로그래밍은상상하기힘들정도로넓고깊다.책한권에서전부다룰수없다.따라서이책의목적은여러분의주의를환기시키고더깊은지식을찾아떠날수있는발판이되는것이다.이책이흥미롭고다채로운게임엔진아키텍처의세계를탐험할때도움이되기를희망한다.
옮긴이의말
게임엔진아키텍처가최초로번역돼나온지벌써10년입니다.그동안여러가지일이있었고세상이크게변했습니다.콘솔세대가두번바뀌었고사람말을할줄아는AI가등장했습니다.3판을번역하며초판의내용을돌아봤는데세월을타촌스럽게느껴지는부분도다소있었지만(예를들면플레이스테이션3을최신이라고하는등)대부분은지금그대로적용할수있는것들이라놀랐습니다.분명많은것이변했는데왜그럴까요?핵심개념은크게변하지않은채응용법이더발전하고복잡해졌기때문이아닌가합니다.10년전의저는10년차게임프로그래머였는데20년차인지금과비교해볼때하는일에있어괄목할만한변화는없는것과비슷한맥락입니다.게임개발을위해배울지식과익혀야할기술은많고꾸준히나옵니다.그러나상당수는책에담으면너무빨리구닥다리가돼버리는것들입니다.게임엔진아키텍처는이해해야할핵심개념과바로쓸수있는지식의경계를잘타고있기에세월의영향을크게받지않은것같습니다.
3판은많은내용이추가됐습니다.병행프로그래밍과오디오두장이완전히새로들어갔습니다.병행프로그래밍은어렵고까다로운주제이지만따로공부하기쉽지않기때문에이책의내용정도면훌륭한입문자료가될것같습니다.오디오는평소에접하기힘든내용이라호기심을자극하는경험이될수있을것입니다.경우에따라서는지루한시간이될수도있겠지만사람에따라다르겠죠.번역하는입장에서는매우힘들었습니다만다이해하지않아도한번쯤보시면재미있습니다.그외기존부분에서시대에맞게갱신한내용들도많습니다.
초판번역후너무힘들었던기억덕에다시는번역을하지않으려했는데10년은많은것을잊게해주는시간인듯합니다.번역을제의받았을때거절하지못했습니다.그러나다음판이나오게된다면아마AI가번역하지않을까요?초판도두꺼웠는데3판은훨씬더두꺼워졌습니다.훌륭한선생님의강의를더많이배울수있어서다행입니다.이책을통해훌륭한게임이더많이나올수있길바랍니다.