ヒーロータイトルカードには「Claude Opus 5.5が音で遊ぶRTSを構築」と表示され、サブタイトルは「Inside Battle Drones」の音響モデム。その上に3つのフラットなラインアイコンが並び、「10 kHzアップリンク」にはスピーカー、「188ビットパケット」にはゲームコントローラー、「2.05秒スーパーフレーム」にはストップウォッチのラベルが付いている。OrcaRouterのロゴは下端に沿った白い帯の中にある。
Engineering & Research

Claude Opus 5.5が音を介して遊ぶRTSを開発:Battle Dronesのオーディオモデムの内部

著者

Alistair Wren

公開日

最新モデル · 20すべてのモデルを見る →
ベンチマーク:Artificial Analysis · 毎日更新
すべての記事に戻る

テーブルの上に2台のスマートフォン、Wi-FiもBluetoothもなし、サーバーもどこにもない。一方がリアルタイムストラテジー対戦をホストし、もう一方が参加する。そして2台の間を行き交うのはノイズだけだ——約10 kHzの搬送波が一方向に、17 kHzがもう一方向に進み、毎秒約1,880ビットでプレイヤーの命令を運ぶ。これはClaude Opus 5.5のこれまでで最も野心的な公開成果物における最新機能だ:Battle Drones。これはCommand & Conquer風のブラウザRTSで、Simon Willisonが2026年10月20日に公開した。12回の主要なイテレーションと321回のコミットを経ており、その大半はコーディングエージェントによるものだった。Anthropicは2026年9月22日にClaude Opus 5.5を、入力100万トークンあたり4ドル、出力100万トークンあたり20ドルでリリースした。つまりモデル自体は1か月前のものだ。今週新しいのは、それを使って作られたものと、それに付属するオープン仕様である。このような公開成果物では、モデルがその下でどう失敗するかが省かれがちであり、記録されたインシデントはOrcaRouter AI Incident Archiveにカタログ化されている。各項目には独自の情報源、深刻度、信頼度グレード、論争中フラグが付されている。

その主張の両半分はどちらも検証可能だ。ゲームはsimonw.github.io/battledrones/で動作しており、ソースはGitHub上でApache-2.0の下に公開され、音響リンクはブラックボックスではない——リポジトリにはSOUND-DUEL.mdが含まれている。これは帯域計画、符号化レート、パケット形式、測定された信号対雑音比を備えた完全なモデム仕様である。以下に述べるのは、その文書と投稿が実際に述べている内容を、述べていない内容から切り分けたものである。

10月20日に出荷されたもの

Battle Dronesはデモリールではない。記事で説明されているとおり、9種類の建物、7種類の地上車両、6種類の航空機、3種類の歩兵を備えており、そのすべてはアセットパックから読み込むのではなく、TypeScriptで生成された3Dモデルとして構築されている。戦場の霧があり、対空兵器と対地兵器には別々の要件がある。6つのマップが5つのバイオームにまたがり、さらに108×108の点対称の戦場を生成するシード付きランダムマップジェネレーターもある。投稿によれば、これは作者がClaudeの週次利用枠の25%を残し、リセットまで45分しかないことに気づいた後、45分間のスプリントで構築されたものだ。

モードには、スカーミッシュ、Last Standのサバイバルウェーブ、AI対AIの観戦、8ミッションのキャンペーン、そして本当に珍しいものがあります。それはエージェント対エージェントモードで、2つの言語モデルが、フォグ・オブ・ウォーで見える非視覚的なゲーム状態だけを公開するツールを通じて対戦します。それらの試合の録画リプレイはリポジトリに同梱され、基になるモデルの応答を表示するデバッグビューアも付属します。

リポジトリ自身のREADMEにある数値は、投稿の機能一覧から少しずれている。READMEは16ユニット・10建物としているが、投稿では地上・航空・歩兵にまたがる9建物・16ユニットを列挙している。16は一致するが、建物の数は一致しない。小さなことだが、エージェントがREADMEを書き、誰も監査しないときに生じる種類のずれであり、著者は「コードはほとんどレビューしていない」と率直に述べている。

仕様を読む価値があるのはこの部分です。「音声によるマルチプレイ」は、そのために必要な工学的な予算を見るまでは曲芸のように思えるからです。2台の端末が同じ部屋と1つの音響チャネルを共有するため、設計は周波数分割複信となっています。両方のスマートフォンが常時送信し、ホストは9.525~12.5 kHz、ゲストは15.975~18.95 kHzを使用します。各帯域は、ホストの第2高調波が19.05 kHzより上から始まり、各帯域からの3次相互変調が相手の帯域にかからないように配置されています。

• 変調 — 25 Hz のトーン間隔による OFDM、40 ms の有効シンボルに 10 ms のサイクリックプレフィックスを加えたもの。したがって 1 シンボルあたり 50 ms、1 秒あたり 20 シンボルです

• ペイロード — 高帯域プランでは1パケットあたり188ビット、低域フォールバックプランでは186ビット。両モードで同一であるため、モードを切り替えても収容できるデータ量は変わりません

• スループット — 高速モードでは1,880ビット/秒、高ロバストモードでは940ビット/秒、低プランでは930と465。パケットの所要時間はそれぞれ100、200、200、400ミリ秒です

• 誤り制御 — K=7、符号化率1/2、多項式133/171の畳み込み符号、軟判定ビタビ復号、シンボルおよびトーンにまたがるインターリーブ、多項式0x1021のCRC-16、および再符号化ビットの10%超が一致しない場合のハードリジェクト

フレーミング — スーパーフレームごとに1つの同期シンボルと40個のデータシンボル、41シンボルまたは2.05秒で、プランとモードに応じて20、10、10、または5個のパケットを伝送します

• 実測リンク — 10~30 cmにおいて、1~21 kHzの各1 kHz帯域で40~70 dBの電力SNRが得られ、エコーを考慮すると10 cmで実効17~31 dB、30 cmで9~19 dBまで低下し、反射は直接経路より8~15 ms遅れて到達する

仕様の正直なところは、約束することを拒んでいる点にある。ARQは存在しない。失われたパケットは再送されず、次のパケットが未確認のすべてのターンを単に再記述するだけであり、バックログが1パケットを超えると、最大4つの回転セグメントに分割される。したがって、大きなバックログは破損ではなくロックステップの停止になる。ターンはハイウォーターマークによってそれぞれ一度だけ受け入れられ、ゲームパケットは両方のペアリング用ナンスをキーとする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はごくわずかに異なる値を返す — 独自の実装に置き換えなければならなかった。2つのブラウザが超越関数の最後のビットで食い違うだけで、数分後に試合が同期ずれを起こすのに十分である。

それはモデルが見つけ、モデルが修正した実際のエンジニアリング上の制約であり、ゲームをはるかに超えて一般化する。決定論的な中核を持つエージェント構築システム——スケジューラ、財務台帳のリプレイ、シミュレーション用ハーネス、再現可能なビルド——は、同じ種類の問題に直面し、しかもそれに気づかないまま直面する。読者への教訓は「Claudeはゲームが得意だ」ではない。決定論はプロンプトにおける明示的な要件でなければならない、なぜならデフォルトの実装にはそれを真にするものが何もないからだ。

The Radio Probe と、盗む価値のあるプロンプティングパターン

モデムを書く前に、モデルは計測ページを作りました。投稿では「Radio Probe」というツールについて説明しています。これは今もリポジトリに radio-probe.html として残っており、その役割は一つの問いに答えることでした。この部屋で、この距離にある2台のデバイスが、実際にどれだけの帯域幅を相互間で得られるのか? 本格的な実装に進んだのは、プローブがそれを正当化できるだけの十分な数値を返してからでした。同じファイルには、プローブがまだ計測していない二つの事柄、すなわちiPhoneが自身のマイクを開いたまま送信する場合と、電話機が自身の送信を聞いてしまう場合が記されており、これらはまさに現場で問題になる故障モードです。

どのモデルを使うにせよ、このパターンは真似する価値がある。機能を作る前に、まず計測器を作るようエージェントに頼むのだ。まず測ってから作る――これが、誰も確認していない前提の上に1週間分の作業が乗ってしまうのを避ける方法だ。またこれにより、「オーディオのマルチプレイヤーは動く」といった主張を、単に魅力的なだけでなく検証可能なものにする数字も得られる。

これがClaude Opus 5.5について語る内容と、語らない内容

この投稿で最も強い主張は具体的だ。Willisonは、Claude Opus 5.5が「Three.jsを使った3Dモデリングで素晴らしい」と書き、ゲーム内のすべての建物、乗り物、風景はコードで手続き的に構築されており、GPT-6 Astraも同じ水準だと評価している。彼はまた、このモデルが音楽を書くと指摘している。プロジェクトには音声ファイルがなく、サウンドトラックはコードで生成され、マップによって変化し、戦闘が激しくなるにつれて強まると。

さらに2つの結果は、独立に再現されたものではなく著者による報告であり、その前提で読むべきだ。「fun update」は単一のプロンプト——「このゲームはまだ十分に楽しくない。もっとずっと楽しくしろ」——を、多数のサブエージェントを何時間も統括する動的ワークフローモードで実行したもので、その間にモデルは1,000回を超えるシミュレーション・プレイテストセッションを実行した。報告された結果は、ノーマル難易度でのAI対AIの1,200試合によるもので、25分経過しても未決着だった試合は14%から0.9%に減り、800スクラップ以上ビハインドだった側の勝利シェアは24%から46%に上がった。これらは著者が自身のゲームについて測った値であり、モデルのベンチマークではない。

この記事が示していないことも、同じくらい重要だ。ゲーム開発における Claude Opus 5.5 の第三者評価はなく、同じタスクで別のモデルと直接比較したものもなく、各実行にかかったトークン数やドル換算のコスト計算もない。著者自身の位置づけは、自分は「ゲーム開発についてほとんど何も知らない」し「コードはほとんどレビューしていない」、この結果を本格的なインディープロジェクトとは考えていない、というものだ。これは異例なほど率直な但し書きであり、結果をどこまで一般化できるかの上限を示している。つまり、これは一人の実践者、一つのコードベース、一か月の話なのだ。

このようなプロジェクトを運営するのにどれくらいの費用がかかるのか

Anthropicが公表しているClaude Opus 5.5の料金表は、入力トークン100万あたり$4.00、出力トークン100万あたり$20.00、キャッシュ読み取り100万あたり$0.20です。この形のプロジェクトはほぼ完全に出力律速で、モデルは大規模な固定コーパスを読んでいるのではなくTypeScriptを書いているため、請求額を左右するのは$20の出力の行であり、高い並列度での数時間に及ぶ夜通し実行が「トークンあたりでは安い」を実際の金額に変えます。Battle Dronesについて総額は公表されていないため、正直に言えば、上限は投稿内のどの数字によって決まるのでもなく、どれだけのエージェント時間を購入するつもりかによって決まります。

1 つの印象的な成果物を根拠に本番経路を単一モデルに固定しない理由も、そこにあります。Claude Opus 5.5 はOrcaRouter 上で Anthropic の定価、マークアップ 0% で提供されているため、ベンダーの価格変更は当日にはこちら側にも反映され、自動フェイルオーバーにより、上流エンドポイントの一時的な不調で長時間のエージェント実行が落ちることはありません。このような一晩がかりのビルドが別モデルでも再現できるか試したいなら、200+ モデルを 1 つの 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% という数字を、自分のキッチンテーブルでも守られる約束と受け取ってはいけない。

• 先行技術 — この投稿は、比較可能な唯一の研究として{{1}}アロン・ホレシュによるSiner{{/1}}と{{2}}ゲオルギ・ゲルガノフによるggwave{{/2}}を挙げ、静的HTMLゲーム向けの音声マルチプレイヤーを「私が知る限り、RTSでは初めて」と呼んでいる。それは著者の調査であって、文献レビューではない。

• コードの帰属 — 後半のイテレーションの大半は Claude Opus 5.5 が主導したが、最初のバージョンは7月に Claude Fable 5 で作られており、README 自体にも文書の残りの部分は Claude が書いたと記されている。このリポジトリは出自の混在した成果物として扱うこと。

• ベンチマーク結果 — それは存在しません。ここには、スコアが付くタスクにおいて Claude Opus 5.5 を別のモデルと比較して測定しているものは何もありません。

実際に持ち帰るべき点は、「AIがゲームを作った」という話よりも狭く、より有用だ。バックエンドなしのブラウザRTS、決定論的シミュレーション、そして動作する音響モデムは、エージェントが構築したソフトウェアの難しい部分が、コードの生成から、生成されたコードを検証可能にできるほど正確に制約——決定論、測定、エラー時の挙動——を指定することへ移ったことの実証だ。SOUND-DUEL.md文書がその証拠だ。これは、出荷前にリンクが何をできて何をできないかを誰かがモデルに書き出させたから存在している。その規律が自分のワークロードにも移せるか確かめたいなら、同じプロンプトを2つ目のモデルに対して実行し、スクリーンショットではなく仕様を比較してみるとよい。

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 · 毎日更新