20년 차 게임 개발자가 30일 만에 '바이브코딩'으로 멀티플레이어 .io 게임을 만든 솔직한 후기
I've been in game dev for over 20 years and just tried vibecoding a production-quality competitive multiplayer .io game in 30 days. Here's the honest breakdown.
핵심 요약
20년 차 개발자가 Claude를 활용해 30일 만에 완성도 높은 멀티플레이어 게임을 개발한 경험담.
- 개발 프로세스 — 기획 문서와 AI 구현 사이의 균형을 유지하며 14단계로 나누어 개발함.
- AI의 역할 — 보일러플레이트 코드 작성과 오디오 합성 등 반복적인 작업에서 뛰어난 효율을 보임.
- 인간의 역할 — 프로덕션 환경의 미세한 감각 조정, 버그 수정, 범위 확장 방지 등 판단력이 필수적임.
- 기술 스택 — Three.js, Node.js, Web Audio API를 활용해 외부 에셋 없이 절차적으로 구현함.
프로젝트: nodecontrol.gg : 신경망 내부를 배경으로 한 경쟁 멀티플레이어 영토 점령 .io 게임. 무료, 브라우저 기반, 설치 불필요. Vibe Jam 2026을 위해 제작됨.
빌드: 30일, 1인 개발 + Claude. 현재 프로덕션 라이브 중: 4개 지역 애니캐스트, 모바일 지원, 텔레메트리, 게임 내 도움말, FTUE.
스택
- 클라이언트: Three.js (WebGL), 바닐라 JS, 단일 HTML 엔트리, 모든 비주얼은 절차적으로 생성됨 (외부 에셋 없음: 모델, 텍스처, 스프라이트 시트 없음).
- 서버: Node.js +
ws(WebSocket), 권한 있는 게임 상태, 60Hz 틱. - 오디오: 모든 효과음은 Web Audio API를 통해 절차적으로 합성됨. BGM은 HTMLAudioElement를 통해 스트리밍되는 외부 .ogg 트랙.
- 배포: Cloudflare Pages (클라이언트, 무료 무제한 대역폭) + Fly.io 4개 지역 애니캐스트 (게임 서버, 월 약 8달러).
- AI: 전 과정에 Claude 활용. 대략 Sonnet 1%, Opus 4.6 80%, Opus 4.7 19%. 구현 시작 전 직접 작성한 계획 문서를 기반으로 작업함.
프로세스
- 코드를 작성하기 전에 게임 플레이, 네트워크 프로토콜, 비주얼 언어를 정의하는 PRD와 DESIGN 문서를 직접 작성함. 이 문서들은 '잠금' 상태였음. 문서의 결정 사항들은 빌드 과정에서 잘못된 가정을 발견하며 수정되었고, 언제 벗어날지 판단하는 것이 전문가로서의 핵심 역량이었음. AI가 문서에 너무 엄격하면 의미 없는 길로 갔을 것이고, 완전히 무시했다면 매 세션마다 모든 결정을 다시 해야 했을 것임. 적절한 균형을 유지하는 데 인간의 판단이 필요했음.
- 빌드를 14개의 단계로 나눔 (렌더링 → 이동 → 기본 게임 플레이 → 멀티플레이어 → 봇 → UI → 모바일 → 오디오 → 폴리싱 → FTUE → 배포 → 분석 → 최종 폴리싱 → 제출).
- 각 단계는 구조화된 구현 과정이었음. AI가 대부분의 타이핑을 했고, 나는 모든 diff를 검토하고 실행하며 판단했고, 폴리싱 단계가 따로 있었음에도 사소한 조정을 직접 수행함.
- 지속적인 메모리 파일은 AI가 세션 전반에 걸쳐 방향을 잃지 않게 함: 학습된 규칙, 프로젝트 상태, 코드 위치 참조 등.
AI가 잘한 점
- 보일러플레이트가 많은 Three.js 작업 (인스턴스화된 지오메트리, 셰이더 유니폼, 씬 설정).
- 클라이언트 예측과 서버 권한 상태 간의 게임 로직 변환.
- 자연어 설명으로부터의 오디오 합성.
- 키 리스트 사양으로부터의 FTUE / 힌트 시스템 구현.
- 설정 UI, 텔레메트리 파이프라인, 지역 선택기, 모바일 터치 컨트롤.
인간이 필요했던 점
- 느낌(Feel). AI는 RTT 측정과 랙 보정을 구현하는 데 능숙하지만, 배포된 게임을 직접 플레이하며 로컬보다 프로덕션에서 부스트 느낌이 나쁘다는 것을 알아채고 30분 만에 두통을 느끼는 것은 인간만이 할 수 있는 주관적인 평가임.
- 프로덕션 버그 포착. 대역폭 누수가 있는 상태로 배포했는데, 유휴 클라이언트가 세션 내내 5초마다 12개의 HTTPS 지역 프로브를 발사하는 문제였음. 배포 후 네트워크 패널을 확인하다 발견했는데 AI는 배포 전 코드 리뷰에서 이를 잡아내지 못했음. AI가 무엇을 하는지 알고 있어야 함, 아니면 비용이 발생함.


