098. 나의 팀원(My teammate)
2004년 6월, 배틀로얄 게임이 오픈하면서 상혁이 직원 수를 더욱 늘렸음에도 이상하게도 PTW의 직원들은 대부분이 집에 가지 않고 야근을 하고 있었다.
콘테스트가 끝난 지 두 달이나 지났음에도 불구하고.
처음에 상혁은 단순히 오픈 1주년 행사를 준비하느라 그런 것이라고 추정했지만, 나중에 사실을 확인하고는 황당함에 웃음을 흘릴 수밖에 없었다.
“뭐야 이거?”
“뭐긴 뭐야. 지금 베타 테스트 중인 게임 테스트 포인트 지급명세서지. 위에 쓰여 있잖아?”
민준이 말하자 상혁이 메일 제목을 보았다.
“아니, 그건 나도 봤는데, 우리 테스터가 이렇게 많았어?”
지급된 포인트의 양이 아니라, 목록의 길이가 장난이 아니라서 상혁은 적잖이 당황하고 있었다.
“오픈 테스트잖아. 딱히 QA팀만 테스트 하는 건 아니니까.”
상혁은 엑셀 차트에 있는 지급 번호를 보며 민준에게 말했다.
“그러니까, 네 말은 지금, 우리 회사 직원의 90%가 이 게임 테스트에 참가하고 있다고? 시키지도 않았는데?”
“어. 아 맞다, 난 포인트 좀 넉넉하게 주라. 지금 2년차 시즌인데, 한창 재미있을 때 끊겼거든.”
“너도 해?!”
“뭘 놀라냐. 재미있잖아. 솔직히 짬날 때 잠깐 하다가 빠지면 순식간에 2만자 휙 넘어가더라.”
2만자.
전대미문의 ‘웹 소설식 텍스트 기반 야구 시뮬레이션’게임에 상혁이 테스트 삼아 넣은 BM이었는데, 기본적으로 텍스트 2만자를 기준으로 그 이상 플레이하려면 100원에 해당하는 포인트를 사용하게 해 놓았다.
기본형이 회귀 전에 보았던 웹 소설이었으니 과금 모델도 웹 소설식으로 산정한 것인데 문제는 상혁의 예상보다 소진속도가 더 빠르다는 것이었다.
“아니, 죄다 일은 안하고 겜만 붙잡고 있나? 어떻게 하루에 30포인트를 써? 30포인트면 60만자라고? 웬만한 웹 소설 100편 분량이 넘는데?”
“뭐 내부 테스트니까 일을 안 한다고는 볼 수 없지. 그만큼 재미있다는 소리니까 긍정적으로 받아들이자고.”
상혁이 혀를 차며 창을 내렸다.
그러자 아웃룩 뒤에 숨어있던 메모장에 적힌 텍스트가 슬쩍 고개를 내밀었다.
[몸 쪽으로 파고들다 아래로 날카롭게 떨어지는 컷 패스트볼.
예상이랑 너무 다른 볼이라 배트를 돌려도 내야 플라이 정도가 고작일 듯해서 그대로 넘겼는데 볼이 선언되었다.
이걸로 카운트는 2-3.
홈런 한방이 절실하구나.
나도. 팀도. 팬들도.]
“···너도 하잖아.”
“뭐 그렇지. 일단 지금은 좀 더 지켜보고 과금 모델을 변경하던지 하자. 이거 텍스트 연출이 상황 따라 다르게 나오는 게임이라서 운 나쁘면 2회 진행했는데 2만자가 바닥나더라.”
“돈은 잘 벌리겠네.”
“중요한건 무리하게 과금을 강요하는 게 아니라 ‘아, 이정도면 100원 정도 내도 충분히 즐겁다’ 하는 느낌을 받게 하는 거지.”
“지금도 충분히 즐거워하는 거 같은데. 네 의도대로 야구 안 좋아하던 직원들도 이건 재미있게 플레이하고 있으니까.”
“그건 다행이고.”
상혁이 물었다.
“제작 진행도는 어때?”
“겉으로 돌아가는 건 그럭저럭 괜찮은데 지금 문제는 생략 알고리즘이야.”
‘포수가 회귀를 숨김’의 주인공은, 회귀한 포수였다.
당연히 포수답게 대부분의 시합에서 수비에 100% 참여하는데다, 타율도 높은 편이라 타순도 높게 잡혀있어 한 게임에서 모든 수비 플레이와 타순을 표현하려면 2만자로는 택도 없는 분량을 자랑하고 있었다.
거기에 매 시즌 경기를 다 플레이하면 웬만한 야구게임 커리어모드의 풀 시즌 수준으로 1회 차 플레이가 길어지기 때문에, 상혁은 매 경기마다 알고리즘이 표현할 플레이의 횟수를 정해놓고 나머지 타순은 생략하는 식으로 플레이 길이를 조정하는 알고리즘을 적용해 놓았다.
그 외에도 들어간 수많은 장치에 의해, 현재 ‘포수가 회귀를 숨김’은 나오는 인터페이스의 무지막지한 단순함에 비해 엄청나게 헤비한 게임이 되어가고 있었다.
경기가 시작될 때 AI가 상대 선수 및 아군 선수 리스트 중 ‘핵심 선수’를 뽑고, 전체적으로 그 선수들의 플레이를 중심으로 묘사 비율을 조정하여 최종적으로 나갈 텍스트를 선정한다.
그 와중에 플레이어의 행동으로 스코어가 변하면, AI는 다시 한 번 드라마를 재구성하여 새로운 이야기를 출력하는데, 대부분의 버그가 이 괴팍한 알고리즘에서 생겨날 정도로 구현 난이도가 어려운 편에 속했다.
처음 아이디어를 듣는 민준 조차 고개를 내 저을 정도였기에.
상혁이 회귀하기 전인 2020년대에 소설을 작성하는 AI는 존재하긴 했지만, 단순히 텍스트를 출력하는 것과 재미있는 소설을 쓰는 것은 전혀 다른 문제였다.
컴퓨터는 기본적으로 ‘재미’라는 것을 구분하는 능력은 없으니까.
그러나 상혁이 민준에게 요구한 것은, ‘재미있는 웹소설을 쓸 수 있는 프로그램’을 요구한 것이 아니었다.
“발상을 바꿔보자. AI가 재미있는 스토리를 짜게 하는 건 무리더라도, 이미 있는 야구 경기에서 어떤 플레이가 재미있는지는 판단할 수 있지 않아?”
“그러니까 처음부터 AI가 스토리를 짜는 그런 개념이 아니라, 야구 게임은 따로 돌아가고 거기서 어떤 플레이를 텍스트로 출력할지만 AI가 정한다고?”
“그렇지.”
“그럼 텍스트 몇 줄 만들려고 완전히 돌아가는 야구 시뮬레이터를 만든다는 거야? 그중에 태반은 출력도 안하고?”
“맞아.”
“간단하게 출력하려고 그래픽을 떼어놓고서 그 간단함을 위해 게임은 일부러 무겁게 만든다 이거지···. 무지 병신 같네.”
민준이 신이 나서 말했다.
“당장하자.”
그렇게 만들어진 결과물이 지금의 텍스트 게임이었다.
텍스트 게임답지 않게 무지막지한 용량과 복잡한 코드로 만들어진 괴상한 물건.
출력은 가장 단순하고 심플한 매체를 통해 전달되고 있었지만 그 안의 알고리즘은 매우 진지하게 유저에게 보여줄 텍스트를 선택한다.
민준도 처음엔 왜 상혁이 단순한 텍스트 게임에 복잡한 알고리즘을 적용하는 것인지 이해하지 못했지만, 결과물이 어느 정도 반영된 지금은 상혁이 왜 이렇게 만들자고 했는지 이해할 수 있었다.
진짜로 결과물이 압도적으로 재미있었으니까.
오히려 훨씬 많은 인원이 투입되어 개발 중인 로봇게임보다, 게임 자체의 재미로 보면 이쪽이 압도적이라고 할 수 있었기에 민준은 어째서 팀을 나눌 때 상혁이 로봇물이 아닌 이쪽에 본인이 메인 기획을 자처한 것인지, 그리고 어째서 단순한 텍스트 게임을 만드는데 민솔 대신 자신을 투입한 것인지 피부로 체감하고 있었다.
그리고 이게 겨우 상혁이 구현하려는 결과물의 20%를 돌파한 상태라는 것을 생각해볼 때, 완성된 결과물이 어떠한 파괴력을 낼지에 대한 상상을 할 때마다 기분이 좋아지는 민준이었다.
“처음엔 반신반의 했는데 진짜 재밌기는 해. 이거.”
“너 야구 팬 아니잖아.”
“그러니까 더 대단한 거지.”
그때 옆에 앉아 게임을 플레이하고 있던 현주도 한마디를 보탰다.
“맞아. 나도 처음엔 ‘엥? 왜 야구?’ 했는데 요즘 플레이해보면 야구팬이 아닌데도 재미있게 느껴지더라. 이유가 뭘까?”
두 사람의 이야기를 들은 상혁이 한숨을 쉬었다.
“그건 본질적으로 이 게임이 유저에게 필요한 정보를 ‘집어서’ 제공하기 때문이에요.”
“어? 그게 무슨 소리야?”
“사람이 도박에 언제 빠진다고 생각하세요?”
“흠···. 돈 땄을 때?”
“아뇨, 정확히는 필요한 정보를 자신이 알고 있다고 생각할 때 빠지는 거예요.”
상혁이 설명했다.
“간단하게 기존의 야구게임이랑 비교해보면, 기존의 야구 게임은 타석에 섰을 때 상대 투수나 포수에 대한 정보가 너무 넓게 제공되죠. 간단하게는 투수의 기본 구질이나 특성, 그리고 현재 체력정도를 표시하지만, 그거 가지고 ‘이번엔 반드시 정 중앙 강속구가 올 거야!’라고 판단하기엔 어렵거든요.”
반면에 ‘포수가 회귀를 숨김’같은 경우는 타석에 섰을 때 자잘한 정보는 싹 날려버리고 현재 투수가 어떤 심리를 하고 있는지를 예측하는 독백이 나온다.
예를 들어 전 타석에서 자신만만하게 던진 슬라이더가 홈런을 맞았을 때, 투수가 어떤 심리상태를 가지고 있는지, 타자의 입장에서 독백으로 분석해서 서술하는 표현이 나오는데, 이는 다음에 투수가 던질 구종에 대한 정보를 종합해서 AI가 출력하는 것이기 때문에 유저는 다음과 같은 텍스트를 보게 된다.
[3-3으로 팽팽한 상황에서 자신만만하게 던진 슬라이더가 담장을 넘어갈 때, 투수는 고민에 빠진다.
‘공이 손끝에서 미끄러졌나?’
‘아니면 단순한 공갈포에 운 나쁘게 맞은 건가?’
그에 대응하는 방법은 여러 가지가 있지만 상대의 키워드가 [검투사]인 것을 감안하면 아마도 지금 저 투수는 분노하고 있을 것이다.
‘내 공은 틀리지 않았어.’
라고.
이런 경우 포수가 어떤 사인을 보내든 투수가 고개를 젖고 있으면, 대부분 아까 얻어맞은 구종과 같은 구종이 같은 코스로 날아올 확률이 높다.
그리고 지금, 저 투수는 미친 듯이 도리질을 하고 있었다.
-1. 슬라이더를 온 힘으로 후려친다-
-2. 번트를 대 상대의 멘탈을 부순다-
-3.속지마라. 볼이 올 것이다-]
이런 식으로 현재 플레이에서 중요한 힌트만을 남기고 나머지를 제외하게 되면, 유저는 야구에 대한 깊은 지식 없이도 쉽게 게임에 몰입할 수 있다.
뭘 고민해야하는지, 게임이 정해주는 것이나 다름없으니까.
결국 투수가 어떤 구종을 선택할지 알고 있는 AI가 플레이어에게 적절한 수준의 텍스트를 띄워주는 것이기 때문에, 텍스트를 읽는 것만으로도 투수와 심리전을 하는 것 같은 기분을 느끼게 하는 것이 지금 상혁이 만들고 있는 게임의 진짜 매력이었다.
“그래도 어느 정도 익숙해지면 패턴이 좀 읽히더라. 특정 문장이 나오면 어떤 걸 골라야할지 뻔히 보이는 경향이 좀 있어.”
민준이 현재 상태의 단점을 지적하자 상혁도 고개를 끄덕였다.
사실 랜덤으로 주어진 정보와 전혀 다른 뜬금없는 구질을 던지게 해서 유저를 당황하게 만드는 방법도 있지만, 상혁은 심리싸움이 메인인 게임에 그런 랜덤 요소를 넣고 싶지 않았다.
“결국 패턴을 무지막지하게 늘리는 게 정답인데, 문제는 그게 작업량이 장난이 아니라는 거지.”
“지금은 네가 다 넣고 있지?”
“어.”
가장 기본적인 경우의 수만을 넣어놓았기 때문에 지금은 대부분의 문장이 특정 상황에서 반복 출력되고 있었지만, 상혁은 이 바리에이션을 늘리고 싶어 했다.
문제는 회귀 전에 야구 웹 소설을 몇 개 읽은 것이 상혁이 가진 데이터의 끝이라서, 그럭저럭 야구 느낌이 나는 정도까지는 구현이 가능하지만 반대로 야구팬이 보면 조금 어설퍼 보인다는 것이 문제였다.
“지수한테도 시켜봤는데 걔가 문장을 쓰면 너무 중2병 틱 해 지더라고.”
일본에서 나슈에게 교육을 받고 온 이후로 중2병기가 더 심해진 지수를 떠올리며, 민준이 고개를 저었다.
“애당초 네가 생각하는 웹 소설 스타일이란 거 자체가 지금 없는 거잖아.”
“맞아. 난 상혁이가 웹소설 스타일의 게임이라기에 웹소설이 이렇게 재밌는 건가 해서 몇 개 봤는데 완전 다르더라.”
현주가 그렇게 말하는 것도 당연했다.
지금은 2005년이었고 상혁이 셈플로 잡은 웹소설은 2017년에 연재되었던 ‘홈플레○트의 빌런’을 모티브로 하고 있었기 때문에.
현주가 말하는 2005년도의 웹소설 스타일과 2017년의 스타일은 꽤 큰 차이가 있었다.
“흠···. 스타일을 알려주면 심도 깊은 문장을 쓸 수 있는 작가가 필요하겠네요. 가급적이면 야구팬이면 더 좋고요.”
그때, 옆에서 조용히 듣고 있던 민솔이 상혁을 불렀다.
“야구팬이면 상혁오빠도 한명 알지 않아요?”
“어? 누구?”
“혁찬이요.”
혁찬은 예전에 민솔과 서연을 데리고 선문 중학교에서 게임을 만들던 기획자였다.
중간에 상혁이 붙잡고 게임 기획을 가르친 적이 있었기에 상혁도 혁찬에 대해서는 기억하고 있었다.
단지 야구팬이라는 것을 몰랐을 뿐.
“혁찬이는 확실히 글 좀 쓰지. 근데 혁찬이가 야구 팬 인줄은 몰랐는데?”
“엄청 광팬이에요. 게임 이야기 안할 때는 항상 야구 이야기를 하던 애라···.”
“그래? 어디 팬인데?”
“한화요.”
민솔의 이야기를 들은 상혁과 민준의 표정이 갑자기 연민으로 물들었다.
2005년 시즌인 지금이야 괜찮지만, 3년 후부터 5886899678이라는 성적 순위표 전설을 기록할 기나긴 암흑기를 맞이할 팀이기에.
당시 다른 대학교에서 국문과에 재학 중이던 혁찬을 팀에 끌고 오는 것은 그리 어렵지 않았다.
거기에 개발 중인 게임이 야구게임이라고 하자 잔뜩 흥분한 얼굴로 부실에 도착한 혁찬은, 무려 한화 유니폼을 입고 등장해 상혁의 가슴을 더욱 아프게 만들었다.
“국내 최강 야구팀 한화 이글스의 열성 팬을 찾으신 곳이 여기인가요?”
“오랜만이다. 혁찬아.”
상혁은 다른 말을 하는 대신, 조용히 혁찬의 어깨에 손을 얹고 초콜렛을 내밀었다.
“먹을래?”
그것은 앞으로 혁찬이 겪을 수많은 고통에 대한 애도의 표현이었다.
***
게임 두 개를 동시에 개발하면서, 동시에 라이브 중인 게임의 관리도 맡고 있는 상혁의 업무량은 늘 그렇지만 장난이 아니었기에, 상혁은 항상 해가 완전히 지고 난 심야에 집에 들어오곤 했다.
그런 부분은 회귀전과 비슷했지만 지금은 조금 달랐다.
적어도 스트레스는 받지 않았으니까.
만들고 있는 게임이 재미있으면, 으레 개발자는 즐거운 기분에 빠지기 마련이고 상혁 역시 CEO라는 과분한 직책을 맡고 있음에도 본질은 개발자였기에, 상혁은 콧노래를 부르며 집으로 향했다.
두 개성 강한 게임이 서로 너무나 다른 재미를 가지고 있어서 만드는 것이 즐거웠으니까.
그리고 그나마 걱정했던 팀원과 직원간의 갈등도 컨테스트를 통해 어느정도 해소되어 말 그대로 꽃밭인 개발길을 걷고 있는 상황이라, 요즘은 집을 거의 잠만 자는 장소로 활용하고 있는 상혁이었다.
상혁에게는 언제나처럼 똑같이 어둑어둑한 현관에 가서, 열쇠로 문을 열고, 아무도 없는, 아니면 때때로 밥을 얻어먹으러 온 민준이 맞아주는 현관으로 들어가는 것이 매일의 일상이었다.
아니, 그랬어야 했다.
‘저게 뭐지?’
상혁이 발견한 것은, 집 앞에서 웅크리고 앉아 있는 누군가의 모습이었다.
바닥에 박스를 깔고 무릎에 고개를 숙인 채 집주인을 기다리는 듯한 모습에 상혁은 전신의 근육이 긴장하는 감각을 느꼈다.
‘무기!’
안타깝게도 가방 같은 것을 챙기는 성격이 아니었기에 상혁의 손에는 아까 찬거리로 구매한 돼지고기밖에 없었고, 상혁은 ‘비닐봉지에 들어있는 돼지고기를 전력으로 휘두르면 강도를 무찌를 수 있을까’라는 생각을 하며 천천히 집 앞으로 걸어갔다.
그리고 집 앞에서, 자신을 기다리고 있는 형체의 주인이 왜소한 소녀라는 것을 알고는 더욱 긴장하게 되었다.
‘스토커!?’
일단 자기 입으로 떠들고 다니지는 않아도 외견상 본인 외모가 나쁜 편은 아니었기에, 상혁은 회사 내 여직원 사이에서도 나름 인기가 있는 편이었다.
젊고, 잘생기고, 돈도 많은데다 성격 자체도 친화력 그 자체였으니.
은근 슬쩍 대시하는 여직원도 많았지만 상혁은 그 부분에 대해서만큼은 완벽하게 철벽이었기 때문에 아직까지 아무런 스캔들이 없었지만, 그래도 간간이 고백을 하는 여직원이 발생하긴 했었다.
그러나 상혁은, 집 문 앞에 도착해서 자신의 생각이 완전히 착각이었음을 깨달을 수 있었다.
집 앞에서 부스스한 머리로 마치 노숙자 같이 엎어져 있는 존재는, 상혁에게도 익숙한 소녀. 서연이었기 때문에.
“서연아?!”
“오빠?”
“너 올 거면 연락을 하지 왜 집 앞에서 이러고 있어? 주소는 어떻게 알아냈고?”
“민준 오빠한테 물어봤어요.”
‘민준이 이 자식···.’
서연이 연락했다는 것을 자신에게 전달하지 않은 것은, 아마도 민준의 장난기 때문이었을 것이다.
상혁은 엎어져있는 서연의 팔을 붙잡고 일으켜 세우며, 안 그래도 마른편인 그녀의 팔이 더 가늘어졌다는 사실을 깨달았다.
“코즈에 씨가 밥 안줬냐!? 왜 이렇게 말랐어?”
“아···. 그림 그리느라 밥을 너무 대충 챙겨먹어서 그랬어요.”
“그런 거 치고는 중간에 한 장도 안 보내던데.”
상혁의 말에 서연이 배시시 웃었다.
“제가 만족할 수 있을 때 보여드리고 싶어서요.”
“일단 들어가자. 밥부터 줄게. 추운데 뭐하는 짓이야 이게.”
“북어국!”
“알았어. 그러니까 들어가자.”
상혁은 서연과 함께 집으로 들어갔다.
그리고 서연이 샤워를 하는 동안, 상혁은 밥을 차리며 서연이 씻고 나오기를 기다렸다.
“잠 옷 새것 있으니까 그거 입어.”
지난번에 서연이 갑자기 쳐들어온 이후로, 상혁은 집에 민준 외의 손님용으로 구비해둔 새 잠옷을 서연에게 주었고, 서연이 잠옷을 입고 나오자 식탁으로 안내하고는 식사를 차려 주었다.
그리고 식사를 하는 서연의 옆에서, 서연이 가방에서 꺼내 준 로봇 디자인을 심각한 표정으로 검토하기 시작했다.
“냠냠···. 어때요? 오빠?”
“삼키고 말해. 밥풀 튀어나온다.”
그렇게 말은 했지만 상혁의 시선은 여전히 서연이 건넨 그림에 집중되어 있었다.
그리고 순식간에 한 공기를 비운 서연이 상혁에게 한그릇 더 달라고 할지 고민하고 있는 사이에, 상혁이 보고 있던 종이를 내려놓았다.
“어때요?”
“한 그릇 더 줄까?”
“아, 그게 중요한 게 아니잖아요! 어떠냐고요!”
상혁은 말없이 자리에서 일어나 서연이 비운 그릇을 들고는 밥을 떴다.
그리고는 서연의 앞에 그릇을 내려놓으며 세상의 모든 뿌듯함을 다 담은 듯한 표정으로 말했다.
“역시. 이래야 내 서연이지.”