사이먼 윌리슨, AI 시켜 만든 RTS 공개…소리로 멀티플레이
Django 공동 개발자 사이먼 윌리슨이 Claude Code로 만든 RTS Battle Drones를 공개했다. 커밋 321개, 소리로 하는 멀티플레이까지 담았다.
웹 프레임워크 Django 공동 개발자인 사이먼 윌리슨이 10월 20일(현지시간) 코딩 에이전트에게 거의 전부를 맡겨 만든 브라우저용 실시간 전략(RTS) 게임 'Battle Drones'를 공개했다. 윌리슨은 7월부터 12차례 큰 개편과 321개 커밋을 거쳤고, 두 스마트폰이 마이크와 스피커로 주고받는 소리만으로 대전하는 기능까지 붙였다고 개인 블로그에서 밝혔다.
핵심 정리
- Battle Drones는 7월 첫 버전 이후 v12까지 12번 개편됐고, 커밋 321개 대부분을 Claude Code가 작성했다.
- v12에는 마이크가 닿는 거리의 기기 두 대가 소리로 게임 상태를 맞추는 '오디오 멀티플레이'가 들어갔다.
- 온라인 대전용 중계 서버는 Fly.io 최저 사양 인스턴스에서 돌며, 상시 가동해도 월 2.19달러를 넘지 않는다고 윌리슨은 추산했다.
Battle Drones는 어떤 게임인가
Battle Drones는 '커맨드 앤 컨커' 계열의 휴대폰 브라우저용 RTS로, 비행·지상 드론 부대가 영토와 자원을 두고 싸우는 게임이다. 코드는 GitHub 저장소에 Apache-2.0 라이선스로 공개됐다. 건물 9종과 지상 차량 7종, 비행체 6종, 보병 3종이 등장하며 5개 생태 환경에 걸친 맵 6개와 시드 기반 무작위 맵 생성기를 갖췄다.
게임 모드는 스킬미시와 생존형 'Last Stand', 8개 임무로 된 캠페인 'Ops', 매일 바뀌는 'Daily Op', AI끼리 붙는 'Agent vs. Agent'까지 다섯 가지다. 초반 전략을 고르는 오프너(Blitz·Industry·Air Wing)와 포격·EMP 같은 호출형 능력도 있다. 사운드트랙은 오디오 파일 없이 전부 코드로 생성했고, 스프라이트는 OpenAI 이미지 생성 API로 만들었다.
코딩 에이전트로 게임을 어떻게 만들었나
윌리슨이 Claude에 처음 보낸 지시는 "Battle Drones라는 모바일 친화적 RTS를 만들자"는 한 문장과 "MVP 설계부터 시작하고 질문을 해 달라"는 요청이었다. 7월 Claude Fable 5로 만든 v1은 텍스트 아이콘과 조잡한 탱크가 전부인 "겨우 개념 증명" 수준이었다고 그는 적었다. v3부터는 Anthropic의 Claude Opus 5.5가 주력이 됐고, v5에서는 2D 엔진 Phaser를 버리고 Three.js 기반 3D로 옮겼다.
큰 개편은 Claude Code의 'Ultracode' 모드로 밤새 돌렸다. Ultracode는 여러 AI 에이전트를 한꺼번에 지휘하는 JavaScript 스크립트, 즉 '동적 워크플로'를 실행하는 방식이다. v4는 저녁부터 이튿날 늦은 아침까지 돌았다. 윌리슨은 토큰 소모가 크다고 했지만 총비용은 밝히지 않았다.
밸런스 조정도 에이전트가 맡았다. 블로그에 따르면 Claude는 노멀 난이도 AI 대 AI 경기 1,200판을 돌렸고, 25분이 지나도 승부가 나지 않는 경기 비율이 14%에서 0.9%로 줄었다. 고철이 800 이상 뒤진 쪽이 역전승하는 비율은 24%에서 46%로 올랐다.
소리로 하는 멀티플레이는 어떻게 동작하나
오디오 멀티플레이는 기기 두 대가 고음의 모뎀 신호를 주고받아 게임 상태를 맞추는 방식이다. 윌리슨이 일주일 전 휴대폰 두 대로 퐁을 하던 실험 'Chirp Pong'에서 출발했다. 그는 대역폭을 먼저 재는 도구를 만들게 한 뒤 Claude에게 오디오 모뎀 전체를 구현하게 했다고 설명했다. 윌리슨은 이 기능이 자신이 아는 한 RTS로는 처음이라고 주장했다.
문제도 있었다. 한 테스터가 모뎀 소리 탓에 심한 두통을 호소하자 인터넷 대전 기능을 따로 만들었다. WebRTC가 윌리슨의 집 와이파이에서도 연결되지 않아, Claude가 asyncio로 상태를 저장하지 않는 WebSocket 중계 서버를 짰다.
개발자에게 주는 시사점
윌리슨은 TypeScript 코드를 거의 읽지 않았고 게임 개발 경험도 적다고 밝혔다. 그는 게임은 버그가 나도 피해가 작아 실험하기 좋은 분야라고 봤다. 품질을 끌어올린 데는 "훨씬 더 재미있게 만들어라(Make it a LOT more fun)"라는 짧은 지시가 놀랄 만큼 잘 먹혔다고 했다. 대규모 병렬 에이전트 작업 사례로는 병렬 에이전트 64개로 11일 만에 끝낸 Bun의 Rust 포팅이 있다.
다만 그는 Battle Drones를 Steam Next Fest 같은 행사에 낼 생각은 없다며, 정식 인디 게임으로 보기엔 들인 노력이 너무 적다고 선을 그었다. 그래도 바이브 코딩으로 만든 게임이 언젠가는 진지하게 받아들여질 수 있다고 내다봤다.
자주 묻는 질문
Battle Drones는 무료로 할 수 있나?
그렇다. 윌리슨의 GitHub Pages 주소에서 휴대폰이나 PC 브라우저로 바로 실행할 수 있다. 소스 코드도 GitHub에 Apache-2.0 라이선스로 공개돼 있다.
Battle Drones 개발에 어떤 AI 모델을 썼나?
첫 버전은 Claude Fable 5로 만들었고, v3부터는 주로 Claude Opus 5.5를 Claude Code에서 썼다. 스프라이트는 OpenAI 이미지 생성 API로 만들었다.
오디오 멀티플레이를 하려면 무엇이 필요한가?
마이크와 스피커가 있는 기기 두 대를 서로 소리가 들리는 거리에 두면 된다. 모뎀 소리가 거슬리면 Fly.io 중계 서버를 쓰는 온라인 대전을 고를 수 있다.
댓글 0
현재 댓글 작성이 비활성화되어 있습니다.