28일간, 하루 10~14시간씩 카페인과 함께. 오직 바이브 코딩으로만 첫 2D 게임을 완성했습니다. 4월 4일 ~ 5월 1일
28 days, 10-14 hours a day and a lot of caffeine. Just finished my first 2D game vibe coding only. April 4th - May 1st
핵심 요약
AI 도구들을 활용해 28일 만에 2D 러너 게임을 개발한 경험과 물리 엔진 최적화 과정을 공유함.
- AI 개발 방식 — Gemini로 기획, Claude로 로직 구현, Cursor로 통합 및 테스트를 진행함.
- 물리 엔진 최적화 — 19개 캐릭터에 동일한 히트박스를 적용하고 시각적 오프셋으로 정렬함.
- 성능 유지 전략 — 60 FPS 유지를 위해 UI를 Canvas 밖으로 분리하고 복잡한 연산을 최소화함.
- 개발 강도 — 하루 10~14시간씩 몰입하며 AI와의 대화만으로 게임을 완성함.
지난 한 달 동안 Cursor 2026 Vibe Game Jam 프로젝트에 매진했습니다. 보안 요원이라는 직업 특성상 여유 시간이 꽤 있어서, 하루 10~14시간(집에서 4~6시간, 12시간 근무 중 5~8시간)을 프롬프트와 로직, 테스트를 씨름하며 보냈습니다. 빈 화면에서 시작해 2D 블록 러너 프로토타입을 거쳐 에셋, 캐릭터, 챌린지가 포함된 완전한 게임을 만들기까지, Gemini와 Claude와의 대화만으로 진행한 4월은 정말 미친 듯이 스트레스받는 한 달이었습니다.
개발 방식이 궁금한 분들을 위해 설명하자면, 저는 하이브리드 스택을 사용했습니다. Gemini로 핵심 메커니즘을 브레인스토밍하고 게임 디자인 문서를 작성하며 테마를 구체화했습니다. 그 후 Claude가 로직과 복잡한 시스템을 구현하는 무거운 작업을 담당했습니다. Cursor는 제 사령탑 역할을 하며 로직을 통합하고 게임 에셋으로 라이브 서버 테스트를 실행하는 데 사용되었습니다.
이 빠른 속도의 엔드리스 러너 게임을 바이브 코딩으로 개발하며 겪은 가장 큰 난관은, AI가 코드는 잘 짜지만 '느낌'을 이해하는 데는 젬병이라는 점이었습니다. 그래서 저는 깨지지 않는 규칙을 세워야 했습니다. HTML5 Canvas에서 60 FPS를 유지하기 위해 엄격한 기술적 규칙을 세웠습니다. 예를 들어, '신성한 물리 교리'를 구현했습니다. 게임에는 19가지 캐릭터 변형이 있는데, 스프라이트마다 물리 설정을 조정하는 대신 모든 것에 단일 물리 충돌 히트박스를 강제로 적용했습니다. 각 캐릭터의 애니메이션은 동일하지만, AI가 아트와 일관성을 유지하게 만드는 데 예상보다 훨씬 긴 시간이 걸렸습니다. 아트는 물리 엔진에 맞게 조정되며, 그 반대는 절대 없습니다. 플레이어가 캐릭터를 바꿔도 물리 엔진은 변하지 않습니다. 대신 게임 엔진이 마스터 설정 딕셔너리에서 선택된 캐릭터를 찾아 시각적 아트만 히트박스에 맞게 이동시킵니다. 충돌 히트박스는 고정되어 있습니다. 19가지 캐릭터 모두 동일한 물리적 발자국을 공유합니다.
실제 스프라이트 이미지는 생성 도구에 따라 크기가 다를 수 있습니다.
복잡한 물리 엔진 코드를 작성하는 대신, 저는 SPRITE_CONFIG 딕셔너리를 사용했습니다. 이 딕셔너리는 vOffsetY나 jumpScale 같은 시각적 정렬 변수를 저장합니다.
'vOffsetY'는 캐릭터의 발이 지면에 닿도록 아트를 위아래로 밀어내는 픽셀 수입니다. 그림을 움직이는 것이지 히트박스는 그대로입니다.
'jumpScale'은 캐릭터가 점프할 때 애니메이션이 커지면 히트박스 밖으로 튀어나가는 것을 방지하기 위해 아트를 살짝 줄이거나 키우는 규칙입니다. AI가 며칠간의 디버깅 끝에 이를 이해하게 해주었습니다. 또한 60 FPS 유지를 위해 캐릭터 선택 화면 같은 주요 UI는 Canvas가 아닌 표준 HTML DOM과 CSS로 구현하도록 AI에게 지시했습니다.





