Jeongjin Oh 🖖 Live Lazy And Programming

GemTempo 출시 및 회고

Hits

아니 벌써 1년의 절반이 훌쩍 지나버렸다. 반 년 동안 정말 많은 일이 있었는데, 버티는 게 고작이었던 하루하루 였다.

어쨌든, 그 반 년 동안 올해 목표 중 하나의 절반을 달성했다. 바로 GemTempo라는 캐주얼 퍼즐(사천성) 게임을 출시한 것이다. 출시는 지난 5월 말에 했다. 그리고 한 달 반 정도 흘렀다. 오늘은 이에 대한 회고를 해볼까 한다.

시작

작년 12월쯤부터 올 1분기에 모바일 게임 하나를 출시해보려는 생각이 있었다. 장르도 이미 사천성으로 정해둔 터였다. Dungeon Sweeper 때처럼 AI로는 밸런스나 기획적인 도움을 받으려 했으나, Codex를 접하고 나서 생각이 바뀌었다. 나는 기획만 하고 구현은 Codex에 맡기는 것으로. 그렇게 본격적으로 첫 삽은 올해 2월부터 뜨기 시작했다.

프로젝트 개요

  • 개발 기간: 2월 초 ~ 5월 초 (약 3개월)
  • 플랫폼: Android
  • 장르: 캐주얼 퍼즐 (사천성)
  • 참여 인원: 1명

좋았던 점

1인 게임 개발자로 생활을 이어나갈 때 부담을 꽤나 덜어줄 수 있는 좋은 도구이자 파트너인 Codex를 본격적으로 다룰 수 있게 된 것이 이번 프로젝트에서 가장 긍정적으로 삼을만한 점이다. 마침 Unity MCP/CLI와 같은 도구들도 활발히 개발이 되었고, 게임 분야는 아니지만 IT 업계에 있는 친구들에게 영감을 받아서 순도 99%의 AI 게임 개발을 한 것이다. UI/UX는 레퍼런스로 삼았던 게임이 있었기 때문에 표본을 제시하여 프로젝트의 분위기와 컨셉에 맞게 재조정하고, Unity Asset Store에서 미리 구매한 UI/VFX/SFX 등의 에셋을 스스로 판단하여 적용하게 해보기도 하는 등 생각보다 나의 의도대로 잘 구현해줘서 좋았다. 특히 N회차 플레이 가능하도록 구현하고 밸런스까지 맞춘 버전이 2주 정도 소요되었다. 그마저도 당시엔 본격적인 AI 코딩은 처음해보아서 시행착오가 여럿 있었기에, 지금 같은 게임을 지금 만든다면 더 빠르고 효율적으로 만들 수 있을 것 같다.

특히 이번 프로젝트의 서버는 Typescript로 작성했는데, 지금까지 나는 TS를 한 번도 해본 적이 없다. 순전히 Codex를 믿고 처음부터 끝까지 맡겨보았다. 어차피 문법이 생소할 뿐이지 비즈니스 로직 자체는 다른 캐주얼 게임 서버와 비슷할테니 문제가 있는 부분이 있어도 코드의 흐름을 보고 스스로 어디가 문제라는 것 정도는 판단이 되긴 했다. 가끔 Codex가 얼타는 부분을 내가 직접 코드를 열어서 “어떤 부분이 문제가 있을 것 같으니 파악해서 수정 계획을 제시해 보라”고 하면 나의 의도를 정확히 파악해서 수정 계획을 제시/실행했다. 처음 TS로 정한 이유도 내가 공부도 해볼 겸이긴 했는데 정작 프로젝트 하면서 공부를 하진 못했다 (…)

그리고 이번에는 혼자 만들어 본 게임을 처음으로 Google Ads를 통해 광고를 집행해보았다. 어떤 식으로 굴러가는지 경험해볼 수 있어서 좋았는데, 금전의 여유가 없어서 인도/필리핀에 소액의 광고를 진행했다. 소액이었지만 그 광고를 보고 게임을 설치해서 계정을 생성하는 것을 보고 신기했다. 타겟 유저층이나 금액 등도 세부적으로 정할 수 있고 광고의 목표도 노출인지, 설치인지, 계정 생성인지도 정할 수 있었다. 단, 계정 생성의 경우 일이 복잡해져서 이번에는 설치까지를 목표로 잡았다. 애널리틱스 상에서 그래프를 보면서 (여러 의미로) 두근 거리며 지켜봤다.

아쉬웠던 점

Netcode For GameObject를 통해 1:1 PVP 기능을 구현하려고 할 때, Codex에 너무 러프하게 알려준 탓에 구현이 꼬여서 버그를 수정하고 리펙토링 하느라 기능이 간단했음에도 예상보다 늦은 한 달을 허무하게 낭비하고 만 것이 아쉬웠다. 그리고 서버 비용을 조금이라도 아껴보고자 모바일 기기간에 P2P 연결로 PVP를 구현하려고 했는데, 정책상으로 안된다는 걸 오랜 삽질 끝에 알게 되어서 결국 언제 종료될 지 모르는 Unity Relay 서비스를 이용할 수 밖에 없었다. Unity Relay를 쓴 이후에도 자잘한 버그 때문에 시간을 더 써버린 것도 있다.

Codex를 통해 구현할 때, AGENTS.md 문서를 잘 정해야 후한이 없다는 것도 잘 알게 되었다. 처음 설정이 애매하고 추상적일수록 Codex의 구현이 내 의도와 다른 방향으로 흘러가는 경우가 많았고, 그걸 수정하기 위해 수 많은 토큰과 시간을 태워서 리펙토링하느라 프로젝트 진행이 1~2주 동안 멈춘적도 있다. (헌법의 중요성) 그리고 이건 아쉬울 수도 있는 것 같기도 하고 좋았던 것 같기도 하지만 “문서화”의 중요성을 다시금 깨달았다. 사람과 일할 때도 물론 중요하지만 특히나 Codex는 “문서”가 모든 맥락을 좌지우지하기 떄문에 정말로 중요하다. 최대한 애매하고 추상적인 부분은 피하고 명확하고 구체적인 문서와 내용이 필요하다. 그리고 “해야할 것”과 “하지말아야 할 것”을 명확히 하는 것도 중요하다. 내가 만약 어딘가에 취업해서 “팀장”이 된다면, 일을 내가 다 하는게 아닌 “위임”을 해야할 텐데, 아이러니하게도 Codex를 통해서 간접적으로나마 체험을 해본 것 같다.

광고를 직접 집행해볼 수 있었던 것은 좋았지만, 그 광고를 만드는 작업은 거의 수작업으로 진행했다. 이 부분도 AI의 도움을 받아서 쉽게 할 수 있을 거라고 생각했으나, ChatGPT를 이용해서 광고 영상을 뽑아보려 해도 광고를 만드는 법(가이드)을 안내해줄 뿐, AI가 만들어주지는 않았다. 이 부분에서도 시간을 좀 잡아먹기도 했고, 직접 만든 광고의 퀄리티도 만족했을리 없어서 고민을 하다가 일단 하루 5천원부터 시작해서 1만원까지 일주일 정도 해봤다. 광고 노출은 확실히 많이 되었지만, 설치는 500회를 조금 넘긴 수준이었고 그마저도 계정 생성까지 도달한 건 100회 정도에 불과했다. 그래서 생각보다 쓴 돈에 비해 실제 계정 생성까지 들어오지는 않는다는 걸 깨달았다. 그리고 내가 열심히 만든 동영상 광고보다 대충 스크린샷 찍어서 글씨 하나 적은 전면 광고의 노출과 클릭이 더 많다는 통계를 보고 잠시 현타가 오기도 했다 (…)

앞으로

아마 당분간 GemTempo 프로젝트에서의 추가 작업은 없을 것 같다. GemTempo의 경험을 토대로 캐주얼 모바일 RPG 프로젝트를 작업해보려고 한다. 이건 이미 HTML5를 통해 코어 검증은 끝낸 상태이고, 서버/클라이언트 구현을 본격적으로 할 차례다. 아트 컨셉이나 UI/UX 등은 아직 정해지진 않아서 생각보다 더 오래 걸릴 수도 있다.

GemTempo에서의 시행착오로 AGENTS.md 제작/관리 등에도 나름 감각이 생겨서 “이번에는 좀 더 나은 개발”이 가능할 것 같다. 걱정되는 것이 있다면, 내가 하는 이런 행동들이 취업에 도움이 될까 싶은 생각이 있다. 실제 게임쪽 실무에서도 요즘 코딩을 안할까 싶긴 한데… 어떨지 잘 모르겠다.

Comments