「こんな雰囲気のゲームを作りたい」という、言葉にならない「バイブス」をAIに伝えれば、アイデアが形になる。そんな目標を目指し「Vibe Game Coding Testbed (VGCT)」という実験的なプラットフォームを作ってみた。
ASCII文字が描く極めて限定的なテキスト空間で、AIコーディングエージェントと共に、ゲームのアイデアを具体的なプレイアブルなゲームへと実装する。その過程で味わった、AIゲーム開発の独特な「楽しさ」と「苦しさ」について書いてみたい。
VGCTを構想した背景には、LLMを用いたゲーム開発プロセスへの関心がある。今回は、テキストベースのゲームという強い制約を与えることで、LLMがその能力を発揮しやすくなるか、という点に着目してみた。ゲームの状態をテキストで表現できれば、LLMによる解釈、分析、さらにはコード生成までもがスムーズに行えるはず。VGCTはゲームのシミュレータを備え、指定された一連の入力パターンに基づき、一定期間シミュレートされたゲームの遷移、つまり複数の盤面が連続して変化していく様をテキストとして出力する。このゲーム遷移の記録そのものが、LLMにとって現在のゲームロジックがどのような振る舞いをするのかを把握するための直接的な入力情報となる。
この思想のもと、ゲームの核となるロジック部分、ブラウザで表示するための仕組み、そしてこの重要なフィードバック装置となるシミュレーション環境という、それぞれの役割を明確にした構造を採用した。これにより、LLMとの高速なイテレーションサイクルを回し、抽象的なバイブスやから具体的なゲームメカニクスへと効率的に落とし込むことを狙った。
実際にVGCT上でAIエージェントと対話しながらゲームを構築する体験はなかなか面白い。例えば、まず「オーソドックスなスネークゲームを作って」という初期の指示を提案する。AIエージェントは、その指示とプラットフォームの作法に基づいてコードを生成し、自らシミュレートする。そして、そのシミュレーション結果、ゲーム画面遷移の記録を見て、もし問題があればコードを修正し、再度シミュレーションを行う。このサイクルをAIが自律的に回し、ヘビが期待通りに動くようになる。
この間、私は次のルール「プレイヤーが自分の軌跡でエリアを囲むと、その中の敵が爆発して消えるようにしたい」という、より複雑なゲームルールを考えることに集中できる。AIが自律的に試行錯誤し、意図した動作が実現される過程は興味深い。この「人間が新たなゲームルールを提案→AIが実装・自己修正→人間が結果を確認し、さらに次の構想へ」という連携が、VGCTの目指す開発スタイルである。
しかし、このAIとの協調作業は、常に順風満帆というわけではない。AIエージェントは、時に驚くほど的確にこちらの指示を汲み取り、自律的に問題を解決してくれる一方で、些細なニュアンスの取り違えや、自律的な修正が積み重なることで、全体の設計思想を根底から覆しかねない状況を生み出すことも少なくない。
先の「囲んで爆発」の機能のような、比較的複雑なロジックの実装では、AIに任せきりにすると意図しない動作を繰り返すことがある。そういう時は、人間が具体的な実装方針を示唆したり、アルゴリズムの骨子を伝えたりといった実装補助を行うことになる。また、さらに深刻だったのは、ゲームに「タイトル画面」「デモ画面」といった新しい状態を追加するような、より大きな変更をAIに任せた時だ。一見それらしく機能するコードが生成されるが、その裏側では、ゲームの状態管理ロジックが複数のモジュールに分散したり、既存のロジックと重複したりといった問題が潜んでいることがあった。
AIが自律的にコードを修正・追加していく過程で、同じような処理があちこちに散在するDRY原則に反したコードが生まれていたり、特定の状況でしか発生しないような複雑なバグが埋め込まれていたりすることがある。表面的なシミュレーション結果だけでは気づきにくいこれらの問題が顕在化した時、その原因究明や、コードベース全体の健全性を保つためのリファクタリング指示を出すのも、人間の重要な役割となる。AIが生成したコードが、意図せずとも徐々に全体の調和を乱していく様を見るのは、手塩にかけて育ててきたはずのものが壊されていくような、独特の苦しさを伴う。この時、良かれと思って働いたAIの自律性が、結果として初期の「バイブス」やこちらの「指示」を歪め、ゲームを壊していくのだ。
この創造の「楽しさ」と、制御の「苦しさ」のシーソーゲームこそが、現在のVibe Coding、少なくともVGCTにおけるAIとのゲーム開発のリアルな姿だ。VGCTでは、AIとの協調を円滑に進めるための開発の進め方も模索しているが、結局のところ、人間が新たなゲームのバイブスや具体的な指示を的確に伝え、AIの自律的な開発プロセスを適切に監督し、時には軌道修正し、複雑な問題解決の指針を与える役割が不可欠となる。
AIが驚異的な速度でコードを生み出し、自己修正を繰り返したとしても、それがゲームの初期のバイブスを正確に体現し、かつ遊んで面白いものになっているか、そしてコードの品質が維持されているかを見極めるのは、人間の開発者自身である。この対話的プロセスは、従来のプログラミングとは異なる、より戦略的で監督的な思考と判断力を要求する。
結局、Vibe Codingは決して誰でも簡単にソフトウェアが作れる魔法の杖ではないということ、これをまた再確認することにはなった。Vibe Codingは、AIという強力だが時に気まぐれなパートナーの自律性を活かしつつ、人間がその方向性を定め、品質を管理することで、これまでにない速度と柔軟性でアイデアを具現化するための、新しい開発スタイルだ。そこには、AIの提案や自律的な修正結果をすぐ評価し、的確な指示を出し、時には泥臭く問題解決の糸口を見つけ出す、人間の洞察と経験が必要だ。このスタイルを身に着けることで、AI時代の開発者に求められる新たな役割とスキルセットを得ることができるのだろう。