지난해 11월 오라일리에서는 『Physics for Game Developers』가 출간되었다. "오라일리에서 웬 물리책?" 이라는 독자들의 의구심과 미국에서의 뜨거운 인기는 국내에서도 그대로 반영되어 국내 수입과 동시에 재고부족이라는 돌발상황을 연출해낸 책이 바로 이 책이다. 한빛미디어 이비즈팀은 『Physics for Game Developers』의 번역서 『생생한 게임 개발에 꼭 필요한 기본 물리』의 출간을 앞두고 이 책을 번역해주신 역자 황혁기씨와 인터뷰를 하였다.
이비즈팀: 안녕하세요? 그동안 『Physics for Game Developers』를 번역하시느라 수고하셨습니다. 우선은 황혁기씨는 어떤 분이신지 궁금합니다. 한빛 독자님들께 간단하게 본인 소개를 부탁드립니다.
황혁기: 안녕하세요, 이렇게 웹에서도 뵙게 되어 기쁩니다. 제 학부 전공은 물리학이고, 수학적인 부분에 흥미를 느껴 대학원에서는 수학과에서 이론물리학을 전공 했습니다. 그리고 나서, 일반인에게는 웹의 탄생지로 잘 알려진
CERN(유럽입자물리학연구소) 실험그룹에 참여했죠. 입자물리학 실험에서는 가속기에서 나오는 데이터 양이 엄청 많기 때문에 수많은 물리학자들이 달려들어 실험 디자인에서 데이터 처리 및 분석까지 시뮬레이션을 포함한 여러 수준의 프로그램을 작성해야 합니다. 이런 경험을 바탕으로 지금은 바이오인포매틱스 분야에서 질병관련
SNP(Single Nucleotide Polymorphism) 분석을 위한 모델링 작업을 합니다. 개인적으로 프로그래밍을 처음 접한 것은 초등학교 5학년 말인데, SPC-1000에서 아스키 문자셋을 화면에 뿌려주는 간단한 베이직 프로그램을 보고 무척 신기하게 여겼죠. 그때 무턱대고 FOR문부터 공부한 기억이 납니다. 컴퓨터 게임도 비슷한 무렵에 빠졌는데, 당시에는 이른바 오락실 게임(지금의 "지능적인" 게임 환경에 비하면 단순하기 짝이 없는 게임)들 뿐이었죠.
이비즈팀: 이 책을 번역하시게 된 동기에 대해 여쭤보아도 되겠습니까?
황혁기: 오래 전 출간 예정이라는 이 책의 제목을 오라일리 카탈로그에서 보면서 제 경험과 관심사에 잘 맞는 책이라 유심히 봐두었던 기억이 납니다. 역시 오라일리라는 생각을 했었죠. 그때까지만 해도 흥미롭다고는 생각했지만 번역해보겠다는 생각은 하지 않았습니다. 하지만 막상 책이 나오고 보니, 독특하면서도 적절한 구성과 내용 때문에 국내 독자들에게도 소개하고 싶은 욕심이 생기더군요. 게임 개발자들이 주 독자층이긴 하지만 책의 특성상 그 활용 범위가 넓으리라 생각해 번역을 제안했습니다. 평소 번역에 관심이 많기도 했었죠. 영국에서 지낼 때 비전공자를 대상으로 한 알차고 다양한 수학이나 물리 분야 서적들을 직접 볼 때마다, 기회가 된다면 그런 책들을 잘 골라서 번역해서 국내에 소개하면 좋겠다는 막연한 생각을 하곤 했습니다. 시대가 변하는 것을 무시해서는 안되겠지만, 우리말이 계속 갈 곳을 잃는 것 같아 부족하나마 깔끔하면서도 자연스러운 우리말이 좀더 많이 사용되었으면 하는 기대감도 었었고요.
이비즈팀: 『Physics for Game Developers』의 번역서 제목은 『생생한 게임 개발에 꼭 필요한 기본 물리』입니다. 제목만 봐서는 이 책의 정확한 분야가 짐작이 가지 않는데요. 이 책의 분야는 어느쪽 입니까? 게임책인가요? 아니면 물리책?
황혁기: 기본적으로는 물리책이라고 봐야 할 것 같습니다. 일반적으로 기본 물리라고 하면 여러 가지 뜻으로 받아들여 지지만, 여기서 말하는 기본 물리는 기초적인 역학을 이야기합니다. 명확한 개념을 바탕으로 움직임의 패턴을 정리해놓은 역학을 고전역학이나 뉴튼역학이라고도 합니다. 여기서 다루는 수학적, 물리학적 개념과 방법은 그 자체만으로도 중요하지만, 물리학의 다른 주제를 이해하는 뿌리이기도 합니다. 그래서 대부분의 물리 책에서 처음부분을 차지하는 것이 바로 역학이죠. 물론 역학이 가장 직관적으로 받아들일 수 있는 주제이기도 하고요.
마찬가지로 게임 개발이나 기타 분야에 활용하기 위해 물리를 시작할 때도 역학부터 시작하는 것이 좋습니다. 특히 게임에서 실제감을 구현하는 작업은 주로 시각적인 부분인데 흔히 볼 수 있는 물체 각각의 움직임을 처리하는 일에서도 역학이 중심입니다. 책에서 예로 든 시스템은 게임이나 시뮬레이션에서 활용도를 높일 수 있도록 근본적인 관점에서 접근하였기 때문에 기초를 다지는데 좋습니다. 책 중간 중간에 나오는 수식 중 언뜻 보았을 때 아주 복잡해 보이는 것도 있기는 하지만, 사실 따지고 보면 그렇게 어렵지는 않습니다. 미적분 기본만 이해하면 충분한 수준이니 고등학교 인문계열 수학 정도만 익히면 쉽게 따라갈 수 있습니다. 그래도 혹시 어떤 식이 너무 어렵게 느껴진다면 수식 자체에 골몰하기보다는 먼저 그 수식이 어떤 상황에서 어떤 원리를 나타내는데 사용되는지 이해하는 것이 중요합니다. 그래야 실제 코드를 작성할 때도 무리가 없고요. 책의 구성을 보면 크게 기본 물리 정리, 실제 시스템에 적용, 시뮬레이터 구현의 세 부분으로 나눌 수 있어, 아주 짜임새 있다고 생각합니다.
다만, 개인적으로 아쉬운 것은 역학에 많이 치중했다는 점, 연습문제가 없다는 점입니다. 역학이 중요하긴 합니다만 게임의 현실감이나 정교함을 높일 때 역학이 아닌 물리의 다른 분야도 많이 사용되는데 말이죠. 그리고 연습문제가 있었다면 독자들의 이해에 더욱 도움이 되었으리란 아쉬움이 남는데요.
이비즈팀: 이 책이 꼭 필요한 독자들로는 어떤 사람들이 있습니까? 물리에 대한 기초지식이 없는 독자들도 이 책을 볼 수 있을까요? 반대로 컴퓨터 프로그래밍에 대해서는 전혀 모르지만 물리학을 재미있게 공부해보고 싶은 사람은 어떤가요?
황혁기: 우선, 학교에서 배운 역학이나 물리적 원리를 알아야 하는데도 먼 나라 이야기처럼 들리거나 겁부터 나는 게임 개발자, 애니메이션 제작자에게 정말 긴요한 책입니다. 놀이공원의 예라도 들어서 역학을 특별히 재미있게 설명하는 것은 아니지만, 개발자들이 필요한 핵심을 쉽게 파악할 수 있도록 쓴 책이라고 할 수 있죠. 너무 서두르지만 않으면 물리나 프로그래밍 기초는 약하지만 여기에 관심은 있는 독자들도 유용하게 볼 수 있는 책이라 생각됩니다. 물론 기초지식(특히, 수학적인 바탕)이 있다면 그만큼 익숙한 내용을 다루다 보니 훨씬 더 쉽게 느껴져 심리적으로는 도움이 되겠지만, 어떤 내용에 익숙하다는 것과 정말 그 내용을 잘 이해한다는 것은 원칙적으로 다른 문제입니다. 낯선 내용이라 할지라도 명확히 이해할 수 있거나, 익숙한 내용이라도 보면 볼수록 알쏭달쏭할 수도 있으니까요.
또, 물리를 배우면서 칠판 위에서만 춤추는 분필에 따분해진 독자들에게도 이 책의 프로그램 예제들은 재미를 더하는데 한 몫 할 것입니다. 동시에 정량적인 특성을 지닌 시스템을 구현한 프로그램의 기본 구조도 익힐 수 있고요. 다시 말해, 역학 분야가 아니면 직접 예제들을 적용하기 어렵지만 책에서 설명하는 프로그램 구성 원리나 수치 처리 문제를 이해하면 그 외에도 시뮬레이션이나 모델링이 필요한 여러 분야에 활용할 수 있습니다. 거꾸로 이야기하면, 내용이 쉽고 일반적이기 때문에 프로그래밍이나 시뮬레이션에 물리를 적용해본 경험이 어지간히 있는 독자들에게는 그저 그런 평범한 책으로 보일 수도 있습니다. 항상 어디서나 배울 점은 있게 마련이지만요.
이비즈팀: 이 책은 수입당시부터 독자들의 상당한 관심을 불러일으킨 책입니다. 이 책을 번역하시면서 아마도 가장 처음으로 이 책을 철저하게 독파하신 독자가 되었으리가 생각되는데요, 독자들의 흥미를 끌어모으는 이 책의 매력은 무엇이라고 생각하십니까?
황혁기: 무엇보다도 제목처럼 게임의 매력을 높이는 강력한 방법 한 가지를 제시한다는 데 있을 겁니다. 특히 실제감을 살리기 위해 알아야 하는 이론적인 부분과 실제 상황에서 부딪치는 문제점들을 나란히 설명하고 있다는 점이 가장 큰 장점이라고 볼 수 있습니다. 지금까지 상황을 미루어 볼 때 솔직히 게임 개발자들에게 추천할 만한 물리학 책을 찾아보기가 어려웠습니다. 물론 물리를 다루고 있는 책들이 많기는 하지만, 게임이나 애니메이션을 만드는데 활용하기 위한 책은 찾아보기 어렵더군요. 대부분 너무 쉽거나 아니면 너무 어렵게 쓰여져 있어서요. 게다가 수학과 물리는 재미없고 어렵다는 고정관념이 개발자들에게 더 부담을 주었을 것 같다는 생각도 들구요.
이비즈팀: 물리라는 학문은 실제로는 일상생활과 밀접한 관련을 맺고 있지만 한편으로는 쉽게 간과해버리는 과목 중 하나입니다. 게임에서도 물리가 빈번하게 쓰일 것으로 생각되는데요. 이 책의 제목처럼 게임에서 생생한 현장감을 연출하기 위해 사용되는 물리에는 어떤 것이 있습니까? 여기에 꼭 물리학의 법칙을 적용해야 게임이 더 현실감있게 느껴지나요? 그리고 게임에서 사용되는 물리엔진을 이해하는데 있어 꼭 알고 있어야 할 기본적인 물리학 지식에는 어떤 것이 있습니까?
황혁기: 차근차근 말씀드리죠. 게임에서 사용되는 물리라… 글쎄요, 사실 물리 전 분야라 해야 하지 않을까요? :) 실은 물리학적 내용 중 무엇을 어떻게 이용할 것인가를 결정짓는 요소는 어떤 종류의 실제감을 어떤 요소를 중심으로 구현할 것인가에 따라 달라질 것입니다. 이중 일상 경험과 밀접한 부분은 역학에서 많이 다루는데요, 우리가 평소 보고 들은 기억은 꼭 의식적이 아니더라도 어딘가 자리잡게 마련이라 게임의 실제감을 자연스럽게 살리는 문제가 중요합니다. 아무리 역학이 직관적이어서 누구나 어느 정도는 알게 모르게 역학을 이용할 수 있다 하더라도, 정확한 이해 없이 눈에 보이는 대로 주먹구구식으로 시뮬레이션을 구현했다면 사용자는 어떤 식으로든 허술함이나 어색함을 느낄 것입니다. 역학적인 현실감을 살릴 때 가장 결정적인 역할을 하는 부분은 결국 강체의 운동을 구현하는 것입니다. 물론 선운동과 회전운동, 충돌을 다 포함해서죠. 그런데 강체의 움직임을 실제감 있게 다루려면 이 책에서 소개한 내용을 거의 다 소화해야 합니다. 이 말은 역학의 기본 사항은 다 파악하고 있어야 한다는 셈이죠. 이론적인 부분만으로 압축하면 이 책의 1장에서 5장에 해당하는 내용인데요, 최소 필수 사항이라고 해야 할까요? 물리량 사이의 관계를 이용해 물체의 위치, 속도, 가속도, 힘, 모멘트(토크) 등을 계산하고, 충돌을 처리하는 등 운동 상태(변화)를 파악하는데 반드시 알아야 하는 내용입니다. 특히 얼마나 실제에 가깝게 만들 수 있느냐는 마찰이나 저항 요소를 얼마나 적절히 처리하냐에 따라 확연히 달라질 것입니다.
또한 사람의 가시영역을 벗어나는 현상도 실제처럼 만들려면 (예를 들면 최첨단 장비나 기술을 동원한다든가, 지구는 물론 우주 전체를 무대로 하는 SF 게임) 역학 외에도 전자기학(광학 포함), 상대성이론, 양자역학까지 이용해야 할 지 모릅니다.
여기까지 이야기를 들으시고 버겁다고 느끼시는 분들도 있겠지만 실제로 물리가 그만큼 체계적인 분야이기도 하고 결국 현실감을 제대로 살린다는 것(물리만 적절히 이용하면 된다고 말이야 간단하지만) 실상 쉽지만은 않은 문제이기 때문이죠. 이런 문제점들을 고려해 볼 때 이 책은 물리로 통하는 길을 시원스럽게 출발할 수 있도록 도와주는 안내판 역할을 충실히 해낼 수 있을 것입니다.
물리 엔진에서 역시 위에 말씀드린 것처럼 강체 역학이 관건이라, 이 책을 기준으로 하면 전체 내용이 다 필요한 셈이지만, 강체 문제의 수학적, 물리적 복잡성을 고려한다면 극히 기본적인 내용일 뿐입니다. 이 책을 끝까지 차근차근 읽어가면 물리에 대한 자신감이 생길텐데요, 본격적인 문제는 이때부터입니다. 실제로는 해결하기 까다로운 문제들의 숲으로 들어가는 셈이죠.
그리고 물리엔진에서 중요한 또 하나의 문제는 것은 충돌검사입니다. 책에서도 나오지만, 충돌 처리는 충돌검사와 충돌반응으로 나눌 수 있습니다. 충돌검사가 물리와는 직접적인 관련이 없는 계산기하 부분이지만 물리 엔진에서 아주 중요한 역할을 합니다. 충돌검사 과정을 먼저 거쳐야 충돌 반응을 처리할 수 있기 때문이죠.
이비즈팀: 물리 이야기를 계속 듣다보니 이 책만으로는 충분하지 않다는 생각이 듭니다. 게임 개발자들 중에서 게임에 현실감을 주기위해 본격적으로 물리를 공부해보고 싶은 사람에게 추천하시고 싶은 물리학 도서로는 어떤 것이 있습니까?
황혁기: 그런 분들은 이 책과 함께 소위 "일반물리학" 교재로 사용하는 책들을 함께 보시면 사이좋게 보완이 되리라 생각됩니다. 물리학과에서 1학년들을 위해 전통적으로 선택하는 책으로
『Fundamentals of Physics, Extended』(D. Halliday, R. Resnick, J. Walker 저, 6th Edition, John Wiley & Sons, 2000)란 책이 있는데 일반물리학의 바이블로 통합니다. 이 책은 지난 1월 국내 여러 학교에서 모여서 번역을 하였고
『일반물리학(개정 6판)』 (고려대학교 외 역, 범한서적, 2002)이라는 번역본이 시중에 나와 있습니다. 개인적으로 요즘 구하기는 좀 어려울 것 같지만 Halliday 책보다는 응용 예제와 설명이 좀더 많이 있는 『Physics for Scientists and Engineers (Extended)』(P. Fishbane, S. Gasiorowicz, S. Thornton 저, 2nd Edition, Prentice Hall International, 1996)를 권해드리고 싶습니다(비슷하거나 같은 제목이 많으므로 저자와 출판사에 주의하시길…). 일반 물리 책들은 나름대로의 장점이 있으니까 직접 내용을 보시고 본인의 필요에 맞은 것을 고르는 것도 좋은 방법이라고 생각됩니다.
혹시 좀더 깊이 있는 도서를 원하신다면 『Feynman Lectures on Physics (3 volumes)』 (R. Feynman, R. Leighton, M. Sands 저, Addison-Wesley, 1994)와 국내서로는 『새대학물리(I, II)』(서울대학교물리교재편찬위원회 저, 교문사, 1998)가 좋겠습니다. 전공입문 교재를 활용하시기 부담스러우신 분들은 『생생한 게임 개발에 꼭 필요한 기본 물리』부록의 리소스를 참고하시고요.
좀 급하신 분들께는 친숙한 예를 중심으로 알기 쉽게 설명해놓은
『How Things Work: The Physics of Everyday Life』(L. Bloomfield 저, 2nd Edition, John Wiley & Sons, 2000)를 추천합니다. 1판은
『알기쉬운 생활 속의 물리』(물리교재편찬위원회 역, 한승, 2000)라는 제목의 번역서가 나와 있어 말씀드린 리소스 목록에도 올려놓았습니다.
이런 책들을 평소에 틈틈이 보면서 역학을 포함한 물리나 공학적 원리를 미리 익혀두시면 의외로 많은 도움이 되리라 생각됩니다. 실제로도 복잡한 문제를 해결해야 하는 컴퓨터 과학자들이 물리를 잘 몰라 어려움을 겪었다는 이야기를 어떤 물리학자의 경험담에서 읽은 기억이 납니다. 너무 쉬운 예라 극단적이기는 하지만 에너지보존법칙에 맞지 않는 시스템을 시뮬레이션하려고 한다면 아무리 애를 써도 이상한 결과가 나오겠죠? (그래도 게임의 세계는 가상이라 이해가 되겠지만 실제 세계에서 물리 법칙을 무시할 경우 큰 일이 많이 나겠죠.)
이비즈팀: 지금까지 인터뷰에 응해주신 황혁기님께 감사의 말씀 드립니다. 마지막으로 여담하나만 더 여쭤 보겠습니다. 이 책에서도 당구공 충돌을 다루고 있던데... 당구와 물리의 상관성은 어느 정도나 됩니까?
황혁기: 글쎄요… 물리 선생님들과 학생들이 각기 팀을 만들어 당구시합을 하면 과연 어느 쪽이 이길까요? 아무쪼록 독자님들께서 이 책을 발판삼아 실제 경험을 많이 많이 쌓으시고 과학적 개념과 원리를 이용해 게임에 아이디어와 생명력을 불어넣는 일에 모두 최고가 되면 좋겠습니다. 감사합니다.
인터뷰에 응해주셔서 감사합니다. - 이비즈팀
참고사이트