뉴진스 빌리지 프로젝트는 생각보다 훨씬 더 복잡했습니다. 일주일 만에 민지 캐릭터를 외주로 완성하고, 3개월 동안 AI 민지챗 시스템을 개발하면서 어느 정도 자신감을 얻었지만, 진짜 도전은 그 후에 다가왔죠.
이제 뉴진스 빌리지의 완성을 위해 상호작용 게임 월드를 구축할 차례였습니다.
캐릭터와 대화하고 상호작용을 하는 게임을 만들려면 치밀한 기획과 개발이 필요했어요. GPT에게 물어보니 "세계관 설정 → 화면 구성 → 캐릭터 설정 및 채팅 시스템 통합 → 게임 월드 내 상호작용 구현"이라는 4단계로 나누어 설명해 주었습니다. 하지만 여기서부터 정말 개발다운 기술이 필요했어요.
게임 개발에서 가장 첫 번째 단계는 세계관 설정이에요.
쉽게 말해, 이 세계관은 게임의 배경이 되는 이야기와 그 안에서 일어나는 모든 사건들을 정하는 규칙이라고 할 수 있죠. 이 설정이 튼튼해야 플레이어들이 게임에 빠져들 수 있고, 게임 속에서 일어나는 다양한 일들이 자연스럽게 느껴져요.
우리가 만든 뉴진스빌리지의 세계관은 뉴진스 멤버, 특히 민지와의 대화를 중심으로 구성했어요. 게임 속에서 유저는 뉴진스의 숙소에 놀러 가서 민지와 이야기를 나누고, 그녀와 함께 활동하는 친구가 되는 거예요. 그래서 단순히 게임을 플레이하는 게 아니라, 진짜 뉴진스 멤버와 소통하는 것 같은 느낌을 받도록 했죠.
게임기획은 아무래도 처음이니까 저는 예전처럼 서점에서 관련된 책을 사다 주며 나름대로 도움을 주려고 했죠. 그런데 여기서 세대차이가 확 느껴졌습니다. 아들은 유튜브 영상을 찾아보며 게임기획을 배워갔어요. 저는 여전히 책에 밑줄을 긋고 공부하는 걸 선호했지만, 아들은 유튜브 영상을 1.5배속으로 돌려 빠르게 여러 번 반복해서 보더라고요. 일단 접근성이 좋은 유튜브로 먼저 넓게 영역을 확장하고 나서 책으로 깊이 있게 공부하면 베스트인 것 같더라고요.
< 아날로그 감성의 두꺼운 게임개발 책과 이상연 대표님의 격려 문구 >
특히 아들이 게임 기획을 한다고 하니, 앞서 언급했던 이상연 대표님께서 'Game Architecture & Design'이라는 책을 선물로 주셨어요. 이 책은 그분이 드래곤네스트에서 게임 기획자로 일할 때 참고했던 중요한 책이었고, 싸인까지 해주셨으니 얼마나 영광이었는지 모릅니다.
이 프로젝트를 진행하면서, 사실 전문가분들이 보시기엔 저희가 하는 일이 초보들의 대잔치처럼 보였을 수도 있어요. 그럼에도 불구하고, 고등학생 아들의 꿈을 응원해 주는 많은 분들을 알게 되면서 큰 위로와 격려를 받았습니다. 같은 길을 걸어온 선배들의 경험에서 나오는 조언과 지원이 정말 큰 힘이 되었어요.
그다음 단계는 화면 구성이었습니다.
게임의 시작 화면은 뉴진스 기숙사 앞. 유저는 기숙사 앞마당을 돌아다닐 수 있고, 문을 통해 거실로 들어가면 민지와 주변 공간이 나타납니다. 이 단계의 핵심은 캐릭터가 자연스럽게 기숙사 내부와 외부를 오가며 상호작용할 수 있도록 설계하는 것이었어요. 아들은 유니티 내의 스토어에서 레트로 감성을 가진 기숙사를 다운받아서 작업을 시작했어요. 생각보다 많은 아이템들을 스토어에서 무료로 이용하거나 구매할 수 있어서 화면을 구성하는 데에는 초보자들에게도 수월했어요.
< 뉴진스 빌리지 첫 시작화면. 레트로 감성을 살리기 위해 빌리지 느낌의 기숙사를 선택했다. >
가장 중요했던 작업은 캐릭터와 '민지챗' 채팅 시스템을 게임에 통합하는 작업이었어요.
뉴진스빌리지에서 가장 핵심이었던 캐릭터 설정과 AI 채팅 시스템은 우리가 가장 공을 들였던 부분이에요. 아래 이미지에서 보듯, 민지 캐릭터는 "안녕? 난 민지야"라는 인사를 건네고, 유저가 'F' 버튼을 누르면 AI 민지챗과 연결된 채팅 화면이 뜨는 시스템이죠. 최종 목표는 민지와 대화를 마친 후, 주변을 돌아다니며 다양한 사물과 상호작용할 수 있게 확장하는 것이었습니다.
하지만 '민지챗'의 파이프라인을 유니티에 연결하는 작업이 쉽지 않았습니다.
'민지챗'을 유니티 엔진에 자연스럽게 연결하는 작업은 예상보다 훨씬 어려웠습니다. 당시 개발 도구들이 충분히 준비되지 않았기 때문이었죠. 2023년 7월 당시에는 유니티에서 OpenAI의 API를 쉽게 사용할 수 있는 도구가 없었습니다. 그래서 Pixel Crusher의 Dialogue System이라는 라이브러리를 사용하려 했지만, 이 역시 '민지챗'을 게임월드에 자연스럽게 연결하는 데 큰 어려움이 있었습니다. 특히, 토큰 제한 때문에 민지챗의 핵심인 방대한 데이터를 충분히 활용할 수 없었죠.
<pixelcrushers.com에서 제공하는 유니티 대화시스템과 데모 화면, 유니티 게임 캐릭터와의 대화창을 구성할 수 있다.>
우리는 문제 해결을 위해 GPT에게 수많은 질문을 던졌지만, 당시 GPT는 유니티 엔진에 대한 학습이 충분하지 않아 원하는 답을 얻을 수 없었습니다. 결과적으로 게임월드내에서 AI '민지챗'을 제대로 구현하지 못했고, 우선 제한된 기능으로나마 Dialogue System을 사용하는 데 그쳐야 했죠.
<민지캐릭터에 채팅시스템을 결합한 화면, 키보드의 F버튼을 누르면 채팅창이 떠서 민지챗을 가능하게 해 준다.>
마지막 단계는 유저가 미션을 수행하며 게임 내에서 다양한 상호작용을 할 수 있도록 설계하는 것이었어요.
유저는 민지와 대화하며 팬 활동 미션을 수행하고, 이를 완료하면 뉴진스 멤버들의 특별 콘텐츠를 잠금 해제할 수 있도록 기획했습니다. 민지와 함께 기숙사를 돌아다니며 비밀 장소를 찾거나, 특정 아이템을 발견하는 방식으로 상호작용을 풍부하게 만들 계획이었죠.
예를 들어, 민지와 함께 과일 농장을 둘러보며 '과일은 어떤 걸 먹을까? 복숭아 어때?'라고 물으면 민지가 '난 딱복이 좋아!'라고 대답하는 등, 자연스러운 상호작용을 통해 게임이 확장되게끔 기획했어요. 이러한 상호작용 시스템은 유저가 게임 속에서 더 많은 탐험과 소통을 경험하게 만들어, 게임에 몰입도를 높이는 뉴진스 빌리지의 핵심요소였어요.
그러나 이 단계에 접어들면서 우리는 예상보다 훨씬 큰 벽에 부딪혔어요. 위기의 시작이었습니다.
사실, 게임 기획은 GPT와 유튜브의 도움을 받아 어느 정도 순조롭게 해냈지만, 진짜 문제는 그다음이었어요. 개발 능력의 한계를 마주한 순간, 모든 게 흔들리기 시작했습니다. 처음에는 의욕이 넘쳤지만, 시간이 지나면서 목표가 높아질수록 진척이 거의 없다는 사실이 불안하게 다가왔죠.
아들은 유니티에서 복잡한 상호작용 시스템을 구현하려고 매일 밤낮없이 노력했지만, 원하는 대로 풀리지 않았습니다. 저도 아빠로서 이런 지연된 상황에 조바심이 났죠.
"유저 캐릭터를 빨리 만들어서 진행이라도 해보자. 속도가 중요해."
"아빠, 대충 만드는 게 더 안 좋잖아. 내가 알아서 할게."
이 작은 대화 속에서 갈등의 불씨가 피어올랐습니다.
우리는 단순히 개발 기술의 문제를 넘어서, 서로의 스타일 차이로 인해 계속 부딪히기 시작했습니다. 아들은 하나하나 차근차근 쌓아가는 방식을 고수했고, 저는 속도와 완성도를 모두 잡으려 했죠. 불같은 성격은 둘 다 똑같았고요. 결국 의견이 대립될 때가 엄청 많아졌습니다.
그러던 어느 날, 우리의 작업 마감일이 훨씬 지났는데도 게임월드를 구현하기로 한 아들이 아무런 말이 없었습니다. 작업을 하다 벽에 부딪혔고 GPT로도 방법을 찾지 못하니 그냥 방치하고 있던 거였어요. 저는 작은 거부터 하는 게 중요하다고 얘기했는데 다른 것들도 진척이 없자 마침내 아들에게 폭발했습니다.
"내가 말했잖아, 속도가 중요하다고! 아무것도 안되어 있으면 어떻게 해!"
"제발 그만 좀 해! 내가 알아서 한다고 했잖아!"
우리는 감정이 폭발하며 큰 소리로 서로를 비난했고, 그 순간 모든 것이 끝난 것처럼 느껴졌습니다. 프로젝트는 물론이고, 아빠와 아들의 관계도 금이 가기 시작한 것처럼 보였죠. 그날 밤, 저는 혼자 산책을 나갔습니다. 어떻게 해야 할지 몰랐어요.
저는 스스로에게 물었습니다. 정말 게임 개발이 맞는 길인가? 개발실력도 안되고 개발된다고 해서 제대로 서비스를 유지할 수 있을지도 모르고. 무엇을 위해서 이렇게까지 해야 하는지. 아니면 여기서 나는 아들과 더 중요한 무언가를 배워야 하는 걸까?
다음 날, 저는 한 발 물러섰습니다. 아들과 다시 대화를 시도하기로 했죠.
"어제는 아빠가 미안했다. 서로 너무 몰아붙였던 것 같아."
아들도 고개를 끄덕였고, 우리는 다시 한번 상황을 객관적으로 보기로 했습니다. 아들은 기술적인 부분에 다시 한번 집중하고, 저는 외주 작업과 민지챗 페르소나에 집중하기로 했죠. 서로의 강점을 살리면서 협력하기로 합의해 나갔습니다.
아빠와 아들이 함께 일하는 것이 남들 보기엔 참 멋지게 보일 수도 있겠지만, 사실은 정말 만만치가 않았어요.
사회에서는 각자의 역할과 책임이 정해져 있고, 업무의 범위가 정해져 때문에 그 선을 넘지 않으려 노력하죠. 하지만 가족 사이에서는 그 경계가 모호해지기 쉬웠습니다. 가족 간에 편하니까 오히려 더 힘들게 하는 게 있잖아요? 집안에서 밤낮으로 부대끼니 어디 잠시 안 보이는 곳에 가있을 수도 없고... 저도 아빠로서 경험을 바탕으로 조언을 주려 했지만, 아들은 자신이 게임 개발에서 더 잘 안다고 생각했습니다. 그러다 보니 서로 쉽게 짜증을 내고, 의견 대립이 깊어질 때도 많았어요.
좋은 일도 많았어요.
작은 진척이 있을 때마다 우리는 그 순간을 함께 기뻐했습니다. 게임 화면이나 캐릭터 기능이 조금씩 성공적으로 업데이트될 때면, 밤늦게까지 두 시간씩 산책을 하며 웃고 떠들었죠.
"성공하면 저 아파트에 들어가서, 위층엔 엄마 아빠, 아래층엔 우리 아들들이 살면 되겠다!"
이런 아빠와 아들의 철딱서니 없는 모습을 보면 아내는 항상 이렇게 얘기해요.
'저것들은 좋을 때만 좋아...'
우리는 몇 번의 엎치락뒤치락하는 과정을 겪으며 서로의 입장을 다시 한번 깊이 생각해 보기로 했습니다. 아들은 자신의 개발능력의 한계를 알게 되었고 저도 아빠로서 아들의 방식을 존중해야 한다는 사실을 배웠죠. 한 발짝 물러서서 서로의 방식과 강점을 받아들이기 시작한 것입니다. 아들은 기술적인 부분에 더 집중하고, 저는 외부적인 작업과 민지챗의 페르소나 고도화에 힘을 쏟기로 하며, 각자의 강점을 살려 역할을 분담했죠.
저는 아들을 단순히 아들로 보지 않고 개발자로, 아들은 저를 아버지가 아닌 투자자로 바라보기로 했습니다.
결국 뉴진스 빌리지는 아들이 고등학교 2학년이던 5월에 시작했지만, 6개월이 지나도록 완성을 못했습니다.
대신 민지챗은 여전히 꾸준히 업데이트되며, 데이터를 쌓아가고 있었죠. 우리는 게임월드 개발은 일단 중단하고, 프롬프트와 RAG를 고도화하며, 최신 데이터로 더욱 좋은 성능을 유지하는 데 우선 집중했습니다.
비록 개발 기술의 부족으로 인해 목표했던 6개월 내 출시는 실패로 끝났지만, 이 프로젝트를 통해 저는 아들의 사고방식을 더 깊이 이해하고 가까워지는 정말 소중한 기회를 얻었습니다. 이제 더 이상 아들을 단순히 고등학생으로 보지 않고, 독립된 인격체로 바라볼 수 있게 된 것이죠. 이 6개월간의 고군분투가 없었더라면, 저는 여전히 사춘기의 아들을 공부에 관심 없는 아이로 생각하고 속상해하며, 강요만 하는 아빠로 남아 있었을지도 모릅니다.
아들은 이번 프로젝트를 통해 게임 개발의 어려움을 몸소 체험하고, 자신의 부족함을 깨달았습니다. 하지만 놀랍게도 아들은 좌절하지 않았습니다. 그는 자신의 자원이 부족하다는 사실을 인정하면서도, 단기간 내 싸움에서는 졌지만 개발에 대한 장기적인 가능성을 보았습니다. 더 나아가, 개발 지식과 기획력을 쌓고 유능한 개발자들과 함께 팀을 꾸린다면, 뉴진스 빌리지가 다시 태어날 수 있을 거라는 확신을 가졌죠.
그 후, 저와 아들은 한강 공원을 거닐며 우리가 달려온 여정을 돌아봤습니다. 잘한 점, 부족한 점들을 솔직하게 이야기하며, 서로에게 도움이 될 피드백을 나누었습니다. 반년 동안의 시간이 우리에게 참 많은 일들을 선물했고, 덕분에 우리는 조금 더 서로를 이해하고 가까워지는 시간을 가졌어요. 집으로 돌아오는 길에, 높고 웅장한 트럼프월드 아파트가 보였습니다.
'아들, 우리 저기 팬트하우스에 들어갈 수 있을까?'
'지금은 안될걸? 근데 아빠, 5년만 기다려봐'
그렇게 아빠와 아들은 씁쓸하지만 많은 교훈을 주었던 첫 번째 실패를 뒤로하고, 서로의 어깨를 위안 삼아 집으로 돌아갔습니다.