10년의 밤
만약 10년 전 인생에 큰 영향을 끼칠 중요한 의사결정을 할 때 제가 더 강했더라면 어땠을까요?
대략 10년 전 어느 날이었습니다. 그 날도 평소와 다르지 않은 하루를 시작합니다. 잠을 자다가 자명종 소리에 자리에서 일어나 자전거를 타고 탄천 자전거길을 따라 판교 방향으로 달립니다. 자전거도로는 마침 딱 회사 앞까지 이어져 있어 아침에 자전거길을 따라 달리는 분들을 제외하면 사람도 자동차도 거의 마주치지 않고 출근할 수 있었습니다. 항상 이 출근길을 달릴 때마다 기분이 좋아졌습니다. 생각 안하기, 생각만 하기에서 보여드린 적 있는 작은 자전거를 타고 그리 멀지 않은 거리를 달리면 됐기 때문에 한여름을 제외하곤 딱히 자전거를 타고 출근하더라도 샤워를 할 필요는 없었습니다. 가끔 자전거길을 달리며 서울 방향으로 가시는 본격적으로 자전거 출근을 하시는 분들의 행색을 보며 멋있다는 생각을 했는데 그도 그럴 것이 제 자전거는 아주 작고 귀여운데다가 앞에 가방을 달면 영락없이 자전거로 소풍 가는 느낌이 들었기 때문입니다. 이 날은 제 퇴사일이었습니다.
회사에서는 MMO 게임을 개발하는 프로젝트의 기획팀에 소속되어 있었는데 이 날로부터 다시 몇 년 전에 유명한 게임 전시 행사를 통해 공개한 트레일러 영상이 커다란 관심을 받으며 고객들로부터 기대를 받는 프로젝트였습니다. 게임 트레일러가 공개될 때 게임 전시 행사에 가지는 않았지만 전설에 의하면 영상을 보고 사람들이 몰려와 부스에 포트폴리오를 담은 USB 메모리를 놔 두고 갔다고도 합니다. 생각해보니 정말 대단한 구인 방법이 아닌가 싶습니다. 마치 스페이스엑스가 팔콘 해비 테스트 발사를 성공 시키며 영상을 끝내기 전에 구인 광고를 하는 것과도 비슷한 느낌입니다.
밖으로부터 프로젝트는 그런 대단한 주목을 받고 있었지만 안에서 이를 만드는 우리들은 이런 상황이 썩 기쁘기만 하지는 않았습니다. 여느 게임 트레일러들이 그렇듯 트레일러의 일부는 실제 게임 플레이를 촬영한 것이지만 또 다른 부분은 아직 완성되지 않아 게임 플레이를 그대로 촬영할 수 없는 상태에서 연출을 가미했기 때문입니다. 영상에 나오는 공성전은 그 당시로는 정말 대단했습니다. 멀리 보이는 병사 하나하나가 직접 적과 칼을 휘두르며 맞서 싸우고 있었고 그들이 배경으로 멀어지며 눈앞에는 주인공이 화려한 능력으로 적들을 박살내는 멋진 전투가 이어지고 있었습니다. 그런 영상 중 주인공의 전투는 그럭저럭 만들어져 있어 시나리오에 따라 전투를 수행하면 꽤 그럴듯하게 보였지만 배경으로 멀어진 병사들은 아직 여러 가지 문제가 있었습니다. 특히 병사들이 일제히 좁은 성문을 향해 달려올 때 그들이 성문에 다 함께 걸려 제대로 이동하지 못하는 문제가 있었지만 영상에서는 이들을 실제로 움직이지 않고 연출을 통해 움직여 멋지게 성문으로 돌진하는 모습을 보입니다.
고객들에게 영상은 게임을 기대하도록 만드는 역할을 했고 다른 한 편으로 회사 안의 개발자들에게는 우리가 만들어야 하는 실제 플레이를 우리 스스로에게 일깨워 주는 일종의 비전 역할을 했습니다. 가끔 비용에 비해 효용이 너무 낮은 기능을 요청할 때 굳이 이렇게 까지 해야 할까? 하는 방어적 질문을 받더라도 트레일러 영상 사례를 들며 고객들이 우리 영상을 보고 기대하는 수준은 최소한 만족해야 하지 않느냐고 설득하면 지금 당장은 아니더라도 다음 개발 계획에 기능을 밀어 넣을 수는 있었습니다.
영상에는 실제로 그렇게 만들면 안되고 또 그렇게 만들지도 않을 나선형 계단을 오르며 적들과 전투할 때 카메라가 정말 아름답게 계단을 돌며 플레이어를 보여주는 장면이 있습니다. 예상할 수 있듯 이 카메라는 나선형 계단에 맞춰 정확히 카메라 레일을 설치한 다음 플레이어의 계단 위 이동 지점에 따라 자연스럽게 카메라가 따라가도록 만들었습니다. 실제로는 이렇게 잘 만들지 않는데 이유는 같은 레벨에서 이렇게 카메라가 회전하면 방향 감각이 완전히 바뀌어 고객이 파악한 레벨을 헛갈리게 만들 수 있기 때문입니다. 물론 나중에는 이런 일종의 고정관념을 사정없이 깨 부수는 다른 프로젝트에 참여하며 이런 고정관념 다 쓸모 없다는 사실을 늦게서야 깨닫기도 했는데 그건 다른 기회에 이야기해 보겠습니다.
한편 영상으로 보인 그렇게 멋진 플레이를 만들어내기 위해서는 꽤 단단한 인하우스 도구가 필요했습니다. 가령 던전의 어느 지점에 가면 이벤트가 일어나 괴물이 문을 부수고 나타난다든지 레버를 당기면 닫혀 있던 문을 연다든지 하는 간단한 메커닉을 추가하기 위해서는 레벨디자이너가 이를 레벨에 어렵지 않게 배치할 수 있어야 합니다. 우리가 개발에 사용한 미들웨어는 회사가 이전에 인수한 다른 회사에서 MMO 게임을 개발해 성공적으로 출시하는데 활용한 것이었는데 당시 다른 회사에서 주로 사용하던 언리얼 3에 비해 일단 겉보기는 훨씬 더 나아 보여 선택한 것처럼 보입니다. 그런데 실제로 이 미들웨어를 본격적으로 사용해 보니 게임 자체는 그럴듯 해 보였지만 기획팀이 게임을 조립하기에는 여러 어려움이 있었습니다.
일단 레벨디자인 메커닉을 표현하기가 상당히 어려웠습니다. 가령 함정을 밟으면 몬스터들이 벽을 부수고 등장하도록 만들려면 함정을 설치하고 함정에 연결된 몬스터를 문 안쪽에 배치한 다음 이들이 등장연출을 재생하며 나타나도록 해야 했는데 이런 로직을 구성하기 위해서 루아스크립트 환경에 어느 정도 익숙해져야 했습니다. 루아스크립트 자체는 적어도 서구권 개발팀에서는 널리 활용되는 분위기이지만 동접자 수로 대표되곤 하던 처리 성능을 굉장히 중요하게 여기는 한국 쪽 개발 환경에서는 그리 널리 활용되지 않았습니다. 코드를 만드는 사람 입장에서는 대수롭지 않은 괄호를 하나 빼먹거나 명령어에 인자 순서를 틀리는 수준의 실수는 그냥 문제를 발견한 다음 수정하고 넘어가면 되는 수준이지만 스크립트를 작성하더라도 이를 테스트 해 보기 위해서는 서버를 재시작 한 다음 테스트 대상 스크립트를 구동하는 레벨로 이동한 다음 메커닉을 실제 플레이를 통해 실행해 봐야 했습니다.
이 과정은 이터레이션을 아주 길게 만들어 신흥 가상화폐는 이제 수명을 다했다에 언급한 경직된 환경으로 비롯된 도전적인 설계를 꺼리게 만들고 또 레벨디자인 개발 속도를 아주 느리게 했습니다. 제대로 된 디버깅 환경도 없어 특정 시점에 변수에 값이 뭐가 들어있는지 편하게 볼 수도 없었습니다. 게임 클라이언트에서 콘솔 커맨드로 특정 변수의 값을 물어보면 답하는 인터페이스가 있었지만 로직이 순식간에 실행되어 바로 결과로 이어지는 게임 로직의 특성 상 이런 방식으로는 지금 로직이 정상적으로 수행된 것인지 확인하기도 쉽지 않았습니다. 결국 게임 API를 루아스크립트 수준에서 랩핑해 동작 하나하나를 수행할 때마다 로그를 찍게 만든 다음 이 랩핑된 환경을 사용해 로직을 만든 다음 실행하며 게임 자체보다는 그 밑에 작은 글씨로 지나가는 로그를 뚫어져라 쳐다보며 레벨을 만들어야 했습니다.
개발에 참여한 사람들이 생각하는 게임의 멋진 경험과 우리가 실제 개발하고 있는 게임의 장르가 서로 상당히 달라 어려움을 겪기도 했습니다. 가령 주인공의 추적을 피해 눈보라 속으로 도망친 적을 뒤쫓기 위해 적이 도망치며 남긴 발자국을 따라가는 퀘스트를 받았는데 이걸 만들려고 보니 암만 생각해도 이 퀘스트가 일어날 장소는 멀티플레이 환경이었고 퀘스트를 수행할 주인공 플오어 한 명에게만 보일 발자국을 표시할 방법이 없었습니다. 사실 현대에는 퍼시스턴트 월드에서 개인화된 경험이 당연하고 또 기술적으로도 아주 비싸지 않은 방법으로도 만들 수 있는 방법을 찾아냈고 또 경험도 쌓였으며 이런 사례가 많아 대수롭지 않게 이런 요구사항을 낼 수 있지만 그 시대만 해도 그렇지 않았습니다.
우리가 개발하던 게임은 같은 이름을 가진 전작들과 마찬가지로 2천년대 초반까지 주로 나타나던 게임 내 모든 장소가 퍼시스턴트월드인 모습을 한 상태로 시작해 2004년 월드오브워크래프트의 등장 이후 소수의 인스턴스 던전을 만들기 시작하던 때였습니다. 이런 상황에서 다른 사람들이 한 레벨에서 함께 플레이 하는 퍼시스턴트 레벨에서 플레이어의 퀘스트에 따라 서로 다른 개인화된 경험을 하게 해 달라는 요구는 엔지니어들을 거의, 전혀 설득할 수가 없었습니다. 이런 개인화된 시나리오에 기반한 경험은 퀘스트 요구사항을 기입한 엑셀 워크시트 상으로는 그럴듯 해 보였지만 우리는 그런 시스템이 없었고 엔지니어들은 이를 이해하지 못했으며 그들을 설득할 사례도 거의 없었습니다.
시스템을 설계하는 기획팀에 소속된 사람으로써 기획팀의 요구사항과 엔지니어들의 입장 사이에 간극을 줄이기 위한 여러 시도 끝에 개인화된 경험은 이 시대의 전통적인 MMO 게임들처럼 처음부터 인스턴스로 생성된 던전 안에서만 수행하게 하기로 하며 화난 엔지니어들을 진정 시키고 또 기획팀에는 이렇게밖에 할 수 없는 이유를 정말 손이 없어지도록 싹싹 빌어 간신히 납득 시켜 개발을 진행할 수 있었습니다. 그렇게 게임은 퍼시스턴트월드와 인스턴스던전 사이에 어느 정도 용도에 따른 기능이 정리되고 이들 사이에 할 수 있는 것과 할 수 없는 것, 해도 되는 것과 절대로 하면 안 되는 것이 서로에게 공감대를 형성에 이전에 비해서는 보기만 해도 눈앞이 캄캄해지는 퀘스트 구현 요청이 담긴 엑셀 워크시트를 볼 일이 크게 줄어듭니다. 하지만 여전히 스크립트에 기반한 제어 시스템은 인게임에 시각화하기 아주 어려워 디버깅이 여전히 어려웠는데 레벨에 스크립트로 제어할 대상을 배치한 다음 이들에 접근하기 위해 이들의 이름을 하나하나 기록한 일종의 작전 계획을 놓고 이를 바탕으로 스크립트를 작성한 다음 위에서 소개한 로그를 뚫어져라 쳐다보며 스크립트가 의도한 대로 동작하는지 확인하는 과정을 반복하며 개발하는 상황은 여전했습니다.
과연 회사가 인수한 같은 미들웨어를 사용해 게임을 성공적으로 출시하고 서비스한 그 회사에서도 이런 환경에서 개발한 것이 맞을까요? 그렇지 않았습니다. 우리는 그들이 사용한 미들웨어를 가져오기는 했지만 어떤 이유에서인지 그들이 사용한 인하우스 도구의 일부를 가져오지 않았고 그 중에는 특히 게임 상의 구성요소를 제어하는 부분이 포함되어 있었습니다. 실제로 그들이 사용한 개발환경이 동작하는 방식은 게임 에디터와 클라이언트가 백그라운드에서 동작하는 로컬 서버 기반으로 서로 연결되어 실시간으로 게임 상의 상황을 변경하고 또 제어할 수 있었습니다. 가령 병사가 게임 내에 어떤 경로를 따라 이동하게 해야 한다면 우리는 게임 상에 경로를 찍고, 이 경로를 따라갈 병사의 이름을 따로 메모한 다음 스크립트에서 병사를 불러와 이동 명령어를 사용해 경로를 지정해야 했습니다. 하지만 그들이 사용한 환경에서는 병사가 이동할 경로를 인게임을 통해 실시간으로 보며 에디터에서 경로를 바꾸면 즉시 인게임에 반영 됐고 또 병사는 변경된 경로를 따라 이동했으며 이 동작을 처음부터, 중간에서부터 원하는 시점 아무데서나 실행 해볼 수 있었습니다. 그들은 그런 환경에서 개발했고 우리는 그렇지 않은 환경에서 개발하고 있었습니다.
한편 프로젝트의 높은 분들도 이런 상황이 문제라는 사실을 인지하고 있었는데 마침 팀에 새로 오신 리드 프로그래머 분이 이런 상황을 해결할 인하우스 에디터를 개발할 원대할 계획을 제안했습니다. 우리들은 코드 작성에 익숙하지 않은 스탭이 고안한 퀘스트를 코드 작성에 익숙한 스탭이 구현하고 있었는데 퀘스트를 고안한 사람과 이를 만드는 사람 사이에 정보수준이 서로 달라 엑셀 워크시트에 언급된 대로 만들었지만 의도와 다르거나 기술적으로 불가능하거나 멀티플레이 환경에서 말이 안되는 퀘스트를 받아 난감해 하곤 했습니다. 이런 상황에서 새로 제안된 인하우스 에디터가 있다면 스크립트 없이 데이터 기반으로 로직을 작성할 수 있어 퀘스트를 고안하는 사람과 이를 실제 개발하는 사람을 나누지 않고 같은 사람이 퀘스트를 실제 개발할 수 있어 그렇지 않을 때 생기는 문제를 없애고 장기적으로는 이 도구에 기능을 추가하는 식으로 대응해 서로의 업무 부담을 줄여 런칭을 더 빨리 할 수 있는 계획이었습니다. 다만 이 계획을 실행할 경우 우리는 여태까지 만들어 온 거의 모든 게임을 다 버리고 에셋만 남긴 채 바닥부터 다시 시작해야만 했습니다. 이 계획은 결국 승인 되었고 우리는 어느 날 체인지리스트가 일곱 자리에 달하는 퍼포스 디팟을 새 디팟으로 분리한 다음 체인지리스트 1번을 보고 퇴근했는데 이 이벤트를 ‘대격변’이라고 불렀습니다.
모든 사람들에게는 그럴 듯한 계획이 있습니다. 주먹에 쳐 맞기 전까지는요. 계획은 그럴듯 했지만 이 계획은 ‘대격변’을 필요로 했을 뿐 아니라 도구를 개발하는 동안 나머지 부서의 개발을 완전히 멈춰야만 했습니다. 처음 예상한 기간 동안 어떻게든 다른 할일을 찾아 수행하고 지금으로는 비용 평가가 불가능해 별 의미 없는 미래 계획을 세우고 또 시간이 남으면 회사 꼭대기 층에 있는 도서관에서 하루 종일 책을 읽기도 하며 시간을 보냈습니다. 하지만 처음 예상한 기간이 경과한 다음 개발 상황을 공유하지 않으려는 엔지니어들에게 애걸복걸해서 간신히 받은 아직 개발 중인 새로운 개발환경은 우리들을 당황시키기에 충분했습니다. 무슨 의도인지도 알겠고 또 미래에 어떤 모습으로 동작할지도 알겠지만 현실은 참혹했습니다. 이전에 우리가 만들던 것과 비슷한 수준은 커녕 세계 최초의 MMO 게임을 만들기에도 한없이 부족하고 또 엄청난 오동작으로 가득한 이상한 도구가 만들어지고 있었습니다. 이런 커다란 목적을 한 번에 해결하기 위한 시도가 그리 간단하지 않으리라는 사실을 깊이 이해하지만 이미 몇 달을 기다린 끝에 받은 중간 진행상황이 이런 수준이라면 앞으로 얼마나 더 기다려야 제대로 된 환경을 얻을 수 있을지 상상하기 쉽지 않았습니다.
이 인하우스 도구 개발과 별개로 남은 인력은 다른 게임 모드를 개발했는데 이것저것 만들다가 아무것도 똑바로 못 만든다에 소개한 문제점을 알게 됐을 뿐 인상적인 플레이를 만들지 못했습니다. 모든 로직을 항상 엔지니어에게 기획서 모양으로 요청해 개발하는 환경에서는 기나긴 이터레이션 덕분에 앞에서 이야기한 도전적인 디자인을 시도하기는 어려웠습니다. 남들이 하는 만큼만 요구하면 엔지니어도 만족했고 게임디자인 입장에서 설명하고 설득하기도 쉬웠습니다. 대신 인상적이지 않았고 또 우리가 만든 결과물은 항상 리퍼런스의 열화 버전에 불과했습니다. 근본적으로 리퍼런스는 게임 하나에 우리 전체 만큼의 인력이 매달려 있었지만 우리는 리퍼런스를 본딴 게임 모드 하나를 만드는데 게임디자이너 한 명을 투입하고 있었으니 인상적인 결과가 나오지 않는다 하더라도 이상할 것은 없습니다. 그러는 사이 중간 중간 새로운 인하우스 도구를 테스트 해 느리지만 서서히 기능을 갖춰 나갔고 몹시 이상한 환경이기는 했지만 어쨌든 이전에 만들었던 퀘스트 요구사항을 어느 정도 만족할 수 있는 환경에 접근해 갔습니다. 1년 보다는 작지만 거의 1년에 가까운 기간 동안 공회전 한 끝에 다시 이전과 비슷한 개발 진행 수준에 도달합니다.
큰 프로젝트를 오랜 세월에 걸쳐 수행하기 위해서는 더 작은 성공의 경험이 필요합니다. 이번 마일스톤을 마무리 해 처음 계획한 플레이가 조금 삐걱거릴망정 돌아가는 모습을 보며 개발에 참여한 모두가 기뻐하는 그런 작은 성공의 경험입니다. 이런 경험이 쌓여 갑자기 몇 달 동안 일을 제대로 못 하는 위기가 닥쳐 올 때 이를 버틸 수 있게 해 줍니다. 그런데 우리들은 기본적으로 마일스톤 마감에 가까워지면 항상 실패하는 연습을 해 왔습니다. 마일스톤 목표에 의한 플레이 시나리오는 항상 불분명했고 마일스톤 마감날까지 개발하더라도 기능 조각들이 동작하기는 했지만 이들을 묶은 플레이는 잘 동작하지 않았는데 그런 플레이가 무엇인지 서로가 잘 몰랐습니다. 또 항상 우리들의 퍼포먼스에 비해 과도하게 책정되는 목표는 항상 달성이 불가능했고 마일스톤 후반에 가서 물리적으로 개발할 수 없음이 확실해진 항목을 마일스톤 목표에서 제거하기를 반복했는데 이런 과정을 겪음에 따라 실패하는 과정을 연습해 마일스톤 목표에 대한 긴장감이 사라집니다. 어차피 실패할 텐데 마일스톤 목표를 딱히 노력을 기울여 평가하지 않았고 그냥 목록 위쪽부터 닥치는 대로 수행하고 나중에 안 되면 빼는 자세를 취하게 되었으며 작은 성공을 할 가능성이 없기 때문에 그저 마일스톤을 진행하는 동안 어차피 실패할 목표를 위해 단지 개개인의 노동시간을 최대화 하는 것이 운영의 거의 전부였습니다.
이 즈음 개인적으로 많이 지쳐 있었습니다. 이 회사에서 오랫동안 일하며 여러 프로젝트를 런칭한 분들은 이런 상황에 익숙하신 듯 정말 단단한 멘탈이 아니면 절대 불가능할 것 같은 태연한 모습으로 일상을 살아가고 계셨는데 정말 대단하다고 생각합니다. 물론 나중에서야 이분들도 모두 다른 프로젝트, 다른 회사로 도망쳐 정상적으로 운영되는 곳에서 의미 있는 커리어를 만들어 가고 있다는 사실을 알게 되긴 했지만요. 이 즈음 개인적으로 이 프로젝트가 앞으로 런칭에 도달할 수 있을지 고민해보기 시작합니다. 대략 이전에 카지노 라이크 - 1.5년 정리에서 이야기한 목성에 충돌하는 비유와 비슷한 고민저다. 목성은 너무 커서 충분한 추진력 없이 인력권에 붙들리면 목성의 인력권을 벗어나지 못하고 서서히 나선형 궤도를 그리며 결국 목성에 충돌하게 됩니다. 그리고 목성은 너무 크기 때문에 이 사실을 아주 오래 전부터 알 수 있지만 실제로 충돌하는 시점은 먼 미래이기 때문에 충돌할 거라는 사실을 알았다 하더라도 이를 그리 급하게 고민하지 않아도 됩니다.
게임의 목표는 세월이 흐르며 다른 게임이 나타남에 따라 계속해서 변했습니다. 가령 처음에 우리는 디아블로 2 같은 게임을 회사 프랜차이즈에 기반해 개발하고 있었습니다. 월드오브워크래프트는 앞에서 이야기한 퍼시스턴트월드과 인스턴스던전 사이의 경계를 흐리게 만들어 퍼시스턴트월드에서도 플레이어의 상태에 따라 개인화된 경험을 만들자는 요구사항을 엔지니어들에게 설득하기 좀 더 쉽게 만들어 주었습니다. 개발 도중 디아블로 3이 나타났고 그로부터 시간이 좀 흐르자 게임은 디아블로 3과 아주 비슷해졌으며 회의가 열려 ‘디아블로 3과 비슷해 보이지 않게 하기 위한 방안’을 찾기도 했습니다. 사실 비슷해 보이는 게임은 그 목표 또한 서로 비슷할 수 있어 비슷한 인간이 한 고민의 결과는 서로 그리 다르지 않을 수도 있지만 종종 그 결과는 서로 너무나 비슷했습니다. 이쯤 되면 고객들 뿐 아니라 경영진에게도 이 결과가 상대를 복제한 결과가 아님을 설명해야만 하는 수준입니다.
세월이 또 흘러 이번에는 현대의 수집형 게임 장르가 나타났고 이후 우리는 이전까지 한 번에 플레이어 한 명을 플레이 하는 게임에서 한 번에 수집한 여러 플레이어들을 관리하는 게임으로 바뀌기 시작했는데 이전까지는 직접 플레이 하며 경험하는 여러 요소에 집중했다면 이번에는 고객 한 명이 동시에 플레이 하는 여러 플레이어의 상태를 관리하는 모양으로 게임이 바뀌어 이전과는 아주 다른 모습이 되어 갔습니다. 곰곰이 생각해봐도 이 상태로 프로젝트는 앞으로 수 년 안에 런칭할 수 없으리라는 결론에 다다랐고 회사를 떠나기로 결정합니다.
그리고 10여년이 흐릅니다. 이후 여러 사람들이 회사를 떠났지만 또 여전히 회사에 남은 사람들과 되돌아간 사람들, 그리고 다른 프로젝트로 옮긴 사람들을 통해 대략적인 소식을 듣고 있었습니다. 프로젝트 코드네임을 바꿔 회사의 전설적인 성공작 그 자체로 인식되도록 했다는 소식, 이에 따라 이전의 대격변과 비견할 만 한 새로운 리셋이 일어났다거나 사람들이 프로젝트를 떠나면서 이전에 충분한 경험을 쌓지 않았다고 평가되는 분들이 중책을 맡게 되었다는 이야기를 전해 들었습니다. 또 몇 년이 지난 다음에는 더 이상 아이소매트릭 뷰를 고집하지 않는 방향으로 바뀌었다거나, 그 프로잭트를 오래 전에 또너나 사람들이 같은 회사에서 다른 모바일 프로젝트를 진행해 런칭했다거나 회사를 떠났던 사람들이 다른 프로젝트에 참여해 중요한 역할을 수행했다는 소식을 계속해서 들었습니다. 하지만 이로부터 다시 또 몇 년이 흘러 한동안은 아예 이런 과거가 있었다는 사실 자체를 잊고 살았습니다.
서기 2023년 가을, 이 글을 시작할 때 떠올린 그날로부터 10여년이 흐른 어느 날 새로운 영상을 봤습니다. 이제 10여년 전에 마지막으로 본 그 모습을 완전히 찾아볼 수 없지만 여전히 프로젝트를 재시작 할 때 붙인 프로젝트 이름이 그대로 게임 이름이 되었습니다. 새 프로젝트 이름은 종종 경영진에 대한 사랑 고백으로 놀림 받곤 했는데 그 이름을 유지하며 멋지지만 또 아리송한 이름이 되었고 이제는 아이소매트릭 뷰의 흔적 조차 찾을 수 없을 뿐 아니라 훨씬 현대적인 모습으로 바뀌었습니다. 지난 세월 동안 처음 개발을 시작했던 다른 회사의 미들웨어에서 ㅁ게임의 엔진변경에 언급한 대로 이제 어지간한 대형 프로젝트에서 사실상 표준으로 자리 잡은 언리얼 4 기반으로 개발되었다는 모양입니다. 이 프로젝트를 떠난 다음 언리얼 4, 5 기반으로 프로젝트를 수행하며 언리얼 4 이상이라면 바닐라 상태라도 이전에 경험한 어처구니 없는 개발 환경보다는 훨씬 나았을 거란 생각을 했습니다.
정말 멋진 영상과 과거의 우리들을 고통스럽게 했던 여러 가지 고민들, 그리고 세월이 흐르며 현대의 고객들과 개발자들 양쪽 모두를 곤란하게 만드는 문제들을 깊이 고민하고 허용하는 한 가장 나은 해법을 찾아 적용했다는 인터뷰를 보며 지금 뿐만 아니라 가끔 한번씩 하던 생각을 다시 해 보게 됩니다. 10여년 전 몸도 마음도 많이 지쳐 있을 때 앞에서 왜 그런 상태가 되었는지를 어렴풋이 생각해봤지만 만약 제 몸과 마음이 그 때의 저 자신보다 훨씬 강했다면, 더 강한 사람이었다면 팀에 끝까지 남아 어려운 상황을 돌파하고 개발을 계속해 프로젝트를 성공 시킬 수 있지 않았을까요? 회사를 나온 다음 10여년 동안 프로젝트에 남아 있었더라면 겪지 않았을 여러 가지 경험을 하고 이를 통해 나름 성장했다고 생각하기는 하지만 다른 한편으로는 지난 10여년에 걸쳐 한 프로젝트에서 불굴의 의지로 끝까지 버텼다면 지금의 저는 어떤 모습일지, 또 그런 저는 어떻게 성장 했을지 궁금해 하곤 합니다. 이제 오래 전부터 알던 분들 거의 전부가 프로젝트를 떠나 이제 더이상 내부 소식을 들을 방법이 거의 없지만 인생의 중요한 의사결정을 하게 만든 바로 그 프로젝트가 결코 중단 되지 않고 불굴의 의지로 런칭에 가까워지는 모습을 보며 정말 대단하고 또 멋지다는 말 외에는 딱히 무슨 말을 해야 할 지 잘 모르겠습니다.
10여년 전의 저는 프로젝트를 떠나는 인생의 중요한 의사결정을 실행 했고 이후 또다른 큰 실수를 하기도 하고 다른 프로젝트에서 훌륭한 분들을 만나기도 하며 다른 재미있는 기회를 얻어 살아 오고 있지만 여전히 10여년 전 인생의 중요한 의사결정을 하던 그 때 일하던 프로젝트를 가끔 생각해 봅니다. 런칭에 가까워진 프로젝트를 지금까지 불굴의 의지로 이끌어낸 모든 분들께 깊은 존경과 축하를 보냅니다. 또 부디 무사히 런칭 하고 또 의미 있는 성과를 이루시기를 진심을 담아 기원합니다. 제목인 ‘10년의 밤’은 마치 소설 7년의 밤에서 긴 세월에 걸쳐 오직 그날 밤을 끝없이 복기 하며 문제의 원인을 생각하려 했던 등장인물의 모습이 생각나 숫자를 바꿔 차용했습니다. 스릴러 소설을 좋아하신다면 추천합니다.
오늘도 다섯 가지 다른 이야기를 준비했습니다.
지난 주 의도된 무능 끄트머리에서 뉴스레터 메일을 받지 않는 방법을 안내했습니다. 글 하나에 관심이 있어 등록했는데 갑자기 매주 스팸이 날아오면 당황스러우실 수 있을 것 같습니다. 링크를 참고하셔서 원하시면 메일을 안 받으실 수 있으니 참고 부탁 드립니다. 또 스팸이 되기를 원하지는 않아 아예 메일을 보내지 않고 글만 업데이트 하면 어떨까 하는 고민도 해 보고 있습니다.
지난주 가을비와 강한 찬바람이 몰아치기 직전 새벽에 일어나 오직 새벽에만 집에서 한 시간 걸려 갈 수 있는 원주 반계리 은행나무를 보고 왔습니다. 주말까지 미루자니 비바람에 잎이 다 떨어질 것 같고 또 평일에 잠깐 다녀오자니 휴가를 쓰고 싶지 않아 새벽에 재빨리 갔다가 커피 한 잔 마시고 재빨리 돌아온 다음 멀쩡하게 출근하는 묘기를 부렸습니다.
잠이 부족해서 잠깐 힘들긴 했지만 이렇게 재빨리 어딘가 다녀오는 것도 나쁘지 않다는 것을 배웠습니다. 그리고 은행나무를 보고 마을을 나서는 길에 아련한 눈빛을 주는 예쁜 친구를 만났습니다. 이 늦가을의 아련함을 공유해 봅니다. 그럼 또 다음 주에 뵙겠습니다. :)