히어로 타이틀 카드에는 ‘Claude Opus 5.5, 소리로 플레이하는 RTS를 만들다’라는 제목과 ‘Inside Battle Drones의 음향 모뎀’이라는 부제가 적혀 있으며, 그 아래에는 확성기 아이콘이 붙은 ‘10 kHz 업링크’, 게임 컨트롤러 아이콘이 붙은 ‘188비트 패킷’, 스톱워치 아이콘이 붙은 ‘2.05초 슈퍼프레임’이라고 표시된 세 개의 플랫 라인 아이콘이 있습니다. OrcaRouter 로고는 하단 가장자리를 따라 있는 흰색 띠에 있습니다.
Engineering & Research

Claude Opus 5.5, 소리로 플레이하는 RTS를 만들다: Battle Drones의 오디오 모뎀 속으로

작성자

Alistair Wren

게시일

최신 모델 · 20모든 모델 보기 →
벤치마크: Artificial Analysis · 매일 업데이트
모든 게시물로 돌아가기

테이블 위에 놓인 휴대폰 두 대, Wi-Fi도 Bluetooth도 없고 어디에도 서버가 없습니다. 한 대가 실시간 전략 대전을 호스팅하고 다른 한 대가 참가하는데, 둘 사이를 오가는 것은 오직 잡음뿐입니다 — 약 10kHz의 반송파가 한 방향으로, 17kHz가 다른 방향으로 흐르면서 플레이어 명령을 초당 약 1,880비트로 실어 나릅니다. 그 최신 기능은 바로Claude Opus 5.5의 지금까지 가장 야심찬 공개 결과물인Battle Drones에 들어 있습니다. 즉, Simon Willison이 2026년 10월 20일에 공개한 Command & Conquer 스타일의 브라우저 RTS입니다. 이 작품은 12번의 주요 반복과 주로 코딩 에이전트가 만들어 낸 321개의 커밋을 거쳤습니다. Anthropic은 2026년 9월 22일 Claude Opus 5.5를 백만 입력 토큰당 4달러, 백만 출력 토큰당 20달러에 출시했으므로 모델 자체는 이제 한 달 되었습니다. 이번 주에 새로운 것은 이 모델을 이용해 만든 것과 그에 딸린 공개 명세입니다. 이와 같은 공개 결과물은 모델이 그 이면에서 어떻게 실패하는지를 대개 빠뜨리기 쉬우며, 기록된 사건들은 OrcaRouter AI Incident Archive에 정리되어 있는데, 각 항목에는 자체 출처, 심각도, 신뢰도 등급, 분쟁 플래그가 함께 제공됩니다.

그 주장의 두 부분 모두 검증할 수 있습니다. 게임은 simonw.github.io/battledrones/에서 실행됩니다. 소스는 Apache-2.0 라이선스로 GitHub에 있으며, 음향 링크는 블랙박스가 아닙니다 — 저장소에는 SOUND-DUEL.md라는 전체 모뎀 사양서가 포함되어 있습니다. 이 사양서에는 대역 계획, 코딩 레이트, 패킷 형식, 측정된 신호 대 잡음비 수치가 담겨 있습니다. 다음은 그 문서와 게시물이 실제로 말하는 바를, 그들이 말하지 않는 것과 구분한 것입니다.

10월 20일에는 무엇이 출시되었나요?

Battle Drones는 데모 릴이 아닙니다. 글에 설명된 대로, 이 게임에는 9개의 건물, 7대의 지상 차량, 6대의 항공 차량, 3가지 보병 유형이 있으며, 모두 에셋 팩에서 불러온 것이 아니라 TypeScript로 생성한 3D 모델로 만들어졌습니다. 전장의 안개가 있고, 대공 무기와 대지 무기의 요구 사항이 별도로 존재합니다. 6개의 맵이 5개의 생물 군계를 아우르며, 여기에 108×108 점대칭 전장을 생성하는 시드 기반 무작위 맵 생성기가 더해집니다. 글에 따르면 이 생성기는 작성자가 주간 Claude 사용 한도의 25%가 남아 있고 초기화까지 45분이 남은 것을 알아차린 뒤 45분 스프린트로 만들었습니다.

모드에는 스커미시, 라스트 스탠드 생존 웨이브, AI 대 AI 관전, 8개 미션 캠페인, 그리고 정말 이례적인 것이 포함됩니다: 두 언어 모델이 전장의 안개상 보이는 비시각적 게임 상태만을 노출하는 도구를 통해 서로 플레이하는 에이전트 대 에이전트 모드입니다. 해당 경기의 녹화된 리플레이는 저장소와 함께 제공되며, 기반 모델 응답을 보여주는 디버그 뷰어도 함께 제공됩니다.

저장소 자체의 README에 있는 수치가 게시물의 기능 목록과 약간 어긋나 있다. README는 16개 유닛과 10개 건물이라고 하는 반면, 게시물은 지상, 공중, 보병에 걸쳐 9개 건물과 16개 유닛을 열거한다. 16은 맞고, 건물 수는 맞지 않는다. 작은 차이지만, 에이전트가 README를 작성하고 아무도 이를 감사하지 않을 때 생기는 그런 종류의 어긋남이며, 저자는 자신이 "코드를 거의 검토하지 않았다"고 분명히 말한다.

이 부분이 스펙을 읽어볼 가치가 있는 대목이다. ‘오디오를 통한 멀티플레이’는 그것이 맞춰 넣어야 했던 공학적 예산을 보기 전까지는 묘기처럼 들리기 때문이다. 두 기기가 한 방과 하나의 음향 채널을 공유하므로 설계는 주파수 분할 듀플렉스다. 두 휴대폰 모두 지속적으로 전송하며, 호스트는 9.525–12.5 kHz, 게스트는 15.975–18.95 kHz를 사용한다. 각 대역은 호스트의 2차 고조파가 19.05 kHz보다 위에서 시작하고 각 대역의 3차 상호변조가 다른 대역과 겹치지 않도록 배치된다.

• 변조 — 25Hz 톤 간격의 OFDM, 40ms 유효 심볼에 10ms 순환 전치(cyclic prefix)를 더해 심볼당 50ms, 초당 20심볼

• 페이로드 — 고대역 플랜에서 패킷당 188비트, 저대역 폴백 플랜에서 186비트이며, 두 모드에서 동일하므로 모드를 전환해도 수용되는 용량은 절대 달라지지 않습니다

• 처리량 — 하이 패스트 모드에서 1,880bit/s, 하이 로버스트에서 940bit/s, 로우 플랜에서 930 및 465bit/s; 패킷은 각각 100, 200, 200, 400ms가 소요됩니다

• 오류 제어 — K=7, 부호율 ½, 다항식 133/171의 컨볼루션 코드, 소프트 비터비 디코딩, 심볼과 톤에 걸친 인터리빙, 다항식 0x1021을 사용하는 CRC-16, 그리고 재인코딩된 비트의 10% 초과가 불일치할 경우 강제 거부

• 프레이밍 — 슈퍼프레임당 동기 심볼 1개와 데이터 심볼 40개, 41개 심볼 또는 2.05초이며, 플랜과 모드에 따라 20, 10, 10 또는 5개의 패킷을 전송합니다.

• 측정된 링크 — 10–30cm에서 1–21kHz의 모든 1kHz 대역에서 40–70dB 전력 SNR을 보이며, 에코를 고려하면 10cm에서 실효 17–31dB, 30cm에서 9–19dB로 저하되고, 반사파는 직접 경로보다 8–15ms 늦게 도착합니다.

명세서에서 정직한 부분은 그것이 약속하기를 거부하는 부분이다. ARQ는 없다. 손실된 패킷은 재전송되지 않고, 다음 패킷이 확인되지 않은 모든 턴을 그저 다시 기술하며, 백로그가 패킷 하나를 넘어서면 최대 네 개의 순환 세그먼트에 나뉘어 담긴다. 따라서 큰 백로그는 데이터 손상이 아니라 록스텝 정지로 이어진다. 턴은 최고 수위 표시에 의해 각각 한 번만 수락되며, 게임 패킷은 양쪽 페어링 난스에 키가 맞춰진 CRC로 보호되므로 다른 경기의 기록은 검사를 통과하지 못한다. 명세서가 말하듯, 재밍은 견뎌낼 수는 있어도 막을 수는 없다. 정지할 뿐, 조용히 동기화가 어긋나는 일은 없다.

룸 모델 테스트의 전달 수치는 견고 모드에서 20cm일 때 99% 이상, 40cm일 때 95%, 고속 모드에서 20cm일 때 98%입니다. 이는 사양서에 보고된 시뮬레이션 결과이지 현장 연구가 아니며, 게시물 자체도 이 기능이 출시될 당시 매우 새로웠다고 말합니다: "이제 막 이걸 작동하게 만들었을 뿐이라 아직 적극적으로 테스트할 시간이 많지 않았습니다."

A single-column scoreboard titled 'Battle Drones' audio link — the scoreboard' with six rows: Uplink band 9.525–12.5 kHz; Downlink band 15.975–18.95 kHz; Modulation OFDM, 25 Hz spacing; Coding K=7 rate 1/2, soft Viterbi; Top throughput 1,880 bit/s; Retransmission none, rotating segments. The footer reads: 'All figures per the project's SOUND-DUEL.md; simulated room model, not a field study.' The OrcaRouter logo sits in a white strip along the bottom edge.

모뎀보다 더 중요한 버그

마무리 관찰 속에는 에이전트로 상태를 가진 소프트웨어를 구축하는 사람 누구에게나 가장 유용할 만한 세부 사항이 숨어 있다. 리플레이와 락스텝 멀티플레이어는 모두 모든 기기에서 시뮬레이션이 비트 단위로 동일해야 하므로, Claude는 다음 호출을 중단해야 했다: Math.sin() 및 Math.cos() — Chrome과 Safari는 아주 약간 다른 값을 반환한다 — 그리고 자체 구현으로 대체했다. 두 브라우저가 초월 함수의 마지막 비트에서 불일치하는 것만으로도 몇 분 뒤 경기가 동기화 해제되기에 충분하다.

그것은 모델이 발견하고 모델이 고친 실제 엔지니어링 제약이며, 게임을 훨씬 넘어 일반화됩니다. 결정론적 코어를 가진 에이전트 구축 시스템이라면 무엇이든 — 스케줄러, 금융 원장 재생, 시뮬레이션 하네스, 재현 가능한 빌드 — 같은 부류의 문제에 부딪히게 되고, 그것도 조용히 부딪힙니다. 독자가 얻어야 할 교훈은 "Claude가 게임을 잘한다"가 아닙니다. 결정론은 프롬프트에 명시적인 요구사항이어야 한다는 것입니다. 기본 구현에서는 그것을 참으로 만들어 주는 것이 아무것도 없기 때문입니다.

라디오 프로브, 그리고 훔칠 만한 프롬프팅 패턴

모뎀을 작성하기 전에, 모델은 측정 페이지를 하나 만들었다. 이 글은 저장소에 여전히 radio-probe.html로 남아 있는 "Radio Probe"라는 도구를 설명하는데, 이 도구의 임무는 한 가지 질문에 답하는 것이었다. 바로 이 방에서, 이 거리에서 두 기기가 서로 간에 실제로 얼마나 많은 대역폭을 확보할 수 있는가? 전체 구현은 탐침이 그것을 정당화할 만큼 충분히 좋은 수치를 돌려준 뒤에야 진행되었다. 같은 파일에는 탐침이 아직측정하지 못한 두 가지 — 자체 마이크를 켠 채 송신하는 아이폰, 그리고 자신의 송신을 스스로 수신하는 휴대폰 — 를 기록하고 있는데, 이 둘은 바로 현장에서 문제가 될 실패 모드들이다.

어떤 모델을 쓰든 이 패턴은 따라 할 가치가 있습니다. 기능을 만들기 전에 에이전트에게 계측 도구부터 만들라고 요청하세요. 먼저 측정하고 그다음에 구현하는 방식이야말로, 아무도 확인하지 않은 가정 위에 일주일치 작업이 통째로 얹히는 일을 피하는 방법입니다. 또한 "오디오 멀티플레이가 작동한다" 같은 주장을 그럴듯한 말이 아니라 검증 가능한 것으로 만들어 주는 수치를 만들어냅니다.

이것이 Claude Opus 5.5에 대해 말하는 것과 말하지 않는 것

게시물에서 가장 강력한 주장들은 구체적이다. Willison은 Claude Opus 5.5가 "Three.js를 활용한 3D 모델링에서 놀라울 정도로 뛰어나다"고 썼다. 게임 속 모든 건물과 차량, 풍경은 코드로 절차적으로 생성되며, 그는 GPT-6 Astra도 같은 반열에 올려놓는다. 그는 또한 이 모델이 음악도 작곡한다고 언급한다. 프로젝트에는 오디오 파일이 전혀 없고, 사운드트랙은 코드로 생성되며, 맵에 따라 달라지고 전투가 격해질수록 강렬해진다.

추가로 나온 두 가지 결과는 독립적으로 재현된 것이 아니라 작성자가 보고한 것이므로, 그렇게 읽어야 한다. ‘재미 업데이트’는 단 하나의 프롬프트 — ‘이 게임은 아직 충분히 재미없다. 훨씬 더 재미있게 만들어라.’ — 를 수많은 하위 에이전트를 여러 시간 동안 오케스트레이션하는 동적 워크플로 모드에서 실행한 것이었으며, 그 과정에서 모델은 1,000회가 넘는 시뮬레이션 플레이테스트 세션을 돌렸다. 보고된 결과는 노멀 난이도에서 진행된 AI 대 AI 경기 1,200회 기준으로, 25분 후에도 승부가 나지 않은 경기가 14%에서 0.9%로 줄었고, 800+ 고철 뒤진 상태였던 진영의 승리 비중은 24%에서 46%로 상승했다. 이는 작성자가 자신의 게임을 측정한 것이지, 모델의 벤치마크가 아니다.

이 결과물이 보여주지 않는 것도 그만큼 중요하다. 게임 개발에서 Claude Opus 5.5를 평가한 제3자 검증도, 같은 과제에서 다른 모델과 맞붙인 비교도, 실행에 들어간 토큰이나 비용을 따진 회계도 없다. 저자 본인도 자신이 "게임 개발에 관해 거의 아무것도 모르고", "코드는 거의 검토하지 않았으며", 이 결과를 진지한 인디 프로젝트로 여기지 않는다고 밝히고 있다. 이는 이례적으로 솔직한 단서들이며, 이 결과를 어디까지 일반화할 수 있는지를 제한한다. 즉 이는 한 명의 실무자, 하나의 코드베이스, 한 달에 불과한 사례다.

이런 프로젝트를 운영하는 데 드는 비용

A​nthropic이 Claude Opus 5.5에 대해 공개한 요율표는 입력 토큰 100만 개당 $4.00, 출력 토큰 100만 개당 $20.00, 캐시 읽기 100만 개당 $0.20입니다. 이런 형태의 프로젝트는 거의 전적으로 출력에 의해 비용이 결정됩니다. 모델이 대규모 고정 코퍼스를 읽는 것이 아니라 TypeScript를 작성하기 때문입니다. 따라서 청구서를 좌우하는 항목은 $20짜리 출력 항목이며, 높은 병렬성으로 여러 시간 동안 밤새 실행하는 것이 '토큰당 저렴함'을 실제 숫자로 바꾸는 요인입니다. Battle Drones에 대해서는 총액이 공개되지 않았으므로, 솔직히 말하면 상한은 게시물에 나온 어떤 수치가 아니라 얼마나 많은 에이전트 시간을 구매할 의향이 있는지에 의해 정해집니다.

그것은 또한 인상적인 결과물 하나만을 근거로 프로덕션 경로를 단일 모델에 고정하지 말아야 하는 이유이기도 합니다. Claude Opus 5.5는 Anthropic 정가에 0% 마크업으로 OrcaRouter에서공급업체의 가격 변경이 당일 우리 쪽에도 그대로 반영되며, 자동 장애 조치덕분에 업스트림 엔드포인트 하나가 잠시 문제를 겪는다고 해서 긴 에이전트 실행이 중단되는 일은 없습니다. 이처럼 밤새 진행된 빌드가 다른 모델에서도 재현되는지 확인하고 싶다면, 200개 이상의 모델을 위한 단일 API가 가장 저렴한 방법입니다 — 동일한 요청 형태, 다른 모델 이름, 두 번째 계약은 필요 없습니다.

The OrcaRouter model page for anthropic/claude-opus-5.5, showing the Claude Opus 5.5 listing at $4.00 per million input and $20.00 per million output, a 200k-token context, and the provider row served directly by Anthropic.

무엇이 확립되지 않았는가

• 인기도 — 이 저장소는 게시글이 올라온 다음 날인 2026년 10월 21일에 확인했을 때 별 4개와 포크 0개를 보여 주었다. 이것은 현상이 아니다. 한 사람의 프로젝트가 공개된 것뿐이다.

• 오디오 링크의 실제 환경 신뢰성 — 사양서의 전달률 수치는 실내 모델 테스트에서 나온 것이며, 작성자는 해당 기능을 적극적으로 테스트할 시간이 많지 않았다고 밝히고 있습니다. 99%를 당신의 식탁에서의 약속으로 받아들이지 마세요.

• 선행 기술 — 이 글은 자신이 찾을 수 있었던 유일한 비교 대상으로 Alon Horesh의 Siner와 Georgi Gerganov의 ggwave를 인용하며, 정적 HTML 게임을 위한 오디오 멀티플레이어를 "내가 알기로는 RTS에서는 최초"라고 말한다. 이는 저자의 검색 결과일 뿐, 문헌 검토는 아니다.

• 코드 출처 표기 — 이후 반복 작업의 대부분은 Claude Opus 5.5가 주도했지만, 첫 버전은 지난 7월에 Claude Fable 5로 만들어졌으며, README 자체에도 문서의 나머지 부분은 Claude가 작성했다고 나와 있다. 이 저장소는 출처가 혼합된 산출물로 취급하라.

• 벤치마크 결과 — 없습니다. 여기에는 점수가 있는 작업에서 Claude Opus 5.5를 다른 모델과 비교한 내용이 없습니다.

실제로 가져가야 할 핵심은 "AI가 게임을 만들었다"보다 더 좁고 더 유용하다. 백엔드 없는 브라우저 RTS, 결정론적 시뮬레이션, 실제로 동작하는 음향 모뎀은 에이전트가 만든 소프트웨어의 어려운 부분이 코드 생성에서 제약 조건—결정론, 측정, 오류 동작—을 생성된 코드가 검증 가능할 만큼 정밀하게 명세하는 일로 이동했음을 보여주는 사례다. SOUND-DUEL.md 문서가 바로 그 증거다: 이 문서가 존재하는 이유는 누군가 모델에게 링크가 무엇을 할 수 있고 무엇을 할 수 없는지를 출시 전에 적어 두게 했기 때문이다. 그 규율이 자신의 작업에도 전이되는지 확인하고 싶다면, 같은 프롬프트를 두 번째 모델에 실행하고 스크린샷이 아니라 명세를 비교하라.

The published Battle Drones title page at simonw.github.io/battledrones, showing an isometric 3D battlefield behind the BATTLE DRONES logo and the description 'C&C-style real-time strategy game for the browser featuring 3D graphics, single-player and multiplayer, created by Claude Opus 5.5 and Claude Fable 5.'

이 글에서 비교한 모델2

이 글에서 자동 인식 · 벤치마크: Artificial Analysis · 매일 업데이트