50회 - 퀘스트 엔진(2)
두 사람은 게임 엔진이 담긴 하드디스크를 들고 오랜만에 ‘게임 엔진 분석과 응용’ 강의실에 갔다. 조교 박태권이 책상에 박스를 놓고 과제물을 받고 있었다. 박스에는 학생들이 제출한 디스켓들이 잔뜩 담겨 있었다.
“안녕하세요, 선배님.”
황제국이 박태권을 보고 반갑게 인사했다. 이진수도 옆에서 꾸벅 고개를 숙였다.
“오! 제국이, 바이너리! 오랜만이네. 수업도 다 빠지고. 그동안 바빴나 봐?”
“진수 선배님이랑 이거 만드느라구요.”
약간 서운한 티를 내는 박태권에게 황제국은 웃으며 하드디스크를 내밀었다. 박태권은 포스트잇이 붙은 하드디스크를 받고 황당한 눈빛으로 두 사람을 바라봤다.
“이야~~, 역시 두 사람은 스케일부터가 다르네. 다른 애들은 많아야 디스크 서너 장인데, 응? 아주 그냥 하드디스크를 들고 왔네? 허허허허.”
“게임 엔진만 있는 게 아니라 테스트용 3D 데이터가 많아서요. 둠 엔진이야 게임이 이미 있으니까 상관없지만, 저희가 만든 엔진은 아직 이걸로 완성한 게임이 없으니까요.”
“아, 맞다. 너희 아예 게임 엔진을 새로 만든다고 했었지? 그래그래, 기억난다. 나도 참. 애들이 이걸로 내기도 하고 그런데 그걸 까먹었네.”
“내기요? 무슨 내기요?”
“츠으윽···!”
내기라는 말에 황제국이 물었다. 이진수도 이상한 기운을 감지했는지 증기기관 소리를 냈다. 박태권이 움찔하며 대답했다.
“아~, 몰랐어? 하긴 요즘 수업을 안 들어와서 당연한가?”
“네, 계속 동방에만 있어서요. 요 며칠은 아예 동방에서 먹고 자면서 만들었어요.”
“그렇구나. 내기 뭐 별거 아닌데. 에이, 괜찮겠지. 애들이 너희가 진짜 게임 엔진을 만들 수 있나 아닌가 내기를 한 모양이더라구.”
“네? 그걸로 내기를요?”
“그래. 진수가 중간쯤부터 수업에 빠졌잖아? 전공 수업은 절대 안 빠지는 바이너리 안 나오지, 제국이 넌 그 전부터 안 나오고 했으니까. 게임 엔진 만든다고 큰소리쳐놓고 못 만들겠으니까 안 나오는 거라는 얘기가 좀 있었어.”
“와~, 모르는 사이에 우리 얘기 엄청 돌았나 보네요. 선배님은요? 선배님은 어디 거셨어요?”
“나? 무슨 소리야~??? 내가 그런 내기를 왜 해. 이렇게 만들어 올 게 뻔한데.”
“그냥 완성한다에 거시지 그러셨어요. 그럼 돈 좀 버셨을 텐데.”
“그러게, 역시 그럴 걸 그랬나? 흐흐흐.”
박태권이 능글맞게 웃었다. 마침 97학번 한 명이 과제를 내러 들어오다가 황제국과 이진수를 보고는 흠칫 놀랐다. 그는 박태권에게 과제만 제출하고 곧바로 사라졌다.
“흠, 보아하니 저 녀석은 너희가 실패한다에 걸었나 본데?”
“그랬으면 자업자득이죠.”
“그렇지. 그나저나 이 하드디스크에 든 게임 엔진으로 다음 게임 개발하는 거야?”
“네, 그렇게 하려구요. 사실 아직 게임 엔진도 완성 버전은 아니에요. 손 봐야 할 곳이 많아요.”
황제국은 잠시 박태권과 개발 중인 FPS 게임 얘기를 나눴다. 이진수는 긴장이 풀렸는지 옆에서 꾸벅꾸벅 졸았다. 황제국이 이야기를 마치고 그를 깨우고 나오는데 복도에서 이진수가 말했다.
“사, 사람들 얘기 신경 쓰지 마. 벼, 별거 아니야. 드득.”
“우리 엔진 가지고 내기한 거요? 괜찮아요. 좀 어이없긴 하지만요. 저보다 선배님은 괜찮으세요?”
황제국은 이진수가 신경 써주는 말에 겉으로 내색하진 않았지만 깜짝 놀랐다. 이진수는 고개를 끄덕였다.
“나? 난 이, 익숙해. 옛날부터. 다, 다른 사람한테 아무런 기대 안 해.”
황제국은 이진수의 과거를 잘 몰랐지만 어쩐지 알 것 같았다. 이진수는 좋은 의미든, 나쁜 의미든 과에서 항상 무성한 소문을 몰고 다니는 사람이다. 과 활동은 전혀 하지 않지만, 독보적인 능력과 더욱 독보적인 성격 때문에 사소한 행동에도 온갖 추측이 나돌았다.
거기에 고등학생 때 게임을 개발해 잡지에 나고, 오자마자 게임 개발 동아리를 만들더니 무려 이진수를 영입한 황제국 역시 그에 못지않은 관심을 받았다. 그런 두 사람이 뭉치자 뒷말이 나오는 것도 어쩌면 당연했다.
“대, 대신 내가 더 잘해야지. 그래야만 해. 그래야, 그래야 조용해져.”
이진수의 말에 황제국은 가만히 고개를 끄덕였다. 만약 게임에 관한 의견이나, 개발 방향에 대한 피드백, 혹은 코드에 관해 물었다면 황제국은 즉각 대답했을 것이다.
하지만 이진수보다 20년은 더 살아 본 황제국도 이런 문제에는 쉽게 말할 수가 없었다. 그동안 몰랐던, 남들과 조금 다르다는 이유로 이진수가 감당해 왔던 삶의 무게를 아주 조금 느낀 것 같았다. 황제국은 그와 함께 말없이 걷다가 매점을 발견하고 물었다.
“우유 드실래요?”
“좋지.”
두 사람은 동그란 단지 우유를 빨대로 쪽쪽 빨면서 동방으로 돌아왔다. 둘은 지저분해진 동방을 함께 청소하고 오랜만에 집으로 향했다.
과제 수거를 마친 박태권은 박스를 들고 이광철 교수실로 향했다.
“오~~, 드디어 왔다, 왔어!”
이광철 교수는 박태권이 들어오자 자리에서 벌떡 일어났다. 괴짜 교수로 소문난 그였지만 학생들의 성장을 보는 것이 무엇보다 큰 즐거움이라 과제 검사는 행복한 일이었다.
물론 그의 기대만큼 성장하지 못할 경우에는 가차 없이 C/D/F 학점이 떨어졌다. 열성적으로 과제를 살펴보는 만큼, 과제를 대충한 기색이 조금이라도 보이면 그 과제는 바로 쓰레기통 행이었다.
‘게임 엔진의 분석과 응용’ 강의를 개설한 첫해인 만큼, 학생들이 어떤 식으로 엔진을 개선했을지 잔뜩 기대하고 있었다. 이번 학기에는 특히 기대가 가는 학생이 무려 두 명이나 있었다.
그가 과제 박스를 열자마자 수많은 3.5인치 플로피디스크 틈에 놓인 하드디스크가 눈에 들어왔다. 누가 낸 과제인지 그는 직감했다. 하드디스크에 붙은 포스트잇을 본 이광철은 기묘한 표정을 지었다.
“이거이거, 우리 깜찍한 제국이랑 바이너리가 손을 잡고 만들었네. 둘이 만들었으니 두 배로 기뻐해야 하나? 아니면 살펴볼 엔진이 하나뿐이라 아쉬워해야 하나. 이거 참 알 수가 없네?”
이광철은 혼잣말인지 박태권에게 하는 말인지 헷갈리게 말했다. 단련된 대학원생 박태권은 이럴 때 가만히 있는 것이 가장 좋은 방법이라는 걸 알았다.
“하, 이거 너무 궁금한걸. 이봐, 태권아.”
“네, 교수님.”
“여기 딸기 케이크가 있어. 너가 진짜 좋아하고, 엄청 맛있는 딸기 케이크야.”
“네, 교수님.”
“그리고 그 옆에 뭔지 잘 모르는 여러가지 케이크가 있어. 딱 봐도 딸기 케이크가 제일 맛있어 보여. 넌 그럼 딸기 케이크를 제일 먼저 먹을래? 아니면 제일 나중에 먹을래?”
난데없는 교수의 질문에 박태권은 신중하게 생각하고 대답했다.
“저라면, 제일 먼저 먹겠습니다. 제일 맛있는 걸 아는데, 굳이 기다릴 필요 있을까요?”
“그렇지? 역시 뭘 좀 아네. 응! 뭘 좀 알아!”
이광철은 웃으면서 박태권의 어깨를 두드리고는 곧장 컴퓨터 케이스를 열었다. 그는 컴퓨터 케이스를 나사로 고정하는 법이 없었다. 박태권이 신속하게 황제국과 이진수의 하드디스크를 컴퓨터에 연결했다.
드득. 드드득.
이광철 교수가 게임 엔진 폴더에 접근하자 하드디스크를 읽는 소리가 들렸다. 그는 리드미 파일부터 열었다.
“야, 얘들 봐라. 엔진에 벌써 이름까지 붙였네? 퀘스트 엔진? 버전이 0.7이네?”
“아~, 제국이가 만든 게임 개발 동아리 이름이 ‘뉴퀘스트’라고 합니다. 게임 엔진 이름도 거기서 따온 거 같네요.”
“그래? 게임 개발 동아리를 만들었다고?”
“네.”
“근데 태권이 너는 어떻게 그렇게 잘 알아?”
“그게 말이죠, 교수님. 사실은······.”
박태권은 학기 초에 황제국이 행정실로 찾아와 동아리를 만들게 된 경위를 신나게 떠들었다. 황제국이 만든 <삼국지:공성전>과 게임 잡지 이야기도 빠뜨리지 않았다.
“아니, 그런 일이 있었어?”
“네, 교수님.”
“근데 왜 지금까지 나한테는 한 마디도 안 했어?”
“네?”
갑작스러운 위기에 박태권은 긴장했다. 대답할 말을 찾느라 그의 머리는 이진수보다 빠르게 돌아갔다.
“제국이가 만든 삼국지 게임, 저한테 있는데 가지고 올까요?”
“그런 게 있으면 혼자 즐기지 말고 빨리빨리 가져왔어야지. 얼른 가져와!”
“네, 교수님!”
이광철의 주의를 돌리는 데 성공한 박태권은 부리나케 교수실을 빠져나왔다. 그는 안도의 한숨을 내쉬며 랩실로 천천히 걸음을 옮겼다.
혼자 남은 이광철은 게임 엔진 소스 코드를 보기 전에 먼저 리드미에 적힌 대로 싱글 플레이 모드를 실행시켰다. 게임 엔진이 얼마나 훌륭한 지는 수만 줄의 소스 코드를 살펴보기보다 1분 동안 게임 엔진으로 만든 게임을 해보는 편이 나았다.
게임이 실행되자 캐릭터 선택 화면이 나왔다. 장건, 이록, 그리고 마적. 이렇게 세 명의 캐릭터가 초상화와 함께 걸려 있었다. 초상화는 물론 차현주가 그린 스케치였다.
“꽤나 본격적이네?”
이광철은 한 눈에도 주인공 같아 보이는, 카우보이모자를 쓴 장건을 선택했다. 그러자 다양한 표적이 걸린 사격장이 뜨고, 장건이 들고 있는 라이플이 보였다.
황제국은 과제로 제출하기 위해 프로토타입을 한 번 더 업그레이드했다. 이광철은 사격장에서 먼저 장건의 무기와 특수 능력을 익혔다. 총을 쏠 때마다 총 가운데 있는 커다란 실린더가 돌아가는 모션이 보였다.
“오호호!!!”
이광철은 라이플에 리볼버 권총과 같은 실린더를 장착한 상상력이 좋았다. 총을 쏠 때마다 빠르게 회전하는 실린더의 모션이 아주 멋져 보였기 때문이다.
그는 다양한 표적을 맞추면서 부드러운 움직임과 게임 그래픽, 광원 효과, 반응성, 타격감 등을 체크했다. 아직 텍스쳐를 제대로 입히지 않았고, 배경이 거의 없어 다소 썰렁했다. 하지만 이는 ‘디자인’의 문제였지 엔진의 문제가 아니었다.
그는 다음 단계인 기차 스테이지로 넘어갔다. 기차는 디자인을 좀 더 업그레이드해서 프로토타입을 할 때보다는 훨씬 그럴 듯해 보였다. 3개의 스테이지를 정신없이 클리어한 이광철은 홀린 듯이 처음으로 돌아가 일본군과 싸우고 또 싸웠다.
“미쳤네. 이건 그냥 미쳤어. 완전 미쳐 버린 거야! 하하하하하!!!!”
이광철은 미친 사람처럼 웃으며 총을 쏴댔다. 그는 사실 게임을 실행시키면서 두려움도 있었다. 너무 큰 기대를 해서 실망할까 봐 두려웠다.
그렇지만 퀘스트 엔진의 성능을 체험하는 순간, 그의 예상은 보기 좋게 무너졌다. 황제국과 이진수의 게임 엔진은 그의 기대치를 훨씬 뛰어넘었다.
그저 나무 막대기가 어설프게 뛰어다니고, 자유롭게 조작하면서 목적성을 가진 플레이가 가능한 수준만 되더라도 그는 기특하게 여겼을 것이다. 그런데 지금 그가 하고 있는 프로토타입은 3D 모델링이 제대로 되지 않았을 뿐, 모든 기능이 제대로 돌아가고 있었다.
“대체, 대체 뭘 어떻게 한 거야, 이 녀석들? 설마 외계인인가?”
싱글 플레이를 종료하고, 협곡 지형 데이터로 3D 렌더링 엔진 테스트를 확인한 이광철은 가슴이 두근거려 미칠 지경이었다. 이광철 그가 만든다고 해도 이보다 더 잘 만들 자신은 없었다. 그것이 솔직한 심정이었다.
그는 허겁지겁 게임 엔진의 소스 코드를 열어봤다. 황제국이 남겨 놓은 게임 엔진 시스템 설계에 관한 메모를 확인하고, 각각의 파트들을 미친 듯이 파헤쳤다.
코어 시스템과 메모리 제어 방식, 멀티 플랫폼을 염두에 둔 렌더링 엔진과 물리, 애니메이션 엔진까지 모든 시스템이 기능에 따라 체계적으로 모듈화 되어 있었다. 각종 기능을 코어 시스템이 뒷받침하면서, 오류가 발생해도 다운되지 않도록 제대로 조치를 취하고 있었다.
처음 기대와 불안을 동시에 품었던 이광철은 게임을 해보고는 흥분을 넘어 광분했고, 소스 코드를 확인하고는 경악과 공포를 느꼈다. 그는 아직 미완성인 퀘스트 엔진이 지금 상용화된 대다수의 FPS 게임 엔진보다 뛰어나다고 확신했다.
놀라운 점은 성능뿐만이 아니었다. 퀘스트 엔진은 모든 면에서 추후 확장성은 물론, FPS가 아니라 장르를 바꿀 경우까지 대비해서 설계되어 있었다. 무엇이든 필요한 기능은 새로운 기능 모듈을 만들어 붙이기만 하면 되었다.
이광철은 게임 엔진의 미래 지향적이면서도 안정적인 설계와 효율적인 코드에 넋을 잃었다. 퀘스트 엔진은 지금까지 그가 교수 생활하면서 느껴본 스릴 중 최고였다. 앞으로도 이를 능가하는 업적을 이룩할 제자는 없을 거라는 생각이 들었다.
복잡한 감정에 휩싸여 의자에 깊숙이 몸을 기대 앉아 있는데 노크 소리가 들렸다. 박태권이 문을 열고 들어왔다.
“교수님, 여기 <삼국지:공성전> 가져왔습니다. 랩실에서 나오는데 조영철 교수님이 다른 일을 시키셔서 그거 하다가 좀 늦었습니다.”
“어, 그래.”
이광철은 PC 게이머 번들 CD를 받아들고도 멍한 표정이었다. 그는 박태권에게 물었다.
“태권아.”
“예, 교수님.”
“제국이랑 진수 연락처 알지?”
“네, 그럼요. 알고 있습니다.”
“그럼 내일 둘이 나 좀 보자고 해. 시간은 아무 때나 상관 없으니까, 무슨 일이 있어도. 꼭!”