2026-10-20 · ← ニュース
「もっとずっと面白くして」が効いた:Simon WillisonがClaude Codeに遊べるRTSを作らせた
Simon Willisonは、Command & Conquer風の戦略ゲーム「Battle Drones」を公開した。12回の大型バージョンと321件のコミットを経て、主にClaude Codeのエージェントが書き上げた。転機は一つのプロンプトで、Claudeは1000回を超える模擬対戦を行ってゲームバランスを調整した。2台のスマートフォン間で音を使ったマルチプレイにも対応する。
画像を読み込めませんでした。
Simon Willisonは10月20日、Command & Conquer風のブラウザ向けリアルタイムストラテジー「Battle Drones」を公開した。コードはほとんど読んでおらず、書いたのはコーディングエージェント、主にClaude Codeだ。本人によれば、これまでの実験と違い、このゲームは本当に遊んで楽しいという。
4か月で321コミット、作者がほとんど読んでいないゲーム
Willisonは7月、Claude Fable 5を使い、2つのドローン軍が陣地を奪い合うモバイル向けRTSという課題から始めた。最初のバージョンは本人いわく概念実証にすぎず、まったく面白くなかった。グラフィックは、Willisonが環境変数でAPIキーを渡したうえで、ClaudeがOpenAI Image Generation APIを使って生成した。プロジェクトはTypeScriptで書かれているが、作者自身はこの言語をほとんど使ったことがない。
現在のゲームは12回の大型バージョンと321件のコミットを重ねている。スマートフォンとデスクトップの両方で動き、建物9種、地上車両7種、航空機6種、歩兵3種を備える。これらの3Dモデルは、Claudeがthree.jsを使ってコードで直接作り上げたものだ。戦場の霧、5つのバイオームにまたがる6つのマップ、ランダムマップ生成、6種類の対戦AIの性格、そしてGoliathという巨大メカもある。音楽は音声ファイルを一切使わずコードで生成され、戦闘が始まると激しさを増す。
最も目を引くのは音によるマルチプレイだ。マイクの届く範囲にある2台のスマートフォンやノートPCが、昔のモデムのような電子音でゲームの状態を同期する。Willisonは、管理し続けなければならないサーバーを持たず、ゲームを静的HTMLのままにしておきたかった。本人の知る限り、これを実現したRTSはこれまでなかった。
曖昧な指示が通じたのは、エージェントに測れるものがあったからだ
転機はバージョン4だった。Willisonは夕食の席で、コーディングエージェントはゲームらしく見えるものは作れても、面白いものは作れないと話していた。その後、スマートフォンからClaude Opus 5.5にこう送った。「This game isn't fun enough yet. Make it a LOT more fun.」実行したのはUltracodeモードで、Claude Codeがスクリプトで多数のsubagentを同時に動かす。作業は夜から翌日の昼近くまで続いた。
その間にClaudeは1000回を超える模擬テストプレイを行い、その結果をもとにユニットのバランスを調整し、新しい仕組みを加えた。Claude自身が書いたrelease notesによると、AI同士の1200試合で、25分たっても決着しない試合の割合は14%から0.9%に下がった。スクラップで800以上の差をつけられていた側が勝つ割合は24%から46%に上がった。
ここに、エージェントに曖昧な目標を任せる人にとっての本当の教訓がある。「面白さ」という言葉だけでは何も伝わらないが、エージェントはそれを、膠着の減少と逆転の増加という測れるものに置き換えた。ゲームデザイナーは昔からこうした指標を使ってきた。新しいのは、エージェントが自分で指標を選び、自前のシミュレーションで確かめ、一晩でゲームを作り替えたことだ。測れる手がかりのない課題なら、同じプロンプトでも見た目の手直しで終わっていただろう。
失うもののない実験がつまずいたのは、コードのバグではなく頭痛だった
Willisonは、コードを読まずに済ませられた理由を自ら説明している。ゲームはおもちゃであり、最悪でもばかげた実験にバグが出るだけだ、と。その前提を崩したのはパートナーのNatalieだった。音によるマルチプレイで初めて一緒に遊んだとき、甲高い電子音のせいで彼女はひどい頭痛に見舞われた。何千回もの模擬対戦のどれも、これを見つけることはできなかった。Willisonは警告を追加し、Fly.io上のシンプルなWebSocketsリレーを使ったオンラインマルチプレイをClaudeに作らせた。費用は月2.19ドルを超えない見込みだという。
ほかの限界は目立ちにくい。Willisonによれば、Ultracodeは「明日がないかのように」トークンを消費する。リプレイとマルチプレイに必要な決定性は、ChromeとSafariでMath.sin()やMath.cos()の結果がわずかに異なる問題にぶつかり、Claudeは独自の関数に置き換える必要があった。さらにWillison自身、まともなインディー作品と呼ぶにはまだ手間をかけていなさすぎるとして、Steam Next Festに出すことは考えられないと書いている。誰かがコードに責任を持たなければならない業務ソフトウェアにとって、Battle Dronesは手順書というより能力の実演だ。
言語モデルのリーグ戦とサーバー不要のゲームが、このスタイルの行き先を示す
バージョン10ではagent battlesが加わった。2つの言語モデルが、戦場の霧の向こうで見える情報だけを返すツールを通じて対戦する。WillisonはすでにClaude Haiku 5.5とGPT-6 Lunaの対戦を記録しており、本格的なリーグ表にしたいと考えている。モデルは不確実な状況のなかでリアルタイムに計画を立てなければならないため、こうしたリーグは多くの静的なテストよりも興味深いエージェントの意思決定ベンチマークになりうる。
二つ目の注目点は、静的HTMLでの音によるマルチプレイを他のゲームが採り入れるかどうかだ。Willisonが見つけた先例はまだ少なく、Georgi Gerganovのライブラリggwaveなどにとどまる。三つ目は、Steamですでに起きている論争だ。プレイヤーはAIで作られたゲームを除外するフィルターを求めている。Willisonは、vibe codedゲームが真剣に受け止められる道筋が見えると言う。ただしそれを決めるのは、一つのプロンプトが求める以上のセンスと粘り強さを持った誰かだろう。
Lilithの判定
Claudeは1000回を超える模擬対戦をこなし、一晩でゲームを磨き上げた。どのシミュレーションも見つけられなかったバグを突き止めたのは、数ラウンドのモデム音で頭がずきずきしたNatalieだった。
外部リンクは最後に置いています。まずここで簡潔に解説 — 他人のサイトを探し回る必要はありません。
元の記事 ↗ ↗