생생한 게임 개발에 꼭 필요한 기본 물리
현실감을 얼마나 자연스럽게 살리는가는 게임을 만들 때 아주 중요한 문제이며, 게임의 매력을 좌우한다. 실세계를 면밀히 관찰하고 분석해야, 특히 게임 장면마다 눈길을 끄는 개체들을 정확히 이해해야 생생한 움직임을 구현할 수 있다. 하지만 이 일은 결코 쉽지 않다. 그렇다고 해답이 없는 것은 아니다. 사물의 움직임을 체계적으로 정리한 역학을 활용하면 된다. 이 책은 게임을 개발할 때 자주 접하는 물리학의 개념과 원리를 소개하고, 게임이나 시뮬레이션에 어떻게
- 저자 : 데이비드 버그
- 번역 : 황혁기
- 출간 : 2002-02-22
게임 개발자에게 있어 사실적이고 생동감 있는 게임 환경을 구성하고 그 속에 살아있는 듯한 캐릭터를 묘사하는 것은 매우 중요한 목표이다. 그래픽 아티스트 손에서 아무리 아름다운 환경과 멋있는 캐릭터가 만들어졌다 하더라도, 게임의 상황에 따른 생생하고 사실적인 움직임을 보여주지 못하면 사용자는 순식간에 몰입감을 상실하고 말 것이다.
게임 속의 다양한 개체가 사실적이면서도 상황에 따라 인터렉티브하게 움직이도록 구현하는 것은 전적으로 게임 프로그래머의 손에 달렸다. 하지만 이러한 사실적인 움직임을 인터렉티브하게 만들어 내기 위해서는 물리 역학을 컴퓨터로 시뮬레이션하는 기법이 필요하다. 흔히 비행 시뮬레이션 게임이나 레이싱 게임에나 이런 난해한 기법이 필요한 것으로 알고 있는데, 사용자의 시스템 사양이 높아짐에 따라 일반적인 3차원 액션 게임에서도 물리 역학의 응용이 예사로운 일이 되어가고 있다.
그러나 우리나라에는 본격적인 물리 역학을 응용한 게임이 매우 드물 뿐만 아니라, 이제야 겨우 본격적으로 3차원 게임이 선을 보이고 있는 실정이다. 과거 2D 게임의 시대에는 게임 프로그래머에게 딱히 수학이나 물리학이 필요하지 않았다. 사칙연산만 제대로 할 수 있으면 나머지 게임 프로그래밍의 다양한 기법을 익히는 데 부족함이 없었다. 하지만 이제는 사실적인 3차원 환경은 물론 생생한 물리 역학의 응용이 게임 프로그래밍의 기본이 되고 있는 실정이다.
그런 의미에서 한빛미디어에서 번역 출간한 『생생한 게임 개발에 꼭 필요한 기본 물리』는 가뭄에 단비 같은 매우 반가운 책이다. 원제가 『Physics for Game Developers』인 이 책은 유명한 IT 전문 서적 출판사인 오라일리에서 올해 초에 출간한 책으로 제목처럼 게임 개발자 특히 게임 프로그래머를 위한 물리 책이다. 게임 프로그래머에게 필요한 기본적인 물리 개념과 원리를 소개하고 게임에 물리를 응용하는 데 필요한 지식을 담고 있다.
특이하게도 이 책에는 요즘 프로그래밍 책 답지 않게 샘플 프로그램의 소스를 담은 CD가 포함되어 있지 않다. 그 이유는 저자가 서문에서 밝혔듯이 단순히 특정한 문제를 해결하기 위한 해결책으로 샘플 프로그램의 소스만 전달하는 책이 아니라, 독자가 물리의 기본 개념과 원리를 터득해서 실제로 부딪히는 다양한 문제에 적용할 수 있는 능력을 길러주고자 의도된 책이기 때문이다. 그런 이유에서인지 책에 실린 프로그램의 소스도 C++가 아닌 단순한 C로 작성되어서 문제의 본질에 좀더 쉽게 접근할 수 있도록 했다(물론 출판사의 홈페이지에서 샘플 프로그램의 소스를 다운로드받을 수 있다). 그리고 물리라는 어려운 주제를 담고 있는 책임에도 불구하고 물리학이나 기계공학 정도를 전공해야 볼 수 있는 책이 아니라 우리나라 고등학교 수준의 물리 지식과 수학 지식만 되새길 수 있다면 충분히 이해할 수 있을 정도로 쉽게 쓰여진 책이다.
이 책은 크게 두 부분으로 구성되어 있는데, 전반부는 물리 역학의 기본 이론을 바탕으로 포탄, 비행기, 선박, 자동차 등의 움직임을 역학적으로 기술할 수 있는 구체적인 이론을 설명하고, 후반부는 이 이론을 바탕으로 실제로 여러 가지 물리 시뮬레이션 프로그램을 구현하는 방법을 다루고 있다. 전반적으로 물리를 알기 쉽게 군더더기 없이 잘 설명하고 있다. 하지만 한가지 아쉬운 점이 있다면 쉬운 책을 지향하다 보니 자동차의 운동 역학에 대해서는 깊이 있게 다루지 않은 점이다. 오히려 자동차가 비행기에 비해 충돌검사도 까다롭고 역학 처리가 더 복잡하기 때문에 쉬운 책이라는 목표에서는 벗어나긴 하지만 자동차 레이싱 게임 개발에 관심 있는 이들에게는 좀 아쉬운 부분이다.
작은 아쉬움에도 불구하고 정말 다행스러운 점은 잘 번역된 책이 나왔다는 점이다. 컴퓨터 관련 서적의 번역이 종종 비전문가의 손에 의해 날림으로 번역되어서 독자의 원성을 사는 일이 흔한데, 이 책은 수리물리를 전공한 역자가 번역을 맡아서 생소한 전문 용어를 적절하게 잘 번역했고 문장도 매우 매끄러운 편이다. 그리고 원서를 단순히 그대로 번역하는 데 머무르지 않고 우리나라 실정에 맡게 부가적인 정보도 추가해서 오히려 원서보다 더 좋은 책이 된 것 같다. 이 책은 앞으로 물리학을 게임에 응용하려는 모든 현업 게임 프로그래머들은 물론 게임 프로그래머 지망생이 반드시 공부해야 하는 필독서가 될 것으로 보인다.