
기쁜 소식이 있었습니다.
제가 만든 ‘황혼산맥 디펜스’가 ‘사내 AI 게임 개발 콘테스트 2026’에서 대상을 받았습니다. 마침 ‘바이브 코딩으로 게임 만들기’라는 주제로 기사를 연재하고 있던 터라, 이번 콘테스트는 유난히 부담이 컸습니다.
게임 개발을 배운 적도, 코딩을 해본 적도 없지만, 노력만큼은 열심히 했다고 생각했기에 입상은 꼭 하고 싶었습니다. 그런데 예상보다 훨씬 좋은 결과가 나왔습니다. 솔직히 무척 기뻤습니다.
하지만 기쁨은 오래가지 않았습니다.
“축하해. 그리고 8월에 AI 게임 개발 행사가 하나 열리거든. ‘OpenAI Game Builders Seoul’이라고 있는데, 네가 한 번 나가봐. 그 게임으로.”
“예?”
“업무 시간도 빼주고, AI도 지원해 줄게.”
“……넵.”
그렇게 끝난 줄 알았던 게임 개발이 다시 시작됐습니다.
대상 받은 게임을 처음부터 다시 만들기로 했다

당황스럽기는 했지만 싫지만은 않았습니다.
첫 번째 게임을 만들면서 정말 재미있었습니다. AI와 대화를 반복하며 조금씩 형태를 갖춰가고, 제가 상상했던 것들을 하나씩 실현하는 과정에 푹 빠져 있었습니다.
그런 저에게 업무 시간까지 보장받으며 게임을 다시 만들 기회가 생겼습니다. 마다할 이유는 없었습니다.
문제는 시간이었습니다. 제출까지 남은 기간은 약 2주였습니다. 대회 참가 기준을 보면 기존 게임을 조금 고치는 정도로는 부족해 보였습니다.
행사에는 Codex로 개발한 게임 프로토타입과 제작 경험을 제출해야 했습니다. 기존 프로젝트를 활용하는 것도 가능했지만, ‘황혼산맥 디펜스’는 주로 Claude를 이용해 만든 게임이었습니다. 이번 기회에 Codex로 처음부터 다시 만들기로 했습니다.
이왕 다시 만드는 김에 새로운 시도도 해보기로 했습니다. 이번에는 단일 HTML 파일을 만드는 데서 벗어나 정식 게임 엔진을 사용해 보기로 했습니다. 제가 선택한 것은 최근 인디 개발자들 사이에서 자주 언급되는 고도(Godot) 엔진이었습니다.
고도 엔진에 관심을 갖게 된 계기는 과거 진행했던 한 1인 개발자와의 인터뷰였습니다. 넥슨을 퇴사하고 혼자 게임을 개발하던 그는 고도가 인디 게임 제작에 상당히 괜찮은 엔진이라고 평가했습니다. 언젠가 한 번 사용해 보고 싶다는 생각이 남아 있었습니다.
물론 저는 게임 엔진을 다룰 줄 모릅니다(웃음). 그래서 AI가 ‘해줘’야만 가능합니다. 다행히 Codex는 고도 엔진으로 웹 게임을 만들 수 있다고 답했습니다.
이제 2주 동안 달성해야 할 목표는 두 가지입니다.
첫째, Codex를 이용해 ‘황혼산맥 디펜스’를 처음부터 다시 만들 것.
둘째, 처음 사용하는 고도 엔진으로 브라우저에서 실행되는 게임을 완성할 것.
그렇게 두 번째 게임 개발이 시작됐습니다.
코딩과 이미지 제작을 한 번에… Codex라서 좋았다

Codex와의 작업은 예상보다 훨씬 좋았습니다. ‘이렇게까지 된다고?’라는 생각이 들 정도였습니다.
먼저 고도 엔진으로 게임 만들기. 저는 노드와 씬의 차이조차 몰랐습니다. 고도 엔진을 내려받은 뒤 Codex에 설치 경로와 프로젝트 위치를 알려주자, Codex는 엔진을 직접 실행해 작업을 이어갔습니다. 제가 한 일은 엔진을 내려받은 것뿐인데, 어느 순간 저는 게임 엔진으로 게임을 만들고 있었습니다. 허허.
또 하나 좋았던 점은 작업 흐름이 하나로 이어졌다는 것입니다. 원작을 만들 때는 코드와 게임 시스템을 Claude에 맡기고, 그래픽은 Grok 같은 별도의 이미지 생성 AI에서 제작했습니다. 두 개의 AI를 오가며 작업하기가 무척 번거로웠습니다. 이미지를 내려받아 배경을 제거하고 크기를 맞추는 일도 모두 수작업이었습니다. 그 이미지를 Claude에 넣어 피드백을 받고 다시 제작하는 과정을 여러 차례 반복했습니다.
Codex에서는 캐릭터 디자인부터 배경 제거, 크기 조정, 게임 적용과 코드 수정이 한 작업 안에서 이어졌습니다. “화염술사는 불꽃을 던지고, 냉기술사는 얼음이 퍼지게 해달라”고 요청하면 외형뿐 아니라 공격 효과와 피해 방식까지 함께 고칠 수 있었습니다.


그래픽 작업에서도 차이가 컸습니다.
이전에는 AI가 만든 이미지의 배경을 제가 직접 제거했습니다. 전문적인 이미지 편집 기술이 없다 보니 캐릭터 외곽에 배경색이 남거나, 머리카락과 무기의 일부가 함께 잘려 나가는 경우도 있었습니다. 게임 안에서 이미지를 확대하면 잘못 잘린 부분이 더 선명하게 드러났습니다.
이번에는 이미지 제작과 후처리, 게임 적용을 Codex에 함께 맡겼습니다. 캐릭터의 비율과 크기를 서로 비교하고, 작은 유닛은 확대하고 큰 유닛은 줄이는 작업도 실제 게임 화면을 기준으로 진행했습니다.
결과적으로 캐릭터 외곽이 훨씬 깨끗해졌고, 등급과 클래스가 달라도 하나의 게임에서 나온 것처럼 통일할 수 있었습니다.

캐릭터만 바꾼 것은 아닙니다. 높은 등급의 유닛을 얻는 순간과 보스가 등장하는 장면처럼, 플레이어가 가장 강하게 기억할 만한 순간도 다시 연출했습니다.




Codex는 거의 모든 면에서 기존보다 좋았지만, 약한 부분도 있었습니다. 특히 마음에 들지 않았던 건 BGM입니다.
“원작의 멜로디는 살리고, 게임 오케스트라처럼 편곡해줘.”
잠시 뒤 음악이 나왔는데, 귀신이 곡소리를 냅니다.
“이건 아니다. 다시.”
몇 번이나 다시 만들었지만 음악은 좀처럼 나아지지 않았습니다. 원작의 그 싸구려 오락실 BGM 감성이 유독 잘 뽑힌 것도 있지만, 기억에 남을 정도로 좋은 멜로디를 만들고 골라내는 일은 여전히 사람의 감각이 중요한 영역이라는 생각이 들었습니다. 어쨌든 사람 귀에 듣기 좋은 것을 고르는 일이니까요.
마지막으로 꼭 언급하고 싶은 것은 Codex의 디버깅 능력입니다. 작업이 끝날 때마다 실행과 오류를 점검한 뒤 결과를 내놓았기 때문에, 이전보다 버그를 발견해 다시 수정을 요청하는 일이 현저히 줄었습니다. 사용량 한도가 넉넉하다는 점도 Codex에 매료되기 충분한 장점이었습니다.
완성된 게임… Codex가 계산한 본선 진출 확률은 70%
그렇게 크고 작은 수정을 70여 차례 거쳐 게임을 완성했습니다.
제출을 앞두고 Codex에게 물었습니다.
“이 게임으로 1차 예선을 통과할 가능성은 어느 정도야?”
Codex는 꽤 자세하게 게임을 평가했습니다.
브라우저에서 바로 실행할 수 있고, 소환과 조합, 신화 등급 획득, 위기 상황이라는 핵심 재미가 분명하다는 점은 강점으로 꼽았습니다. 원작과 비교해 캐릭터와 몬스터, 공격 효과, UI, 보스 연출이 크게 개선됐고, 실제 플레이 영상과 ‘코딩을 배운 적 없는 기자가 Codex로 게임을 다시 만들었다’는 제작 과정도 심사위원의 관심을 끌 만하다고 분석했습니다.
약점도 있었습니다. 랜덤 디펜스라는 장르 자체가 익숙한 만큼 첫인상에서 독창성이 약해 보일 수 있다는 것, 후반부에는 유닛과 몬스터, 이펙트가 한꺼번에 몰려 화면이 복잡해질 수 있다는 것, 짧은 기간에 만든 웹 빌드인 만큼 안정성과 최적화가 변수라는 점이었습니다.
이런 요소를 종합한 Codex의 예상은 다음과 같았습니다.

숫자만 던진 것은 아니었습니다. 왜 통과 가능성이 있는지, 어떤 부분에서 감점될 수 있는지, 제출 직전 무엇을 더 보완해야 하는지까지 설명했습니다. 분석이 구체적이어서 저도 어느 정도 기대를 품게 됐습니다.
다만 그 70%에는 중요한 가정이 하나 숨어 있었습니다. 공개된 정보가 부족한 상태에서 Codex는 비슷한 규모의 해커톤 사례를 참고해 참가 규모를 80팀 안팎으로 가정했습니다. 이번 대회는 본선 진출팀을 40팀 뽑으니, 단순하게 생각하면 절반가량이 올라갈 수 있다고 본 것입니다.
설레며 기다렸던 결과는 탈락… 대회는 훨씬 어려웠다

주말을 꼬박 기다려 받은 결과는 탈락이었습니다.
아쉬웠습니다. 오랜 시간을 들여 게임을 다시 만들었고, 원작보다 좋아졌다는 확신도 있었습니다. 결과를 확인한 직후에는 랜덤 디펜스가 흔한 장르라는 점과 독창성에서의 약점이 발목을 잡은 것은 아닐까 생각했습니다.
물론 정확한 탈락 이유는 알 수 없습니다. 행사 측이 공개한 심사 기준은 플레이 가능성, 독창성, Codex와의 협업, 출시 가능성, 프레젠테이션의 다섯 가지였습니다. 어느 한 항목 때문이라기보다 여러 요소를 종합해 선정했을 가능성이 큽니다.
탈락이 확정된 뒤에야 알게 됐지만, 이번 대회의 참가 규모는 예상보다 훨씬 컸습니다. 오픈AI 관계자의 SNS에 따르면 ‘OpenAI Game Builders Seoul’에는 1,000개가 넘는 팀이 지원했습니다. 1,000팀이 넘었다는 설명을 기준으로 하면 본선 40팀의 단순 선발률은 4% 미만, 경쟁률은 25대 1 이상입니다. 제가 처음 가정했던 80팀 중 40팀과는 전혀 다른 규모였습니다.
게다가 현직 게임 개발자들도 팀을 이뤄 많이 참가했다고 합니다. 이런 이야기를 듣고 나니 혼자 참가해 본선 통과를 기대한 제가 얼마나 우물 안의 개구리였는지가 느껴졌습니다.
그래도 다시 만들어서 좋았다

결과는 아쉽지만 과정은 즐거웠습니다.
제가 애정을 가지고 만든 게임을 이만큼 발전시켰다는 점에서 정말 만족스러운 도전이었습니다. 처음 만져본 고도 엔진으로 웹 게임을 완성했고, 캐릭터와 몬스터를 전부 다시 만들었으며, 조합과 증강, 보스 연출, 자동 테스트, EX 무한 모드까지 구현했습니다. 게임을 만드는 동안은 정말 다른 것들은 신경 쓰지 않고 오롯이 빠져 있었습니다. 과장을 조금 보태면 제가 게임을 직접 하는 것보다 만드는 게 더 재미있다고 느낄 정도였습니다.
본선까지 진출했다면 더 좋았겠지만, 항상 원하는 결과만 받을 수 있는 것은 아니니까요. 게임을 만드는 재미를 알게 된 만큼, 다음에는 다른 장르에도 도전해볼 수 있겠다는 생각이 들었습니다.
세 편에 걸쳐 써온 바이브 코딩 게임 개발기도 이제 한 단락을 마무리한 것 같습니다. 시간은 오래 걸렸고 기사는 세 편뿐이었습니다. 제가 조금 더 부지런했다면, 글을 조금 더 재미있게 쓸 수 있었다면 좋았을 텐데 하는 아쉬움은 남습니다.
그래도 이렇게 하나의 결과물과 함께 시리즈를 마무리할 수 있어 기쁩니다. 언젠가 다시 바이브 코딩으로 게임을 개발할 기회가 온다면 기꺼이 도전해볼 것 같습니다. 이 과정을 함께 지켜봐주신 분들께 감사드립니다.
