004. 오버스펙의 소스코드
사실 1998년이라고 해서 대한민국에 인터넷이 되는 환경이 아예 조성되지 않은 것은 아니었다.
제한적이나마 전화선을 통해서 56kbps속도로 인터넷에 접속하는 것이 가능하기도 했고(당시엔 그것을 ‘고속’모뎀이라고 불렀다), 무리하게 전화선으로 인터넷이나 pc통신을 사용하다 전화비 폭탄을 맞은 이웃집 형 누나 이야기를 심심찮게 들을 수 있는 시절이기도 했다.
정확히 말하면, 1998년의 대한민국은 VT(Virtual Terminal)기반의 PC통신이 인터넷으로 넘어가기 직전의 과도기라고 볼 수 있었다.
그렇기에 당시 정기적으로 PC통신이나 인터넷에 접속할 수 있는 인간들은 굉장히 극소수였다.
인터넷이 일상화된 지금이야 백수는 방에서 종일 인터넷이나 하는 이미지지만, 당시 백수가 그런 식으로 살려면 금수저 정도는 되어야 한다는 이야기였다.
그래도 그 정도는 아니라도 90년대 후반부터 퍼지기 시작한 pc 붐과 함께 컴퓨터 관련 업무를 배우고 싶어하는 대학생들은 꽤 늘어나고 있었고, 민준과 상혁이 찾아간 PC통신 카페도 그런 수요에 맞추기 위해 자연스럽게 생긴 공간이었다.
사실, 두 사람이 회귀한 시기가 딱 1년만 뒤였어도 두 사람은 인터넷이 되는 PC방을 찾는 게 그리 어렵지 않을 것이었다.
그러나 정말 안타깝게도 우주크래프트가 발매한 지 몇 달도 되지 않은 상황이라 두 사람은 pc가 되는 카페를 찾기 위해서 대학교 근처로 와야 했다.
물론 딱 보기에도 중학생과 별반 차이 없는 고1의 신체를 가진 두 사람이기에 보통은 대학생 형 누나들이 들어가는 공간에 들어가면 쫄기 마련이지만, 상혁은 거침없이 PC카페의 문을 열고 들어갔다.
애당초 상혁이나 민준이나 정신 연령은 40대였기 때문에, 아무리 물리적으로 눈앞에 대학생들이 있다고 해도 두 사람이 보기엔 그냥 어린놈들로 보일 뿐이었다.
그러나 그곳에 있는 대학생들은 갑작스레 어린 남학생 둘이 대학생들이 주로 있는 공간에 들어오자 분명 길을 잃은 것이나 아는 누나나 형을 찾으러 온 것이라 생각했다.
“안녕? 혹시 누구 아는 사람 만나러 왔니?”
그렇기에 알바생인 희진이 두 사람에게 그렇게 물은 것은 매우 자연스러운 대응이라 할 수 있었다.
그러나 그런 희진의 대응을 받는 상혁의 태도는 전혀 자연스러운 것이 아니었다.
“혹시 56kbps모델으로 PC통신 되는 자리 있어요?”
“어? 통신 쓰러 온 거야?”
“가능하다면 인터넷도요.”
그 말은 이 어려 보이는 두 사람이 손님이라는 이야기였다.
“어···. 음···. 인터넷 되는 컴퓨터는 저쪽 구석에 있어.”
“요금은요?”
“여긴 따로 요금은 안 받아. 음료는 주문해야 하지만. 뭘로 줄까?”
회귀 전에는 자주 마셨지만, 고등학생이 된 이후에는 커피를 잘 마시지 않게 되었기 때문에 상혁은 오랜만에 아이스 아메리카노를 주문했다.
잠시 고민하던 민준도 같은 것을 주문했고, 두 사람은 자리에 앉아 PC를 켜고 통신망에 접속하기 시작했다.
다행히도 두 자리 모두 비어있었기에 상혁이 인터넷쪽에 업로드를, 민준은 PC통신 자작게임 게시판에 게임을 업로드 하기로 했고 두 사람은 바로 게임을 업로드 시키고는 자리에 앉아 커피를 마시기 시작했다.
당연하게도 56kbps모뎀으로 돌아가는 컴퓨터에서는 1.44mb짜리 게임 하나도 업로드 하는데 1시간 가까이 걸린다.
희진은 그런 두 사람을 보고 여기서는 보기 힘든 어린 남학생 둘이 갑자기 찾아와 PC통신을 켜더니 번개처럼 무언가의 페이지를 찾아 들어가고, 그 이후에는 멍하니 앉아있자 PC통신을 할 줄 모르는가 보다 하고 생각했다.
“커피는 맛있니?”
마침 한가했던 희진이 말을 걸자 상혁이 미소를 지으며 말했다.
“맛있네요.”
“PC는 왜 안 써? 게임 틀어줄까?”
“게임 하러 온 게 아니라 게임 올리러 온 거에요.”
“게임을 올려?”
“저희가 만든 게임을 PC통신 게시판에 올리려고요.”
“게임을 만들어? 너희가?”
“네. 보여드릴까요?”
상혁은 바로 익스트림 발리볼의 압축을 풀고 실행 파일을 클릭했다.
그러자 ‘play to win’이라는 문구와 함께 꽤나 그럴싸한 메인 화면이 나타났다.
“피○츄 배구?”
“베이스는 그건데 좀 달라요.”
이윽고 화면이 나오자 상혁은 AI대전을 선택하여 게임 플레이를 하기 시작했고 희진은 게임 화면을 보고 깜짝 놀라고 말았다.
물론 대학생인 희진도 같은 학교에 게임을 만들고 있는 동아리 인원을 몇 명 알고는 있었다.
그러나 상혁과 민준이 만들어낸 익스트림 발리볼은 희진이 알고 있는 피카츄 배구와는 완전히 다른 게임이라고 봐도 무방했다.
제대로 된 배구 게임의 스킬. 커맨드로 호출되는 캐릭터별 필살기등 극도의 단순함에서 재미를 주는 피카츄 배구와는 완전히 다른 재미를 주는 게임이었다.
뭣보다 캐릭터 컨셉이 뜬금없다는게 희진의 시선을 끌었다.
상혁이 조종하는 캐릭터는 카우보이 복장을 하고 있었는데 상대방은 곰 탈을 쓴 난쟁이였다.
그런가 하면 우주비행사가 나오는가 하면 다마고치에나 나올 것 같은 괴상한 생물체도 나왔다.
사실 그건 캐릭터 디자인을 완전히 자율로 친구들에게 맡긴 상혁의 탓이었지만 오히려 그 근본 없는 캐릭터 라인업이 매력적으로 보이는 게 익스트림 발리볼의 특징이었다.
“어, 저 캐릭터 마음에 든다. 나도 해 봐도 돼?”
“그럼 저랑 대전하실래요?”
“둘이서도 할 수 있어?”
“그건 피○츄 배구도 되는 건데 당연하죠.”
“좋아, 나도 피○츄 배구는 좀 하는 편이었으니까, 각오하는 게 좋을 걸?”
민준은 희진이 앉기 좋도록 상혁의 옆자리에서 다른 자리로 이동했고 희진은 상혁의 옆에 앉아 대전을 시작했다.
“너는 캐릭터가 많은데 왜 나는 없어?”
“이거 많이 이기면 캐릭터가 늘어나요. 저는 제 세이브 디스켓을 넣어서 다 열려있는 거고.”
“아, 그래?”
“이 캐릭터가 마음에 드신다고 한 거죠? 자리 바꿔서 하죠. 저는 기본 캐릭터로 할게요.”
상혁은 희진과 자리를 바꿨다.
그리고 기본 버튼에 대해 설명한 뒤 게임을 시작했다.
“그 캐릭터는 리시브를 할 때 게이지가 많이 차고요, 게이지가 찼을 때 필살기를 쓰면 공이 2개가 돼요. 기본적으로 공 2개중에 1개만 진짜니까 50% 확률로 무조건 들어가는 필살기라고 생각하세요.”
“어? 응!”
희진이 상혁의 말대로 게이지를 모아 필살기를 쓰자, 상혁은 간단하게 희진의 필살기를 막았다.
“막혔어!?”
상혁의 캐릭터는 블록에 게이지 보정이 붙어있는 캐릭터였기에 상혁이 희진의 공격을 블록하자마자 게이지가 꽉 찼고 이번엔 상혁이 필살기를 시전했다.
“우와아! 뭐야 이거!?”
공이 마치 회오리처럼 회전해오자 희진은 당황해서 공을 놓치고 말았다.
“와! 니 캐릭터가 더 세잖아!”
“아니 이거 궤도가 빙글빙글 도는 원형이라 쏘는 거리를 잘못 맞추면 네트에 막혀요.
그냥 모양만 화려하지 허접 필살기에요.”
“오~. 여러 가지 있구나?”
실제로 상혁이 희진에게 대응법을 알려주자 상혁의 필살기는 매번 희진에게 블록당하기 시작했다.
“오! 진짜로 이 자리에서 점프하면 무조건 막히네?”
“제 캐릭터는 기본 캐릭터라 약하니까요.”
“재밌다.”
결과는 봐주면서 플레이한 상혁의 패배.
희진의 캐릭터가 이기자 화면 중앙에 희진의 캐릭터가 출력되며 “win!” 이라는 글자와 함께 +50p라는 메시지가 출력되었다.
“이건 뭐야?”
“그거는 이제 메인화면에서···”
상혁은 희진의 캐릭터를 골라 리시브에 포인트를 추가로 부여했다.
“기본적으로 기술마다 위력이 있어서 능력치가 안되면 맞는 위치에 있어도 못 막아요. 이렇게 능력치를 올려두면 센 기술이 와도 막을 수 있죠.”
“아, 레벨 업 같은 거구나?”
“맞아요.”
“오, 배구 게임인줄 알았는데 그런 것도 있네?”
“그렇게 게임을 하고 성장이나 획득한 캐릭터는 저장했다가 다음에 또 부를 수 있어요. 집에서 이어서 하고 싶으면 디스켓에 저장할 수도 있고요.”
사실 이 육성과 성장 부분이 단순 대전 게임이던 피○츄 배구에서 상혁이 가장 크게 변화시킨 부분이었다.
기본적으로 스트리트 파이터 형태의 대전게임은 동전을 넣고 플레이해도 하이스코어에 알파벳 3글자 넣는 거 말고는 남는 것이 없다.
오로지 플레이어의 실력 상승이 플레이어에게 남는 모든 것이다.
그러나 실력의 성장은 눈에 보이지 않기에 목표로 삼기가 쉽지 않다.
그래서 상혁은 라이트 유저도 바로 알 수 있는 목표인 ‘캐릭터 획득’ 과 ‘능력치 상승’의 개념을 피○츄 배구에 넣은 것이었다.
그럼에도 불구하고 결국 모든 유저는 어렵지 않게 캐릭터 능력치를 최대치까지 찍을 것이고 그 이후부터는 다시 실력 싸움이 된다.
그러나 일단 처음 시작하는 유저에게는 ‘포인트의 획득’ 이라던가 ‘캐릭터의 성장’ ‘캐릭터의 획득’같은 요소가 접근하기 쉬운 목표로 보이게 되는 것이다.
그리고 그런 상혁의 의도대로, 희진은 곧 익스트림 발리볼의 세계에 빠져 들었다.
그리고 상혁은 희진이 익숙해진 듯 보이자 점점 본 실력을 드러내기 시작했다.
“아 씨, 너 너무 잘하잖아!”
“개발하는 두 달 동안 계속 테스트했으니까요.”
“이걸 두 달 만에 만들었다고? 너희가?”
“원래 더 빠를 수도 있었는데 학생이라서요. 수업 받느라 좀 늦었어요.”
“그래도 대단한 거 같은데?”
희진이 감탄하는 사이, 두 사람을 보고 있던 한 남자 대학생이 다가와 희진에게 말을 걸었다.
“어? 희진아? 걔네는 뭐야? 남동생?”
“어? 아니? 손님.”
“손님이랑 게임이나 하고 너 팔자 좋다?”
“이것도 일이거든? 그것보다 이거 봐라? 이거 얘네가 만든 게임이래.”
“뭔데, 피○츄 배구? 어? 좀 다른데?”
“엄청 재밌어! 너도 한번 해봐.”
상혁은 내친김에 남학생도 압살하려 했다. 뉴비를 때리는건 항상 즐거운 일이니까.
그러나 그때 민준이 상혁의 어깨를 두드렸고 상혁은 민준의 컴퓨터 화면을 보고는 업로드가 완료되었음을 깨달았다.
“아, 저희는 이만 가봐야 할 것 같아요.”
“벌써? 게임 재밌었는데.”
“여기 두 자리 다 깔아놨고 안 지울 테니까 한가할 때 하세요.”
“어? 그래도 돼?”
“예. 어차피 오늘 PC통신 게시판에 무료로 올린 건데요.”
그렇게 말한 상혁은 PC에서 디스켓을 꺼내며 말했다.
“그럼 계산 해야 하는데 커피값 은 얼마죠?”
“응? 아냐, 이건 내가 사는 걸로 할게. 대신 다음에 와서 또 같이 게임하자. 오늘 한판도 못 이겼으니까.”
희진의 말에 상혁은 씨익 웃으며 답했다.
“그럼 답례로 제 세이브 디스켓 드릴게요. 그럼 캐릭터 해금하느라 노가다 안 해도 될거에요.”
“어?! 진짜?! 앗싸!”
“그럼 누나, 저흰 가볼게요. 다음에 또 봐요.”
“응! 또 봐!~~”
희진은 즐거운 듯 손을 흔들어 두사람을 배웅했다.
그리고 아까 말을 걸었던 남학생한테 물었다.
“고등학생 같은데 두 달만에 게임을 만들었대. 너 게임 제작 동아리였지? 니가 보기엔 어때?”
희진이 말을 걸었지만 남학생은 대답이 없었다.
단지 버튼을 이리저리 누르며 게임 화면을 이곳저곳 돌아볼 뿐이었다.
“이걸 정말로 쟤네 둘이서 두 달 만에 만들었다고?”
한참을 게임을 살펴보던 남학생의 입이 쩍하고 벌어졌다.
“가게에 디스켓 있다고 했지? 좀 빌려줘.”
그리고는 희진에게 디스켓을 받아 게임을 카피하기 시작했다.
자신의 동아리 부원들에게 보여주기 위해서.
사실 두 사람이 생각하기에 본인들이 만든 게임의 수준은 그리 특출난 수준은 아니었다.
상혁은 단지 ‘인터넷이 안 되는 환경’에서 ‘친구와 함께 즐기기 좋은’ 게임으로 당시 유행했던 피카츄 배구를 골랐던 것뿐이었고 새로 추가 된 아이디어도 2020년 기준으로는 당연한 수준의 것들이었기 때문이었다.
***
문화대학교 게임제작동아리 ‘한길’의 기획 담당인 태훈이 익스트림 발리볼을 카피해간 이유는, 게임에 적용되어있는 15년차 기획자인 상혁의 개발 노하우를 알아보았다던가 하는 이유는 아니었다.
애당초 익스트림 발리볼을 플레이한 것도 아니었고, 애당초 당시 대학생들의 게임 기획력이 그렇게 높은 수준이 아니었기 때문에.
단지 태훈은, 자신들이 현재 몇 달째 개발중인 게임보다 월등히 부드러운 동작을 보여주고 있는 이 게임이 자신들의 게임보다 용량이 적다는 것이 신기해서 게임을 받아간 것이었다.
그렇게 동아리로 돌아온 태훈을 보고 같은 동아리의 프로그래머 경찬은 커피 사러 간 녀석이 빈손으로 돌아오자 의아한 표정을 지으며 태훈에게 물었다.
“너 커피는 어따 팔고 디스켓을 들고 오냐?”
“너 이거 뜯어볼 수 있냐?”
대답대신, 태훈은 경찬에게 디스켓을 내밀었고 경찬은 대수롭지 않은 표정으로 디스켓을 받아들었다.
“일단 봐봐.”
경찬은 디스켓을 넣고 안의 파일복사해 압축을 풀었다.
그리고 바로 눈에 띄는 파일을 찾을 수 있었다.
“source code? 아예 소스코드를 넣어놨다고? 외국 프로그래머인가?”
존 카멕의 doom도 그렇지만 외국에서는 간간이 오픈소스 형태로 소스코드를 완전히 공개한 게임도 간간이 존재했기에 경찬은 이것도 외국인이 만든 게임이라고 생각했다.
그리고 그 생각은 민준이 첨부해놓은 소스코드 파일을 열어보는 순간 완전히 박살났다.
‘주석이 한국언데?’
거의 해설 수준으로 꼼꼼히 적어놓은 깔끔한 주석을 본 경찬은 순식간에 민준이 짜놓은 코드에 정신을 빼앗겼다.
그리고 민준이 만든 코드를 본 경찬은, 옆에서 부르는 태훈의 말도 무시한 채 민준이 짠 코드를 보는데 완전히 빠져들었다.
“야, 어떤 거 같냐고!”
“이거 어디서 난거야? 완전 전문가님이 만든 원본 소스 코드 같은데?”
“커피 사러 간 넷 카페에서 고등학생 둘이 만든 게임이라고 하길래 얻어온 건데?”
“정말 이걸 고등학생 둘이서 만들었다고 했다고?”
“그렇다니까? 걔네 얼굴을 내가 직접 봤어.”
“어디 학교 애들인데?”
“몰라. 근처 교복은 아니었어.”
잠시 후, 겨우 코드 훑어보기를 마친 경찬은 태훈과 함께 수수께끼의 고등학생들에 대한 이야기를 하고 있었다.
“어떤 거 같아? 왜 우리 거보다 용량이 적어?”
“소스코드를 본 게 아니라서 확답은 못하겠지만 저 코드의 태반은 내가 지금까지 듣도 보도 못한 코드다.”
“그래?”
“어. 솔직히 프로그래밍이라는게 책이 겁나 다양한 것도 아니고 어차피 배우는 게 거기서 거긴데 이해 안가는 알고리즘이 꽤 되네. 어디서 누구한테 배운 건지 궁금할 정도로.”
사실 민준이 쓴 코드는 대부분 스택 오버플로우(Stack Overflow)라는 인터넷 커뮤니티에서 배운 코드들이었다.
책이나 교수의 지도, 혹은 PC통신 커뮤니티를 통해 코딩을 배워야하는 태준과는 다르게, 2020년대를 살던 프로그래머들은 자신들이 아는 것을 인터넷을 통해 공유하고 있었고 대부분의 난제들은 스택 오버플로우 사이트를 통해서 답변을 받을 수 있었다.
그것도 세계 최고 수준의 프로그래머들의 답변을.
심지어 스택 오버플로우에서 1위를 밥먹듯이 하던 존 스킷(John Skeet)은 구글의 시니어 엔지니어였다.
1998년에 존 스킷 수준의 프로그래머에게 코드를 배우려면 실리콘 밸리에 가서 전문가를 찾아 직접 배워야 했겠지만, 2020년에 살던 민준은 인터넷으로 어렵지 않게 전문가들의 코드를 접할 수 있었기에 자연스레 효율적인 알고리즘과 코드들을 사용할 수 있었던 것이다.
그리고 민준의 그 코드들은 책으로 취미 삼아 코딩을 배우던 대학생 프로그래머 경찬에겐 커다란 충격을 주고 있었다.
그런 경찬의 표정을 본 태훈이 경찬에게 조심스레 물었다.
“너랑 비교하면 어때?”
그러자 경찬이 보여주는 표정은, 정말로 ‘이 미친놈이 지금 무슨 말을 하는가’ 하는 표정이었다.
“나랑 비교해서 어떠냐고?”