코로나로 망해서 컵라면 먹던 30대, '비누 거품' 하나로 인생 역전하다
하린이 처음 게임을 만난 날은, 날짜보다 공기의 감촉으로 더 선명하다. 창문 틈으로 들어오던 바람은 늦여름 특유의 습기를 품고 있었고, 방바닥은 낮에 데워진 열이 아직 남아 미지근했다. 거실에서 TV 소리가 작게 흘렀고, 어른들은 서로의 하루를 정리하느라 바빴다. 하린은 조용히 자기 방으로 들어가 책상 위에 놓인 낡은 컴퓨터 전원 버튼을 눌렀다. 팬이 돌아가는 소리가
“이제 다른 곳으로 데려가 줄게”
라고 말하는 것처럼 들렸다.
처음 화면이 켜졌을 때 하린은 게임이 ‘그냥 재미있는 것’이라고만 생각했다. 그러나 몇 번이고 같은 스테이지를 반복하는 동안, 하린의 마음속에는 설명할 수 없는 감정이 쌓였다. 잘했을 때의 통쾌함과 실패했을 때의 분함은 물론, 한 번 더 해보겠다고 결심하는 순간의 용기 같은 것. “다시”라는 버튼은 작은 사각형에 불과했지만 하린에게는 스스로를 다시 믿어 보게 하는 문이었다. 그 문이 언제든 열려 있다는 사실만으로 하린은 어쩐지 안심할 수 있었다.
학교에서 하린은 눈에 띄는 아이가 아니었다. 성적은 나쁘지 않았지만 유난히 잘하지도 않았다. 친구들과 어울릴 때도 늘 한 발 뒤에서 웃는 편이었다. 그런데 게임을 할 때만큼은 달랐다. 하린은 화면 속에서 누구보다 성급하고, 누구보다 신중하고, 누구보다 끈질겼다. 손가락은 빠르게 움직였지만 머릿속은 차분했다. 반복이 싫지 않았다. 하린은 같은 길을 여러 번 지나갈수록 그 길의 법칙을 배우는 자신을 느꼈다.
“여기는 이렇게 하면 통과해.”
“이 타이밍엔 반드시 기다려야 해.”
“이 상자를 깨면 숨겨진 길이 열려.”
하린은 게임 속에서 규칙을 발견하는 재미를 알아갔다.
어른들은 말하곤 했다.
“게임은 적당히 해야지.”
“게임은 그냥 놀이지.”
하린은 그 말이 틀렸다고 생각하지 않았지만, 그 말이 전부라고도 생각하지 않았다. 하린이 느끼는 게임은 단지 ‘시간을 태우는 것’이 아니라, 마음을 움직이는 무언가였다. 어떤 게임은 하린을 웃게 했다. 어떤 게임은 하린을 울컥하게 만들었다. 어떤 게임은 하린이 모르는 단어를 찾아보게 했다. 하린은 가끔 “이런 걸 만든 사람은 대체 어떤 사람일까”를 상상했다. 누군가의 상상, 누군가의 손끝, 누군가의 밤이 모여 이렇게 정확히 누군가의 마음을 건드릴 수 있다면, 그건 단순한 놀이 이상의 무엇이 아닐까.
하지만 하린은 그 생각을 말로 꺼내지 못했다. 이유를 모르는 건 아니었다. 세상은 ‘좋아함’을 이해해 주는 것 같지만, ‘좋아함으로 먹고사는 일’에는 금세 표정을 바꿨다. 하린은 어른들 앞에서 “좋아해요”라고 말하는 순간, 그 좋아함이 갑자기 가벼운 취미로 납작해지는 느낌이 싫었다. 그래서 하린은 침묵했다. 좋아한다는 마음을 숨기려는 게 아니라, 그 마음을 지키고 싶어서였다. 지켜야 더 커질 수 있을 것 같았으니까.
하린은 훗날 깨닫는다. 좋아함은 설명을 잘해서 증명되는 게 아니라, 오래 살아남아서 증명되는 것이라는 걸.
전환점은 아주 우연했다. 어느 날 동네 도서관에서 하린은 얇은 책 한 권을 발견했다. 제목에는 “게임 만들기”라는 단어가 있었다. 하린은 그 제목만으로도 심장이 조금 빨라졌다. 책은 친절하지 않았고, 단어는 낯설었다. 변수, 조건문, 반복문. 처음엔 외계어처럼 보였다. 그런데 하린은 이상하게도 도망치고 싶지 않았다. 게임에서 길이 막히면 하린은 돌아가 다른 길을 찾거나, 반복해서 연습했다. 코드도 같지 않을까. 하린은 책을 빌려 와서 밤마다 한 장씩 따라 했다. 오류가 나면 화면에 낯선 글자가 떠올랐고, 하린은 그 글자를 검색했다. 검색을 하면 더 낯선 글자가 등장했다. 그때마다 하린은 분해하듯 읽었다. 어쩌면 하린은 이미 어릴 때부터 게임을 분해하는 시선을 갖고 있었는지도 모른다.
하린이 처음 ‘만든’ 것은 정말 단순한 것이었다. 화면 가운데 네모 하나가 있고, 방향키를 누르면 움직였다. 충돌 판정도 없고, 목표도 없고, 점수도 없었다. 그런데 하린은 그 네모가 움직이는 순간 숨이 잠깐 멎는 것 같았다. 내가 누른 키가 내가 쓴 문장으로 바뀌고, 문장이 다시 화면의 움직임이 된다. 하린은 그때 처음으로 자신이 ‘플레이어’에서 ‘만드는 사람’으로 건너가는 다리를 밟았다는 걸 느꼈다. 다리는 흔들렸고, 밟는 감각은 낯설었지만, 분명 그쪽으로 가는 길이 있었다.
그날 이후 하린의 게임은 달라졌다. 여전히 하린은 게임을 즐겼지만, 즐기는 방식이 변했다. 예전엔 스테이지를 깨는 데만 집중했다면, 이제는 스테이지가 왜 이런 구조인지도 생각했다. 튜토리얼은 왜 이렇게 설명하는지, 보상은 왜 이 타이밍에 주어지는지, 난이도는 왜 여기서 급격히 오르는지. 하린은 게임을 사랑해서 분석했다. 비판하려는 게 아니라 더 깊이 이해하고 싶었다. 좋아하는 노래를 계속 듣다 보면 어느 날 멜로디가 아니라 화성에 귀가 가는 것처럼, 하린은 재미의 표면 아래에 있는 설계를 보고 싶어졌다.
중학교에 들어가자 하린은 동아리에 가입했다. 컴퓨터 동아리라고 해서 모두가 게임을 만들 줄 아는 줄 알았지만 현실은 달랐다. 자격증 대비, 문서 작성, 간단한 코딩 과제. 하린은 실망했지만, 그 동아리에서 아주 중요한 걸 배웠다. 질문하는 법과, 함께 배우는 법이었다. 하린은 누군가가 모르는 걸 부끄러워하지 않는 모습을 보았고, 누군가가 자신의 실패를 공유하는 순간 오히려 팀이 빨라진다는 걸 보았다. 하린은 혼자서 밤을 지새우던 습관을 조금씩 바꿨다. 함께 하면 더 멀리 갈 수 있다는 걸 몸으로 알게 됐다.
하린은 친구 둘과 팀을 만들었다. 한 명은 그림을 좋아했고, 한 명은 음악을 좋아했다. 셋은 방과 후 빈 교실에서 노트북을 펴고
“우리 게임은 뭐가 재미있을까”
를 묻는 데 한 시간을 썼다. 답은 쉽게 나오지 않았다. 하린은 그 시간이 싫지 않았다. 재미를 정의하는 건 어려웠지만, 그 어려움이 ‘진짜 만드는 일’의 냄새 같았으니까. 셋은 작은 목표를 세웠다.
“이번 방학이 끝나기 전에, 시작부터 엔딩까지 있는 아주 짧은 게임을 하나 완성하자.”
하린은 그 목표를 적어 놓고, 매일 한 줄씩이라도 앞으로 가겠다고 마음먹었다.
첫 프로젝트는 처참했다. 일정은 무너졌고, 파일은 꼬였고, 서로의 기대는 엇갈렸다. 하린의 코드는 한 번씩 이상한 곳에서 멈췄다. 음악 파일은 용량이 커서 모바일에서 끊겼고, 그림은 해상도가 맞지 않았다. 무엇보다 셋은 서로의 피로를 읽을 줄 몰랐다.
“왜 이거 아직도 안 돼?”
“왜 이렇게 느려?”
그 말들이 쌓여 분위기는 딱딱해졌다. 결국 방학 마지막 주, 셋은 미완성 파일을 켜놓고 멍하니 앉아 있었다. 하린은 집에 돌아와 이불을 뒤집어쓰고 울었다. 실패가 아픈 건 성적표가 아니라, 사랑하던 것을 제대로 다루지 못했다는 자책 때문이었다.
하지만 하린은 다음 날 다시 노트를 펼쳤다. 게임에서 실패하면 ‘다시하기’가 뜬다. 현실에도 그런 버튼이 있다면, 누르는 건 결국 내 손이다. 하린은 리트라이를 누르기로 했다. 대신, 방식은 바꾸기로 했다. 하린은 처음으로 기록을 시작했다. 어떤 결정을 했는지, 왜 그렇게 했는지, 어디서 시간이 새는지, 다음엔 무엇을 줄여야 하는지. 그 기록은 시간이 지나며 하린의 두 번째 머리가 되었다. 감정이 흔들려도 기록은 흔들리지 않았다. 기록은 하린에게 “지금 너는 실패한 사람이 아니라, 배우는 중인 사람”이라고 말해 주는 증거였다.
고등학교로 올라가면서 하린의 고민은 더 현실이 됐다. 대학, 전공, 취업. 모두가 자기 이야기를 급하게 써 내려갔다. 하린은 가족에게 처음으로 말하려고 마음먹었다.
“나, 게임 만드는 쪽으로 진짜 해보고 싶어.”
말을 꺼내는 순간 목소리가 생각보다 작아져 하린은 스스로 당황했다. 가족은 잠시 침묵했다. 하린은 그 침묵이 거절처럼 느껴져 가슴이 쿵 내려앉았다. 그런데 아버지가 물었다.
“왜 그렇게 하고 싶니.”
비웃는 목소리가 아니라, 진짜 이유를 듣고 싶다는 얼굴이었다.
하린은 그제야 자신이 오래 숨겨 왔던 마음을 천천히 풀었다. 게임을 하며 느꼈던 감정들, 실패 화면 뒤에서 다시 시작할 때 생기는 작은 용기, 밤에 혼자 만들던 네모가 움직였을 때의 뜨거움. 그리고 언젠가, 내가 만든 게임을 누군가가 플레이하고 그 사람의 하루가 조금 달라지는 걸 보고 싶다는 상상. 하린의 설명은 완벽하지 않았다. 전문 용어도 없었고, 장래 계획도 빈틈이 많았다. 하지만 그 좋아함은 오래된 것이었고, 오래된 것은 쉽게 부서지지 않는다. 어머니는 잠시 생각하더니 조용히 물었다.
“그럼 뭘 준비해야 하니.”
그 질문은 하린에게 허락처럼 들렸다.
하린은 그날부터 공부를 ‘같은 방식’으로 하지 않았다. 목표가 생기면 공부는 도구가 된다. 하린은 수학을 문제집의 점수로만 보지 않았다. 움직임을 만들고, 물리감을 만들고, 확률을 다루고, 시스템의 균형을 잡는 언어로 읽었다. 영어는 시험이 아니라 문서였다. 해외 개발자들의 글을 읽으며 하린은 ‘세상 어딘가에는 나처럼 고민하는 사람들이 이미 있다’는 안도감을 얻었다. 하린은 나 혼자만 이 길을 가는 게 아니라는 사실이 힘이 된다는 걸 배웠다.
하린은 포트폴리오를 만들기 시작했다. 거창한 프로젝트보다 끝까지 완성한 작은 게임들. 시작 화면부터 엔딩 화면까지, 최소한의 기능으로라도 끝을 보는 연습. 하린은 ‘완성’이 얼마나 어려운 단어인지 체감했다. 중간까지는 누구나 간다. 끝까지는 소수만 간다. 하린은 소수가 되고 싶었다. 그래서 기능을 줄였다. 욕심을 줄였다. 대신 디테일을 남겼다. 작은 효과음, 안내 문장, 불편한 버튼 위치, 처음 하는 사람이 헤매는 지점. 하린은 ‘작은 불편이 재미를 갉아먹는다’는 걸 경험으로 배웠다.
가끔 하린은 비교의 늪에 빠졌다. 인터넷에는 하린보다 어린 나이에 이미 상을 받은 사람도 있었고, 며칠 만에 멋진 데모를 만든 사람도 있었다. 하린은 그 결과물을 보며 스스로가 느리다고 생각했다. 느리면 뒤처지는 걸까. 하린은 불안해졌다. 하지만 그때마다 하린은 기록 노트를 펼쳤다. 남과 비교하는 대신 어제의 하린과 비교했다. 지난달엔 이해하지 못했던 개념을 오늘 이해했는지, 예전엔 잡지 못했던 버그를 지금은 잡는지, 한 번에 포기하던 문제를 지금은 얼마나 오래 붙잡는지. 하린은 느리더라도, 방향이 맞으면 도착할 수 있다는 걸 믿기로 했다.
대학에 합격한 날, 하린은 기쁘기보다 이상하게 조용했다. 꿈을 향한 문이 열리는 순간은, 종종 환호보다 침묵으로 다가온다. 하린은 캠퍼스에서 첫 수업을 들으며 당황했다. 기대했던 게임 이야기가 아니라 자료구조, 운영체제, 컴퓨터 구조 같은 단어들이 쏟아졌다. 하린은 잠깐 실망했다.
“나는 게임을 만들고 싶은데, 왜 이렇게 딱딱한 걸 배워야 하지.”
그런데 시간이 지나며 하린은 깨달았다. 재미는 위에 얹는 장식이 아니라, 아래에서 받치는 구조 위에서만 오래 버틴다는 것을. 시스템이 흔들리면 감정도 무너진다는 것을. 하린은 딱딱한 공부를 ‘재미의 기초공사’라고 부르며 스스로를 설득했다.
하린은 대학에서 새로운 사람들을 만났다. 게임을 좋아하는 사람, 게임을 싫어하는 사람, 게임을 연구하는 사람, 게임을 예술로 보는 사람. 하린은 그들과 이야기하며 ‘게임’이라는 단어가 얼마나 넓은지 알게 됐다. 누군가는 게임을 기술이라고 했고, 누군가는 게임을 이야기라고 했다. 누군가는 게임을 서비스라고 했다. 하린은 그 모든 말이 맞다고 느꼈다. 그리고 마음속에 작은 기준을 세웠다. 나는 그중에서도 ‘사람의 시간을 존중하는 게임’을 만들고 싶다. 웃기든 울리든, 짧든 길든, 플레이어가 “내 시간이 헛되지 않았다”라고 느끼게 하는 게임.
하린은 스터디를 만들었다. 주말마다 모여 작은 목표를 정하고, 그 목표를 다음 주까지 반드시 끝내기로 했다. 꼭 훌륭한 결과물이 아니어도 좋았다. 중요한 건 “끝까지 가보는 연습”이었다. 팀원들은 종종 포기하고 싶어했다. 버그가 해결되지 않는 날, 구현이 막히는 날, 생활이 바쁜 날. 하린도 흔들렸다. 하지만 하린은 팀원들에게 말했다.
“이번 주는 딱 여기까지만 가자. 대신 여기까지는 끝내자.”
작은 끝은 큰 끝의 연습이다. 하린은 작은 끝을 반복하며 자신을 단련했다.
인턴 지원 시즌이 다가왔다. 하린은 자기소개서를 쓰는 게 가장 어려웠다. 게임은 만들면 움직이지만, 자기소개서는 쓰면 늘 낯설었다. 하린은 자신을 과장하고 싶지 않았고, 그렇다고 작아지고 싶지도 않았다. 며칠을 고민하다 하린은 한 문장을 첫 줄에 적었다.
“저는 플레이어의 시간을 존중하는 게임을 만들고 싶습니다.”
그 문장은 하린이 어린 시절부터 쌓아 온 감정의 요약이었다. 실패 화면이 주는 용기, 짧은 휴식의 위로, 작은 성취가 주는 활력. 하린은 그 힘을 누구에게나 건네고 싶었다.
면접 날, 질문은 예상보다 단순했다.
“왜 게임 개발자예요.”
하린은 기술 이야기를 나열하는 대신, 장면을 말했다.
“퇴근길 지하철에서 손잡이를 잡고 서 있는 사람이요. 피곤해서 아무 것도 하기 싫은데, 잠깐 플레이하고 나서 숨이 조금 편해지는 게임이요. 실패해도 다시 시작할 수 있어서, ‘오늘도 다시 할 수 있겠다’는 느낌이 남는 게임이요.”
면접관은 잠깐 침묵하더니 물었다.
“그럼 당신은 어떤 사람인가요.”
하린은 자신도 모르게 어린 시절의 방으로 돌아갔다. 로딩 화면을 기다리던 시간, 네모가 처음 움직이던 밤, 팀 프로젝트의 눈물. 하린은 말했다.
“저는, 그런 게임을 받아서 여기까지 온 사람입니다.”
합격 연락이 왔을 때 하린은 소리 내어 환호하지 못했다. 대신 손이 떨렸다. 기쁨이 너무 크면 사람은 조용해진다. 하린은 그날 밤 첫 프로젝트 파일을 열었다. 네모가 움직이던 그 화면. 거칠고 단순한 화면인데도 하린은 그 안에서 자신이 걸어온 길을 보았다. 그 작은 네모는 하린에게 말하는 것 같았다.
“처음엔 이게 전부였지. 그런데 너는 여기서 멈추지 않았지.”
하린은 웃으며 노트북을 덮었다. 이제부터는 진짜 현장이다.
인턴 생활은 예상보다 날카로웠다. 일은 빠르고, 기준은 엄격했다. 하린은 매일 코드 리뷰를 받았다.
“이 방식은 유지보수가 어려워요.” “이 변수명은 의도가 안 보여요.”
“이 예외 처리는 어디 갔죠.”
하린은 처음엔 마음이 움츠러들었다. 자신의 코드를 지적받는 것은 자신을 지적받는 것처럼 느껴졌다. 하지만 하린은 곧 알았다. 전문가일수록 결과물과 사람을 분리한다는 것을. 하린이 성장할수록 더 날카로운 피드백이 온다는 것도. 피드백은 공격이 아니라, 더 멀리 보내기 위한 밀어줌이라는 것도.
하린에게 가장 큰 변화는 ‘테스트’에서 왔다. 자신이 만든 기능을 다른 사람이 직접 플레이하는 모습을 보는 것. 하린은 그 장면에서 자존심이 부서지는 경험을 했다. 자신은 분명 친절하게 만들었다고 생각했는데, 플레이어는 튜토리얼에서 길을 잃었다. 자신은 분명 직관적이라고 생각했는데, 플레이어는 버튼을 못 찾았다. 그리고 그 순간 하린은 두 갈래 길 앞에 섰다.
“플레이어가 못하는 게 문제야”
라고 말하고 싶은 마음과, “내가 잘못 만든 게 문제야”라고 인정하고 싶은 마음. 하린은 후자를 선택했다. 왜냐하면 하린은 플레이어를 탓하고 싶지 않았으니까. 하린이 만들고 싶었던 것은 ‘사람의 시간을 존중하는 게임’이었고, 그 약속은 플레이어에게 더 관대해지는 방식으로만 지켜질 수 있었다.
하린은 작은 기능 하나를 맡았다. 설정 화면에서 자막 크기를 조절하는 기능. 메인 콘텐츠도 아니고, 눈에 띄는 기능도 아니었다. 하린은 순간 실망했다. 더 멋진 걸 하고 싶었다. 그런데 팀 리더가 말했다.
“이게 진짜 중요해요. 이걸로 누군가는 게임을 끝까지 할 수 있어요.”
하린은 그 말을 듣고, 자기소개서 첫 줄이 떠올랐다. 플레이어의 시간을 존중한다. 하린은 자막 기능을 누구보다 정성스럽게 만들었다. 모든 메뉴에서 크기가 자연스럽게 적용되게 하고, 줄바꿈이 깨지지 않게 하고, 글자가 UI를 뚫고 나가지 않게 하고, 작은 화면에서도 읽기 쉽도록 테스트했다. 출시 후 리뷰가 올라왔다.
“자막 커져서 너무 좋아요. 이제 스토리 놓치지 않아요.”
하린은 그 문장을 캡처해서 저장했다. 그 캡처는 하린이 흔들릴 때마다 꺼내 보는, 작은 증거가 된다.
정규직 제안은 겨울에 왔다. 하린은 회사 근처 편의점에서 따뜻한 캔커피를 들고 메시지를 다시 읽었다. 글자가 움직이는 것 같았다. 하린은 괜히 한 번 더 읽었다. 읽을수록 현실감이 올라왔다. 이제 정말 ‘게임 개발자’가 된다. 하린은 집에 돌아와 가족에게 말했다. 가족은 크게 말하지 않았다. 대신 조용히 웃었다. 그 웃음 속에는 하린이 혼자 끙끙대며 보냈던 밤들이 들어 있었고, 스스로를 의심하며 기록 노트를 덮었던 날들이 들어 있었고, 다시 열었던 날들이 들어 있었다. 꿈을 이루는 순간은 종종 영화처럼 폭발하지 않고, 이렇게 조용히, 그러나 분명하게 도착한다.
첫 출근 날, 하린은 로비의 유리문에 비친 자신을 잠깐 바라봤다. 특별히 달라 보이지 않았다. 똑같은 얼굴, 똑같은 눈. 그런데 하린은 알았다. 안쪽이 달라졌다고. 좋아하는 마음을 오래 붙잡는 법, 실패해도 리트라이하는 법, 질문하고 기록하는 법, 팀 안에서 사람과 결과물을 분리해서 바라보는 법. 그 모든 것이 하린을 ‘만드는 사람’으로 바꿔 놓았다.
하린의 첫 정식 프로젝트는 대형 게임이 아니었다. 작은 모바일 타이틀이었다. 하지만 하린은 그 프로젝트를 사랑했다. 작은 프로젝트일수록 디테일이 더 중요했다. 하린은 시작 화면의 전환 속도를 조정했다. 너무 빠르면 가벼워 보이고, 너무 느리면 답답해 보였다. 하린은 버튼의 눌림감을 조정했다. 소리가 날카로우면 피곤해지고, 너무 약하면 반응이 없는 것처럼 느껴졌다. 하린은 문장을 고쳤다. 한 글자의 톤이 사람의 감정을 바꾼다. “실패했습니다”와 “다시 한 번 해볼까요”는 같은 뜻이지만 다른 마음을 준다. 하린은 어릴 적, 실패 화면 뒤의 리트라이 버튼이 자신에게 어떤 마음을 줬는지 기억했다. 그리고 그 마음을 시스템 안에 넣고 싶었다.
하린은 디테일을 “보이지 않는 배려”라고 부르기 시작했다. 플레이어는 배려를 의식하지 못해도, 배려는 플레이어를 지킨다.
출시 전날 사무실은 늦게까지 불이 켜져 있었다. 긴장과 피로가 섞인 공기 속에서 하린은 테스트 빌드를 반복했다. 오프닝 장면이 흐르고, 첫 조작 안내가 뜨고, 캐릭터가 첫 발을 내딛었다. 하린은 문득 어릴 적 좋아했던 게임을 떠올렸다. 그 게임을 만든 사람들도 이런 밤을 보냈겠지. 모니터 앞에서 같은 장면을 반복하며, 사소한 버그 하나에 마음이 무너지고, 해결하면 다시 숨을 쉬었겠지. 하린은 그 생각에 이상하게 따뜻해졌다. 내가 그들의 자리 가까이 왔다는 느낌. 하린은 키보드 위에 손을 올렸다. 그리고 아주 작게 중얼거렸다.
“내일 누군가의 하루가 조금 달라지겠지.”
출시일 아침, 알림이 쏟아졌다. 다운로드 숫자, 리뷰, 버그 리포트, 칭찬과 불평. 하린의 심장은 빠르게 뛰었다. 처음엔 리뷰 하나하나가 하린의 감정을 흔들었다. “재밌어요”라는 말엔 날아갈 듯했고, “불편해요”라는 말엔 바닥으로 떨어졌다. 하린은 며칠 동안 제대로 잠을 못 잤다. 하지만 하린은 곧 균형을 배웠다. 리뷰는 공격이 아니라 신호다. 감정이 아니라 데이터다. 하린은 리뷰를 분류했고, 재현했고, 수정했다. 어떤 리뷰는 오해였고, 어떤 리뷰는 정곡이었다. 하린은 그 과정을 반복하며 한 단계 더 개발자가 됐다.
한 달이 지나자, 하린은 처음으로 ‘내가 만든 것이 누군가의 삶 안에 들어간다’는 감각을 확실히 느꼈다. 사용자 메일함에 짧은 메시지가 하나 도착했다.
“이 게임 덕분에 요즘 밤이 덜 외로워요.”
하린은 그 문장을 한참 바라봤다. 게임이 사람을 고칠 수는 없다. 하지만 잠깐 숨을 돌리게 할 수는 있다. 하린은 그 사실만으로도 충분하다고 느꼈다. 어릴 적 하린이 게임에서 받았던 위로가, 이제는 하린의 손을 거쳐 다른 사람에게 건너간 것이다.
하린은 스스로에게 축하를 크게 허락하지 않았다. 대신 하린은 더 단단한 질문을 하기 시작했다.
“다음엔 무엇을 더 잘할 수 있을까.”
“누가 이 게임을 끝까지 못 하고 나갈까.”
“왜 그럴까.”
하린은 데이터와 피드백, 그리고 자신의 감각 사이에서 균형을 맞추는 법을 배웠다. 감각만 믿으면 독선이 되고, 데이터만 믿으면 영혼이 사라진다. 하린은 그 사이에서 흔들리며, 그러나 조금씩 중심을 잡았다.
어느 날 회사에는 학생 견학팀이 왔다. 학생들은 눈을 반짝이며 질문을 던졌다.
“게임 개발자 되려면 천재여야 해요?”
“코딩을 어릴 때부터 했어야 해요?”
“게임을 좋아하면 다 할 수 있어요?”
하린은 그 질문을 들으며 자신이 어릴 때 느꼈던 막막함이 떠올랐다. 하린은 웃으며 말해 주었다.
“천재면 좋겠죠. 근데 꼭 그렇진 않아요.”
그리고 덧붙였다.
“대신 오래 좋아해야 해요. 좋아하는 만큼, 끝까지 가보는 연습을 해야 해요.”
학생들은 완전히 이해하지 못하는 얼굴이었지만, 하린은 괜찮았다. 어떤 말은 당장 이해되는 게 아니라, 시간이 지나서 마음속에서 다시 깨어난다. 하린도 그랬으니까.
하린이 진짜로 “꿈을 이뤘다”고 느낀 날은, 예상과 다르게 상을 받았던 날도, 큰 프로젝트에 합류했던 날도 아니었다. 어느 평범한 평일 저녁, 하린은 지하철을 탔다. 사람들은 피곤한 얼굴로 휴대폰을 보고 있었다. 하린은 손잡이를 잡고 서서 사람들의 화면을 무심히 바라봤다. 그때 하린은 한 사람의 휴대폰 화면에서 익숙한 색감을 봤다. 하린이 만든 게임이었다. 그 사람은 이어폰을 꽂고 조용히 플레이하고 있었다. 표정은 크게 바뀌지 않았지만, 손가락은 리듬을 타며 움직였다. 하린은 숨을 멈췄다. ‘정말로, 누군가가 내 게임을 하네.’ 하린은 말을 걸지 않았다. 그 순간은 하린 혼자 간직하고 싶었다. 하린은 그 장면을 마음속에 저장했다. 그 장면은 하린의 불안을 잠재우는 가장 강력한 증거가 되었다.
그날 밤 하린은 집에 돌아와 오래된 상자를 꺼냈다. 안에는 예전에 쓰던 낡은 키보드가 있었다. 키캡은 반들반들했고 몇 개는 글자가 지워져 있었다. 하린은 키보드를 조심스럽게 닦았다. 그리고 잠깐 컴퓨터에 연결했다. 키를 누르자 익숙한 소리가 났다. 하린은 그 소리를 들으며 웃었다. 어릴 적 하린이 지금의 하린에게 말을 건네는 것 같았다. “계속해.” 하린은 조용히 대답했다. “응, 계속할게.”
이후 하린의 꿈은 ‘도착’이 아니라 ‘확장’이 되었다. 더 많은 사람이 접근할 수 있도록, 더 많은 언어를 지원하고, 더 다양한 상황을 고려하고, 더 넓은 플레이어층을 품는 게임. 하린은 예전처럼 욕심을 무작정 크게 키우지 않았다. 대신 작은 약속을 늘렸다. 로딩 시간을 줄이자. 튜토리얼 문장을 더 친절하게 하자. 색약 모드를 고민하자. 조작 난이도를 세분화하자. 플레이어의 시간을 존중한다는 철학은, 결국 수많은 작은 선택들로만 구현될 수 있었다. 하린은 그 선택들을 매일 하나씩 했다.
가끔 하린은 여전히 흔들렸다. 새로운 엔진 버전이 나오면 따라잡아야 했고, 트렌드는 빨랐고, 기대치는 높았다. 하지만 하린은 흔들릴 때마다 처음으로 돌아갔다. 로딩 화면을 기다리던 어린 날의 설렘, 네모가 움직이던 밤의 뜨거움, 실패 후 리트라이를 누르던 마음. 하린은 그 마음이 사라지지 않게 지키려고 했다. 개발자는 플레이어의 마음을 잊는 순간 길을 잃는다. 하린은 자신 안의 플레이어를 가장 소중한 나침반으로 삼았다.
몇 년 뒤 하린은 팀 리더가 되었고, 후배들의 코드를 리뷰하게 되었다. 하린은 예전의 자신이 떠올라 조심스러웠다. 하린은 날카롭게 지적하기보다, 왜 그렇게 생각했는지를 먼저 물었다. 그리고 더 좋은 대안을 제시했다. 하린은 자신이 받았던 좋은 피드백들을 떠올렸다.
“이게 나쁘다”
로 끝나지 않고
“이렇게 하면 더 좋아진다”
로 이어지던 말들. 하린은 그 말들의 온도를 후배들에게도 건네고 싶었다. 좋은 팀은 사람을 갈아 넣는 곳이 아니라, 사람을 자라게 하는 곳이라는 걸 하린은 알고 있었다.
하린이 만든 두 번째, 세 번째 게임은 조금씩 더 멀리 갔다. 어떤 게임은 예상보다 흥행했고, 어떤 게임은 조용히 사라졌다. 하린은 성공과 실패를 같은 표정으로 보려 애썼다. 성공은 자만의 씨앗이 될 수 있고, 실패는 배움의 문이 될 수 있다. 하린은 둘 다 필요하다는 걸 경험으로 배웠다. 중요한 건 하린이 여전히 ‘만드는 사람’으로서 살아 있다는 사실이었다. 만들고, 내보내고, 듣고, 고치고, 다시 만들고. 그 반복이 결국 하린의 삶이 되었다.
어느 날 하린은 한 행사에서 발표를 맡았다. 제목은 거창하게 “플레이어의 시간을 존중하는 설계”였다. 하린은 발표 준비를 하며 자신이 얼마나 먼 길을 왔는지 새삼 느꼈다. 어린 하린은 말로 설명할 언어가 없어서 좋아함을 숨겼다. 그런데 지금의 하린은 그 좋아함을 누군가에게 전달할 수 있는 언어를 갖게 되었다. 하린은 발표에서 화려한 성공담을 말하지 않았다. 대신 작은 장면들을 말했다.
“리트라이 버튼이 사람에게 어떤 마음을 주는지.”
“설정 화면의 자막 크기가 누군가에게 어떤 문이 되는지.”
“튜토리얼 한 문장이 누군가의 포기를 막는지.”
발표가 끝나자 조용히 박수가 이어졌다. 하린은 그 박수보다, 발표 후 다가와서 말해 준 한 사람의 문장이 더 오래 남았다.
“저도 그런 게임을 만들고 싶어졌어요.”
하린은 그 말을 듣고, 어린 시절의 자신이 도서관에서 얇은 책을 발견하던 순간을 떠올렸다. 마음의 방향은 이렇게 전염된다.
행사 후 하린은 밤길을 걸었다. 도시의 불빛이 바람에 흔들리는 것처럼 보였다. 하린은 잠깐 멈춰 하늘을 올려다봤다. 별은 잘 보이지 않았지만, 구름 사이로 희미한 빛이 있었다. 하린은 생각했다. 꿈은 별처럼 멀어 보이지만, 사실은 구름 사이로 새어 나오는 빛 같은 것이다. 완전히 잡을 수는 없어도 방향을 알려 준다. 그리고 그 방향을 따라 오래 걷다 보면, 어느 날 자기 손이 빛을 만들고 있다는 걸 알게 된다.
집에 도착한 하린은 노트북을 켰다. 새 프로젝트가 기다리고 있었다. 새로운 캐릭터, 새로운 시스템, 새로운 이야기를 담을 세계. 하린은 빈 화면 앞에서 손을 올렸다. 하린의 손끝은 여전히 두려웠다. 새로 만드는 일은 언제나 두려움과 함께 온다. 하지만 하린은 예전처럼 두려움을 적으로 생각하지 않았다. 두려움은 내가 진짜로 소중하게 여기는 것을 만지고 있다는 신호다. 하린은 숨을 들이마시고, 첫 줄을 입력했다. 작은 문장 하나. 그 문장은 곧 움직임이 되고, 움직임은 경험이 되고, 경험은 누군가의 하루로 들어간다. 하린은 그 연결을 믿었다.
하린은 마지막으로 자기가 만든 게임을 한 번 더 실행했다. 오프닝 음악이 흐르고, 화면이 천천히 밝아졌다. 하린은 잠깐 키보드에서 손을 뗐다. 플레이어처럼, 그냥 바라봤다.
“나는 아직도 이걸 좋아하는구나.”
하린은 미소를 지었다. 좋아함은 끝나지 않았다. 다만 형태가 바뀌었다. 예전엔 좋아하는 것을 ‘받는’ 사람이었고, 지금은 좋아하는 것을 ‘만들어 건네는’ 사람이었다. 하린은 그 사실이 자랑스럽기보다 고맙다고 느꼈다. 좋아함이 자신을 여기까지 데려왔다는 것, 그리고 그 좋아함이 앞으로도 자신을 움직이게 할 것이라는 것.
마지막으로 하린은 마음속에서 어린 자신에게 말했다.
“너는 틀리지 않았어.”
어릴 적의 하린은 어쩌면 그 말을 가장 듣고 싶었을지도 모른다. 좋아하는 게 부끄러운 게 아니라는 말, 좋아하는 게 길이 될 수 있다는 말, 느려도 괜찮다는 말. 하린은 그 말들을 천천히 되새기며 노트북을 다시 앞으로 당겼다. 그리고 또 하나의 ‘리트라이’를 눌렀다. 끝이 아니라, 다음을 위해. 꿈은 이루는 순간에 끝나는 게 아니라, 이루고 난 뒤에도 계속 만드는 것이니까.
이 이야기는 끝났지만, 하린의 작업은 끝나지 않는다. 어떤 밤에는 새로운 버그가 하린을 울리고, 어떤 밤에는 작은 개선이 하린을 웃게 한다. 어떤 날에는 리뷰 한 줄이 하린을 흔들고, 어떤 날에는 누군가의 고마움이 하린을 다시 세운다. 그 모든 날들이 모여 하린을 개발자로 만든다. 그리고 하린은 오늘도 같은 약속을 붙잡는다. 플레이어의 시간을 존중하자. 누군가의 하루를 가볍게 다루지 말자. 한 번 더, 조금 더, 더 따뜻하게 만들자. 하린은 알기 때문이다. 어린 시절 자신을 살짝 들어 올려 주던 그 작은 세계들이, 실제로는 누군가의 진심으로 만들어졌다는 것을. 이제 하린도 누군가에게 그런 진심이 되고 싶다.
댓글
댓글 쓰기