AIエージェントによるゲーム逆コンパイルプロジェクトの概要
2026年10月9日に公開されたブログ記事で、ある開発チームが人気の一人称視点シューティングゲームをAIエージェントを用いてC++で逆コンパイルする大規模な取り組みについて発表しました。このプロジェクトの目的は、単にゲームを動作させるだけでなく、コンパイル可能な C++ ソースコードとしてゲームを正確に再現することにありました。さらに、読みやすいコード、セキュリティおよびバグ修正、移植性の向上も目標として掲げられました。
このプロジェクトの最終的な目標は、自律型AIエージェントを数ヶ月にわたって効果的にオーケストレーションする方法を学ぶことでした。
当初は近代化や移植性も視野に入れていましたが、最終的にはオリジナルの動作を完全に再現することに注力したとのことです。これは、大規模なリバースエンジニアリング作業において、AIがどこまで自律的に貢献できるかを探る、非常に野心的な挑戦だと言えるでしょう。
プロジェクトの技術スタックと運用
このプロジェクトでは、複数のAIモデルとツールが組み合わせて使用されました。初期設定では Claude Max (20x) と Codex Pro を同時に利用し、主に Claude Sonnet 5 が使われましたが、Opus 5.5、Luna、Sol、Terra などのモデルも頻繁に利用されたそうです。AIエージェントは Claude Code CLI および Codex CLI で動作し、特にエージェントハーネスの選択は結果にほとんど影響しなかったと報告されています。
進捗管理には GitHub CLI が活用され、各翻訳単位(.cppファイル)ごとに GitHub Issue を発行し、ラベルで優先順位付けを行いました。エージェント間のコミュニケーションは Discord を介して行われ、CIの失敗通知も Discord に投稿されることで、エージェントが問題に即座に対応できる体制が構築されていました。
| 項目 | 詳細 |
|---|---|
| AIモデル | Claude Max (20x), Codex Pro, Claude Sonnet 5 (メイン), Opus 5.5, Luna, Sol, Terra |
| エージェント実行 | Claude Code CLI, Codex CLI |
| 進捗管理 | GitHub CLI (Issue管理、ラベルによる優先順位付け) |
| コミュニケーション | Discord (エージェント間、人間-エージェント間、CI失敗通知) |
| 逆コンパイルツール | ida-mcp by Hex-Rays |
逆コンパイルツールとしては、Hex-Rays の ida-mcp がほぼ一貫して使用されました。このツールは非常に安定しており、ヘッドレスで動作するため、今回のプロジェクトに適していたと評価されています。
運用の課題と最適化
プロジェクトの開始1ヶ月目には、4つのエージェントが稼働していました。3体のワーカーエージェントが逆コンパイルとコミットを行い、1体のレビューアエージェントがコミットをレビューしてバグを特定する役割を担いました。この初期段階で、ゲームの約80%が逆コンパイルされ、ゲームの起動やメインメニューの表示、マップの読み込みが可能になるなど、目に見える進展があったと報告されています。
しかし、この期間中にいくつかの運用上の課題が浮上し、セットアップの最適化が図られました。特に重要な改善点として、トークン消費の削減が挙げられます。
エージェントがコンテキストを保持し続けることで、不要な情報が蓄積され、トークン消費が増大する問題がありました。これを解決するため、デフォルトの90%というコンテキストコンパクション閾値を 42% に引き下げたとのことです。
コンパクション閾値を早期に設定することで、エージェントがコンテキストから不要な「ジャンク」を削除し、効率的な処理を維持するのに役立ちました。
また、エージェントが時間の経過とともに集中力を失い、タスクを完了する前に次のタスクに移ったり、CIの失敗通知を受けてもアイドル状態になったりする問題も確認されました。このような問題は、人間の介入によるステアリングで部分的に回避できるものの、大規模な自律運用では課題となる可能性があります。
エンジニア目線で見ると:大規模コードベースにおけるAIの可能性と限界
今回のAIエージェントによるゲーム逆コンパイルプロジェクトは、大規模なコードベースを扱うAIの能力を示す非常に興味深い事例だと感じます。特に、複数のAIエージェントを連携させ、DiscordやGitHubといった既存の開発ツールと統合している点は、私の個人プロダクト開発にも応用できる可能性を秘めているのではないでしょうか。
GitHub Issueで進捗を管理し、CIの失敗をDiscordで通知する仕組みは、従来の人間主体の開発ワークフローと共通しており、AIエージェントが既存のDevOpsパイプラインにスムーズに組み込まれることを示唆しています。Pythonバインディングがあるツールであれば、Claude Codeに投げて既存のスクリプトに組み込むのも比較的容易だと考えます。
しかし、エージェントが集中力を失ったり、タスク完了前に次のタスクに移ったりする課題は、AIが自律性を高める上で避けて通れない問題でしょう。これは、LLMのコンテキストウィンドウの限界や、推論の安定性に関わる根本的な課題だと感じます。
トークン消費の最適化は、GCPの費用を日々気にしている私にとっても非常に共感できる取り組みで、無駄なリソース消費を抑える工夫はどんな開発プロジェクトでも重要です。大規模なAI活用には、AIの挙動監視とチューニング、そして人間による適切な介入が不可欠だと改めて認識させられます。