바이브코딩으로 게임 만들기 #1 — Godot를 선택한 이유

이번엔 바이브코딩으로

이전에 유니티로 캐주얼 게임을 하나 만들어서 출시까지 해봤다. 처음부터 끝까지 직접 코드를 짜는 방식이었는데, 이번엔 다른 방식으로 해보고 싶었다.

바이브코딩이라는 방식이 눈에 들어왔다. AI에게 만들고 싶은 걸 설명하면 코드를 짜주는 방식인데, 작업 속도가 빠르다는 얘기를 많이 봤다. 바이브코딩으로 게임을 어디까지 만들 수 있는지도 궁금했다. 일단 런칭을 목표로 해볼 수 있는 데까지 해보기로 했다.

바이브코딩 도구는 평소에 커서(Cursor)를 쓰고 있었는데, 요즘 Claude Code를 쓰는 사람이 많이 보여서 이번 프로젝트는 Claude Code로 작업해보기로 했다.


엔진은 고도(Godot)로

이번엔 유니티 대신 고도(Godot)를 써보기로 했다. 바이브코딩에 어떤 엔진이 잘 맞는지 찾아봤는데 고도가 괜찮다는 얘기가 많았다.

이유가 있었다. 고도는 씬 파일(.tscn)이 텍스트 형식으로 저장된다. 덕분에 AI가 에디터를 직접 열지 않아도 씬 파일을 읽고 쓰는 게 가능하다. 유니티는 씬 파일 구조가 복잡해서 AI가 건드리기 까다로운데, 고도는 그 부분이 훨씬 자유롭다. 엔진을 크게 건드리지 않고도 대부분의 작업을 코드로 처리할 수 있다는 게 바이브코딩과 잘 맞는 이유였다. AI 도구는 Claude Code를 쓰기로 했다.


만들 게임: Tiny Reign

만들 게임은 캐주얼 왕국 전략 게임이다.

비주얼은 마음에 드는 픽셀아트 리소스를 골라서 쓰기로 했다. 다만 그 리소스만으로는 제작에 한계가 있을 것 같아서, 필요한 부분은 비슷한 스타일의 리소스를 찾거나 AI로 직접 만드는 것도 염두에 두고 진행할 생각이다.


폴더 구조 잡기

본격적으로 시작하기 전에 폴더 구조부터 잡았다.

고도를 써보니 유니티와 다른 점이 있었다. 고도는 모든 게 씬으로 구성되고, 씬마다 스크립트가 붙는 구조다. 스크립트와 씬을 완전히 분리하기가 애매하다.

그래서 이렇게 나눴다.

  • scenes/ — 씬 파일과 해당 씬에서 쓰는 스크립트
  • shared/ — 씬 없이 스크립트만으로 동작하는 로직

씬이 필요한 건 scenes/에, 여러 곳에서 공통으로 쓰는 로직은 shared/에 넣는다. 새 유닛을 추가할 때 shared/를 건드리지 않아도 되도록 경계를 잡아뒀다.