게임 프로그래머 수학 인터뷰

“내적이 무엇인지 설명해 보세요(What is dot product?)”

제가 베를린의 한 게임 개발사에서 일할 때 프로그래머 면접에 인터뷰어(면접관)로 들어간 적이 있습니다. 그 때 함께 들어갔던 동료 시니어 프로그래머가 인터뷰이(면접 응시자)에게 특유의 영국 발음으로 이 질문을 던졌을 때, 바로 대답을 하지 못하고 난감해 하던 모습이 기억납니다.

매우 긴장한 탓이기도 했겠지만, 어쨌건 게임 프로그래머에게 수학이란 때로는 두려움의 대상이기도 하고 어떤 경우에는 밀린 숙제 같은 것이기도 합니다. 

게임 프로그래머는 어느 정도로 수학을 잘 해야 할까요?

그러면 게임 프로그래머는 어느 정도로 수학을 잘 해야 할까요?

결론부터 말씀드리자면, 수학을 잘 하면 좋겠지만 모두가 높은 수준까지 알고 있어야 할 필요는 없습니다. 사실 수학 뿐 아니라 물리 등 게임을 개발하기 위해 알고 있으면 좋은 분야는 많습니다. 솔직히 말해서 영어는 안 중요할까요? 뭐든 잘 하면 다 도움이 되는 법입니다. 하지만 모든 게임 프로그래머에게 수준 높은 수학 지식이 요구되는 것은 아닙니다. 

역할에 따라 요구되는 수학의 수준도 다르다

게임 플레이 프로그래머에게 요구되는 수학과 엔진 프로그래머에게 요구되는 수학의 기준은 분명히 다릅니다. 사실 프로그래머는 아니지만 테크니컬 아티스트들이 요즘은 웬만한 프로그래머들보다 선형대수에 대해서 더 많이 알고 있습니다. 통계쪽은 어떤가요? 게임 밸런스 디자이너나 유료화 모델 전문가(Monetization expert)가 아마 더 능숙할 것입니다.

이렇게 게임 프로그래머들이 맡고 있는 업무에 따라 수학에 대한 자세도 달라질 수밖에 없다고는 하지만, 그래도 게임 개발을 하려면 최소한의 수학적 지식과 문제 해결 능력을 키우는 것이 아무래도 좋을 것입니다. 

고등학교 수학이면 될까?

1998년이었던 것으로 기억합니다. 개인적으로 제가 잘 아는 게임 엔진 프로그래머 한 분이 (우리가 고등학교 다닐 때 보던) ‘해법 수학’이라는 책을 모니터 옆에 놓고 수시로 들춰 보던 것을 목격한 적이 있습니다. 그 분은 소위 말하는 1세대 게임 엔진 프로그래머였고(이 분이 나중에 ‘뮤’라는 히트 게임을 만들었죠), 당시에는 게임 수학은 커녕 게임 프로그래밍에 관한 책도 별로 없던 시절이라 정말 눈물겹게 혼자 힘으로 필요한 공부를 해야만 했습니다.

하지만 지금은 인터넷에 관련 자료도 엄청나게 많고 책이며 동영상 강의며 마음만 먹으면 게임 수학을 공부할 수 있는 좋은 기회가 얼마든지 있습니다. 

중요한 것은 정말 수학이 나에게 필요한 지에 대한 고민과, 다음으로는 자신에게 맞는 공부법을 찾아서 매일 조금씩 배워 나가는 일일 것입니다. 이와 관련해서, 현재 가장 좋다고 평가 받고 있는, 대표적인 게임 수학 관련 책과 강의를 몇 개 소개해 드리고자 합니다.

이득우의 게임 수학 (책)

유니티와 엔리얼 엔진 전문가이자 교육자로 유명한 이득우 님의 최신 게임 수학책입니다. 39가지의 실시간 랜더링 게임 예제를 만들어 나가면서 게임 수학을 배울 수 있게 되어 있어서 수학 따로 게임 따로라는 느낌이 아니라 이 둘이 어떻게 연결되어 있는지를 배워 나갈 수 있게 쓰여진 책입니다. 알찬 예제를 만들어 가면서 수학을 몸으로 익힐 수 있게 되어 있는 방식이라 배우는 과정에서의 성취감이 책을 끝까지 읽을 수 있게 해 줍니다. (온라인 서점 가기 – 클릭)

소프트웨어 공학용 수학 (동영상 강의)

게임 프로그래머이자 교육자로 잘 알려진 김포프님의 수학 강의입니다. 순수 학문으로서의 수학이 아닌, 소프트웨어 엔지니어들이 실제 업무 환경에서 부딪치는 문제를 해결하는데 직접적으로 도움이 되는 수학을 다루고 있습니다. 수학적 문제 해결 능력이 절실한 게임 프로그래머라면 앞에서 소개한 이득우님의 책과 더불어 함께 수강해볼 만한 좋은 강의라고 하겠습니다. (강의 사이트 가기 – 클릭)

게임 수학: 게임 개발자가 꼭 알아야 할 핵심 수학 이론

이 강의는 원래 영어로 된 강의였는데, 한글 자막이 최근에 제공되기 시작했습니다. 게임 개발자가 알아야 할 가장 핵심적인 수학들을 집중적으로 다루고 있는 강의이긴 하지만 기초부터 설명하고 있기 때문에 수학에 자신이 없는 분들이라면 이 강의로 시작해 보는 것도 좋을 듯합니다. 사칙연산으로부터 벡터 공간, 내적과 외적, 삼각법 등 게임 개발에 필수적인 수학은 대부분 다루고 있다고 보시면 되겠습니다. (강의 사이트 가기 – 클릭)

추가로 읽어 보면 좋은 블로그 글

개발자로서 영어 독해 능력을 어떻게 향상시킬 것인가?

더 공부할 자료 - 개발 능력 다양화를 위한 학습의 필요성

유니티 엔진의 대안으로서, 인디 개발자들에게 선풍적인 인기를 끌고 있는 엔진이 바로 고도 엔진입니다. 혹시 고도 엔진을 배워 보려고 하신다면, 다음의 온라인 강의를 체크해 보시기 바랍니다.

초보자를 위한 고도엔진 게임 개발 입문