102. 마법사(Magician)
마셜이 상혁의 도움(주로 금전적인)을 받아 한참 렌더링 센터를 만들고 있던 시기.
계절은 완연한 여름으로 접어들어 이미 8월이 되어 있었다.
그 와중에 민준은 갑자기 PS3로 출시 플랫폼이 결정 되면서 자신이 ‘뭐 같은 물건’이라고 이름 붙인 CELL/BE 라는 물건을 다루기 위해 고군분투 하고 있었고, 그 덕에 현재 ‘포수가 회귀를 숨김’은 리드 프로그래머가 공백인 상태로 몇몇 프로그래밍 팀원들이 작업을 맡아 하고 있는 상태였다.
물론 프로젝트 자체는 민준이 기초적인 베이스를 다 쌓아놓았기 때문에 별 문제 없이 잘 돌아가고 있었다.
문제는 역시나 상혁이 고민하던 그 부분.
결국 상혁은 팀원들을 불러 정식 출시 버전에서는 민준이 집어넣은 탐색 프로그램을 우회하는 기능을 모두 제거하고 싶다고 이야기했다.
그러자 가장 먼저 이의를 제기한 것은, 현재 ‘마지막 용자 전설’의 리드 기획을 맡고 있는 지수였다.
“에엑?! 그럼 100% 이거 차단당할 텐데요?”
“아니, 어차피 이거 막을 회사는 아예 메모장 자체를 못 쓰게 한다든가 아니면 우리한테 소송을 걸던가 하겠지. 탐색 프로그램 우회 로직 자체는 게이머를 위해서 넣은 기능이긴 하지만 출시 버전에서 우리가 고의로 그걸 집어넣으면 법적인 문제가 될 수 있어. 고의로 이런 악성 프로그램을 만들어서 회사의 생산성을 훼손했다는 식으로 시비를 걸 수 있거든.”
“그럼 정식 버전에는 그냥 원하는 스킨으로 플레이 가능한 거 말고는 딱히 메리트가 없는 거야?”
현주가 조금 실망한 기색으로 말하자 상혁이 어쩔 수 없다는 투로 답변했다.
“우선 지금 만들어서 테스트 했던 ‘VS 버전 스킨’이나 ‘포토샵 버전 스킨’ ‘엑셀 버전 스킨’ ‘워드 버전 스킨’ ‘아웃 룩 버전 스킨’ ‘파워포인트 버전 스킨’ 은 전부 발매 버전에서는 빼고 싶어요. 젠장. 말하면서 생각해보니 온갖 작업하면서 몰래 숨어서 하라고 별의 별 스킨을 다 만들었구나.”
“어쩔 수 없지. 컨셉이 그건데. 난 그래서 더 마음에 들던데.”
“아니, 그게 저희가 직접 제공하면 문제가 되니까 그런 거예요. 그래서 앞으로는 좀 방향을 바꿀 겁니다.”
“어떻게?”
“저희는 베이스만, 숨기는 건 애드온 형식으로 유저들이 알아서 만들어서 쓰게 해야죠. 그럼 적어도 그것 때문에 고소당하지는 않을 테니까.”
“아, 그러니까 우리는 커스텀 스킨을 쓸 수 있게 해주고 유저가 직접 포토샵 버전 스킨 같은걸 만들어서 쓰게 한다는 거지?”
“맞아요.”
“아, 그럼 아예 막는 건 아니네?”
“그냥 저희가 부추기지는 않는다는 거죠. 문제는 마케팅이에요. 게임 출시할 때 ‘직장에서 몰래하세요.’ 같은 식으로 광고할 순 없으니까요.”
“그럼 그건 어떻게 해결할 생각이야?”
“뭐, 간단하게 말하면···.”
상혁이 미소 지었다.
“메모장을 출시할겁니다.”
상혁의 아이디어는 간단했다.
애당초 메모장 모양의 게임이 아니라, 메모장 프로그램을 만들어서 배포하자는 것.
거기에 추가 에드온 식으로 설치 할 수 있는 게임 모드를 제공한다는 게 상혁의 기본 아이디어였다.
“진짜로 업무하면서 편하게 쓸 수 있는 정도의 기능이 있어 야해요. 시계, 달력, 계산기는 물론이고 다른 컴퓨터에서도 유저 어카운트로 로그인하면 메모장 내용을 불러올 수 있다던가, 간단한 텍스트 채팅도 지원하게 해봅시다.”
기왕 만드는 김에, 진짜로 업무에 도움이 되는 프로그램을 만들자는 상혁의 제안에 팀원들이 당황하며 말했다.
“뭐, 지금 저희 개발력 수준이면 그리 어렵지는 않을 텐데, 근데 조금 주객이 전도된 게 아닌가 싶은 느낌이 들어요. 아무래도 게임이 서브가 되지 않을까요?”
“전 그 정도가 딱 좋을 거라고 생각해요.”
상혁이 화이트보드에 우하향 그래프를 그렸다.
“저희 게임이 출시되면 업무 효율 하락은 어느 정도 피할 수 없겠죠. 저희가 게임을 재미있게 만들수록 더 심할 거고요. 그렇다면.”
상혁은 다시 이전 그래프와 교차되는 우 상향 그래프를 그렸다.
“베이스가 되는 저희 프로그램이 업무 효율을 올려주는 프로그램이 되면 됩니다. 회사에서 그룹 업무를 할 때 매우 편한 기능들을 제공해서 굳이 게임이 아니더라도 저희 프로그램이 도움이 된다고 느끼게 만드는 거죠.”
당시 한국을 지배하던 메신저 3대장은 ‘네○트 온’ ‘버디○디’ ‘MSN 메신저’의 3종류였다.
상혁은 여기에 업무 관련 편의성을 추가하여 광고나 기타 수익 모델을 추구하는 기존 메신저와 완전히 다른 프로그램을 만들고 싶었다.
‘편해서 쓰지만, 게임을 하고 싶다면 해도 좋고, 게임을 안 해도 그냥 무료로 제공되는 그런 프로그램.’
상혁이 열변을 토했다.
“광고도 없고, 파일 전송도 자유롭고, 원한다면 네트워크가 아니라 회사 내부 DB를 사용해서 보안을 강화하는 게 가능하고, 다양한 자료를 히스토리 형태로 확인 가능하며, 다른 오피스 프로그램과의 연동도 되고, 그룹 채팅이나 음성 통화, 화상회의도 지원하는 종합 업무 솔루션!”
그리고 작은 목소리로 웃으며 말했다.
“그리고 거기 아주 작은 게임 기능이 하나 붙어있는 거죠.”
텍스트 기반 야구 게임을 만들기 위해서 완전히 돌아가는 야구 시뮬레이션을 제작하겠다고 말하던 상혁이, 이제는 메모장 모양을 스킨이 아니라 완전히 돌아가는 프로그램으로 만들고 싶다고 이야기 하고 있었다.
그러나 그런 상혁의 말을 들은 팀원들은 반대하기 보다는 고개를 끄덕이며 상혁의 의견에 동조했다.
“하긴 버디○디로 업무하는 게 좀 불편하긴 하지.”
“네○트 온도 마찬가지고.”
“괜찮은 프로그램 있으면 회사 안에서 쓰고 싶긴 했어요.”
그렇게, ‘메모지 스킨을 쓰는 텍스트 게임을 만들기 위해 메모지 프로그램을 통째로 제작하겠다.’는 상혁의 제안은 팀원들의 만장일치 하에서 성공적으로 받아들여졌다.
그리고 바로 그날부터, ‘메모장 같이 생긴 게임’이 ‘메모장에 붙어있는 게임’으로 바뀌기 위한 본격적인 개발이 시작되었다.
***
그렇다고 해서 굳이 시작부터 완성된 업무 솔루션일 필요는 없었기에, 상혁은 간단하게 달력 및 메모장 기능, 계산기 정도만을 추가한 버전을 만들어 업데이트 시켰다.
그리고 팀을 구성해 채팅 모듈과 업무 솔루션 기능 등을 개발하면서, 동시에 게임 자체도 계속 업데이트 해 나갔다.
물론 두 게임을 동시에 개발한다는 것은 절대 쉬운 것이 아니다.
나머지 팀원들이야 자신에게 할당된 업무만 하면 되니까 괜찮다고 해도, 상혁은 양쪽 업무를 동시에 다 봐야 했기에 더욱 그러했다.
그래도 그나마 다행인 점은, 팀원 전체가 상혁이 생각하고 있는 방향을 잘 이해하고 있었기에 가져오는 결과물도 항상 발전적인 성향의 결과물만 가져온다는 것이었다.
예를 들어 지금 혁찬이 가져오는 방대한 양의 텍스트처럼.
처음 합류 이후에 자신이 생각하는 문체와 상혁이 생각하는 문체의 갭 때문에 고생하던 혁찬은, 어느 정도 감을 잡고 나서는 질릴 정도의 텍스트를 쏟아내고 있었다. 그 분량이 상혁이 검토하는데 시간을 너무 많이 소모하게 되어 작업 속도를 좀 늦춰달라고 이야기 할 정도의 분량을 자랑하고 있었다.
그리고 일본에 다녀온 이후로 메카닉 디자이너로써 완전히 각성한 서연도 매일같이 디자인한 유닛을 가져와 상혁에게 컨펌을 받으려 했다.
물론 서연이 가져온 로봇 디자인은 상혁이 흠잡을 데가 없을 정도로 항상 완벽했다.
그러나 서연은 매번 컨펌을 받으러 올 때마다 상혁에게 칭찬을 받지 않으면 돌아가지 않고 계속 말을 걸며 집요하게 집착하는 모습을 보이기 시작해 상혁을 고민하게 만들고 있었다.
오늘도 옆에서 무슨 이야기가 하고 싶은 건지 몸을 이리 저리 돌리며 자신을 빤히 바라보는 서연을 보고, 상혁은 한숨을 쉬며 입을 열었다.
“저기, 서연아?”
“네. 오빠.”
“괜찮다고 했잖아. 마음에 든다고.”
“으···. 으음···. 그래도 좀 불안해서요. 여기요. 여기랑 여기도 좀 애매한 거 같고.”
서연의 말은, 사실 그 부분이 문제라는 것이 아니라 자신이 그 부분을 특히 신경 써서 디자인했으니 칭찬해달라는 말이었기에, 상혁은 웃으며 서연이 바라는 대로 해 주었다.
“애매하긴? 거기가 오히려 더 멋진 것 같은데? 특히 변신 이후에도 그 부분이 남아 있는 게 변신 전 형태를 떠올리게 해서 좋은 거 같다.”
“헤헤. 감사합니다.”
그제야 돌아가는 서연을 보며, 옆에서 다른 업무로 상혁을 찾아왔던 민준이 한마디를 툭 뱉었다.
“쟤, 저런 성격이었나?”
“내 기억으론 아냐.”
“흠···. 뭐, 이거나 봐줘.”
서연이 가진 마음이 연심이든 동경이든, 딱히 상혁의 연애사에 관심이 없었던 민준은 무심한 표정으로 상혁의 모니터를 툭툭 두드렸다.
“이게 뭔데?”
“우리가 원래 쓰던 리얼 엔진에서 PS3 게임 포팅 할 때 자동으로 스레드 분배하게 만든 애드온.”
PS3의 메인 칩셋인 CELL/BE(CELL-Broadband Engine)은 주 연산용 PPE 1코어와 보조용 7개의 SPE로 이루어져 있었다.
민준이 만든 애드온은 각 코어별로 자동으로 연산을 할당하게 만드는 애드온이었다.
“엄청 빨리 만들었네?”
“뭐 기반이 되는 엔진은 따로 있었으니까. 그대로 베꼈지.”
“성능은?”
“적어도 우리가 출시한 게임은 프레임 문제로 걱정은 안 해도 될거야. 물론 네가 퀄리티를 더 올리면 모르겠지만. 그나마 로봇물이라 다행이라고 해야겠지.”
그 말대로, 곡선인 구보다 직선인 면 형태가 폴리곤의 수를 더 줄일 수 있기에, 민준은 그것까지 감안해서 거의 아슬아슬한 수준에 걸쳐서 한계 성능을 잡고 있었다.
“런칭 타이틀인데 거의 막판에나 가능한 수준의 그래픽으로 나오겠구만.”
상혁이 말하자 민준이 미소 지었다.
“아마 그렇겠지. 어떻게 한건지 설명 해줘?”
“네가 설명해주면 내가 이해는 할 수 있냐?”
“아니.”
“그럼 됐어. 그냥 언제나 그랬듯이 ‘우리 민준이가 개 쩔게 해냈구나.’ 정도로만 알고 있을게. 그럼 이제 민솔이랑 교대할거야?”
“그래야지. 밀린 작업도 있고.”
“그래?”
상혁이 놀란 표정을 지었다. 웬만해서는 민준이 하던 작업을 미뤄두고 다른 작업을 하는 성격이 아니었기 때문에.
“네 요구사항이 하도 뭐 같아서 하다가 막힌 건데 이제 다시 해야지.”
“어? 어디가 어려운건데?”
상혁의 질문에 민준이 웃으며 답했다.
“전부.”
***
당연한 이야기지만 아무리 시스템이 만들어내는 텍스트라 하더라도 계속 특정 상황에서 같은 형태의 텍스트가 반복된다면 읽는 사람은 지루함을 느낄 수밖에 없다.
그래서 ‘포수가 회귀를 숨김’같은 경우에는 같은 상황이라도 매번 다른 문장을 통해서 반복되는 느낌을 최대한 줄이는 식의 알고리즘이 적용되어 있었다.
예를 들어 상대 투수와 벌어지는 심리전을 표현할 때도, 때로는 세이버 매트릭스 이야기로 문장을 시작하고 때로는 투수의 심리를, 혹은 게임의 흐름을, 어떨 때는 주인공 본인의 컨디션을 언급하면서 게임이 제공하는 선택의 힌트를 다양한 형태로 표현하는 식이다.
물론 아예 컴퓨터가 문장을 쓰는 식으로 만들지는 않았기에, 그 다양한 바리에이션은 혁찬을 비롯한 기획팀 직원들이 매 상황마다 수십 가지 종류의 문장을 적어 넣어 완성하고 있었다.
그래도 조합 자체는 컴퓨터가 결정하기에, 문장의 연결 부위가 매끄럽지 않은 경우가 가끔 있었는데, 민준은 이 문제를 해결하고 싶어 했다.
그 외에 게임의 길이가 지나치게 길어지는 것을 막기 위해 지루한 구간을 스킵 하는 알고리즘의 완성도를 올리는 문제도 있었다.
문제는 컴퓨터는 이 플레이 구간이 재미있는지, 재미없는지를 판단할 방법이 없다는 것.
예를 들어 굳이 주인공이 아니어도 주인공 앞 타자가 일부러 주인공에게 공에 대한 정보를 보여주기 위해 삼진을 감수하고 공을 끝까지 보는 경우, 이것은 유저에게 의미 있는 행동이지만 결과적으로 보면 그냥 타 주자의 삼진에 불과하다.
민준은 그런 부분도 자연스럽게 AI가 판단할 수 있는 시스템을 만들고 싶었다.
컴퓨터가 인간에게 재미를 줄 수 있는 드라마를 자연스레 구성할 수 있었으면 하는 마음에서.
그런 이유로, 대충 만들면 이미 완성하고도 남아야할 개발 일정이 한없이 지연되고 있었지만 상혁은 그 부분에 대해서는 절대 터치하지 않았다.
‘포수가 회귀를 숨김’의 경우에는 애니메이션 방영이나 PS3의 런칭 날짜에 맞춰야한다는 마감도 없었고, 무엇보다 상혁이 가진 민준에 대한 믿음이 절대적이었기 때문이었다.
‘이론상으로만 가능한 무언가를 현실로 이끌어낼 수 있는 능력이 있는 프로그래머’
그것이 상혁의 민준에 대한 평가였다.