주제 : 게임 수학을 정리하며. 지난 3년간의 회고
강연자 : 이득우 / 교수
분야 : 엔진, 프로그래밍
시간 : 2022.11.18(금) 16:00 ~ 16:50
요약 : 정규교육과정에는 없지만 게임 개발에 사용되는 게임 수학을 정리하면서 좌충우돌한 개인 경험을 공유하고, 게임 제작의 기초를 탄탄하게 다지기 위해 필요한 내용에 대한 개인적인 생각을 공유합니다.
■ 수학 배워서 어디에 쓰냐고요? 게임 개발하는데 씁니다
한때 인터넷을 달군 밈이 있다. 커서 게임 만들 거라서 공부할 필요 없다는 밈이다. 개발자들이 들으면 이것만큼 기가 차는 일이 또 없다. 수포자 역시 마찬가지다. 수학 배워서 어디에 쓰느냐고 물으면 개발자들은 말한다. 게임 개발하는 데 쓴다고. 다만, 여기에는 한 가지 오류가 있다. 현행 교육과정에서 쓰이는 고등 수학, 미적분이 정말로 게임 개발에 온전히 활용되느냐에 대한 의문이다.
청강대 이득우 교수가 '이득우의 게임 수학'을 집필한 이유가 여기에 있다. 이득우 교수는 "한국의 수학 교육은 엄밀히 말해서 게임 제작과는 큰 관련이 없다"며, 대부분은 입시에 특화되어 있다고 설명했다. 게임을 개발하는 데 있어서 수학은 필수라고 했건만, 결국 현행 교육과정에서 쓰이는 수학이 게임에 쓰이지 않는다면 개발자들은 어떻게, 어떤 수학을 배워야 할까. 이에 이득우 대표가 나섰다. 그 역시도 한 명의 개발자로 수학과 관련해서 '마음의 빚'이 있었다.
이에 그는 정말 게임 개발에 쓰이는 수학 교재를 집필하게 됐다. 원래는 책을 집필할 생각이 없었지만, 아무리 기다려도 그가 원하는 그런 방식의 교재가 나오지 않게 되자 결국 그가 나선 것이다. 그가 대상으로 한 사람은 고1 수준의 수학 능력을 가진 수포자(하지만 배우려는 열정이 있는 사람)였다. 그래야만 정말 그가 집필한 교재가 도움되는지를 알 수 있었다. 또한, 문제 풀이가 아닌 예제를 통해 게임 제작을 직접 하는 그런 방식을 목표로 했다.
처음에는 6개월이면 될 거로 생각했지만, 결국 집필을 시작한 지 3년이나 걸렸다. 물론, 그런 생각도 있었다. 세상에는 훌륭한 엔진이 많고 그 엔진들을 쓰면 간단한 코드로도 원하는 기능을 구현할 수 있다. 그런데 과연 이를 배울 필요가 있느냐는 것이다. 실제로 엔진까지 갈 것도 없이 DirectX와 OpenGL을 쓰면 많은 부분을 API나 GPU가 알아서 처리한다. 그럼에도 그는 학습을 위해 DirectX와 OpenGL, GPU라는 블랙박스를 없애고 모든 걸 직접 구현할 수 있도록 했다. 이른바 소프트 렌더러를 만드는 일이었다.
물론 굳이 지금 소프트 렌더러 예제를 만들 필요는 없다. 앞서 설명한 것처럼 좋은 엔진은 많다. 엔진을 만들 게 아니라면 몰라도 된다. 하지만 기계가 어떻게 동작하는지 알면 어떤 방식으로 써야 효과적인지 아는 것처럼 게임 개발 역시 엔진이 어떻게 동작하는지 알면 더욱 효과적일 건 자명했다.
바닥에서 시작하는 데에서 알 수 있듯이 API 없이 모든 걸 처음부터 하는 건 쉬운 일이 아니었다. 하나의 캐릭터를 그리는데 점을 선으로, 선을 삼각형으로, 삼각형을 다시 메시로, 메시를 이용해 계층구조를 만들고 최종적으로 리깅까지 하는 복잡한 단계별 작업이 필요했다.
그렇게 원하는 캐릭터를 만들고 교재에 필요한 예제를 만든 이득우 교수지만, 그걸로 끝이 아니었다. 다음으로 불필요한 기능을 과감하게 쥐어짜는 일이 남아있었다. 그렇게 이득우 교수는 단 한 번도 호출되지 않는 함수는 결국 교재에는 필요 없다고 생각해 과감하게 뺐다. 그 결과 39단계의 마일스톤이 남았다. 이득우 교수는 이렇게 남은 마일스톤을 하나씩 정리하며 교재에 필요한 예제를 만들었다. 게임 개발을 하는데 꼭 필요한 수학만 남은 셈이다.
그렇게 이득우 교수는 자신이 만든 책으로 학습을 시작했다. 걱정도 됐지만, 다행스럽게도 기우에 불과했다. 좋은 성과를 기록했고 수학 교재 베스트셀러가 됐을 뿐 아니라 소위 용책, 해골책이라고 불리우는 대한민국 게임 그래픽스 책 양대 산맥 중 하나인 해골책 저자의 추천사까지 받았다. 교수로서의 성취를 이룬 동시에 한 명의 개발자로서 나름의 성취를 이뤘다고 할 수 있었다.
게임 수학 교재를 집필하게 된 계기, 그리고 그 과정에서 그가 깨달은 성취에 대한 얘기를 끝마치며, 이득우 교수는 "게임 수학은 가상 세계 공간에서 발생하는 다양한 문제를 해결하는데 유용하게 쓰인다. 한편, 게임 수학은 이제 시작이다. 앞으로도 정리해야 할 기초 이론이 너무나도 많다"라며, 앞으로 게임 산업 육성을 위해서라도 산학계가 힘을 모아서 게임 산업에 특화된 수학 알고리즘 커리큘럼을 만들기를 희망한다며, 교육자다운 조언으로 강연을 끝마쳤다.