速くしてもらったら、今度は速すぎた。3Dブロック崩しをAIと調整する

ゲームを作らせてみた

マインスイーパーは、ゲームの名前を伝えるだけで基本的な仕様が補われました。では、よく知られたゲームに、こちらで考えたルールを足したらどうなるか。

第2段階では、Codex上のAstraにUnityで3Dのブロック崩しを作ってもらいました。Unityの導入とWindows用ビルドの準備は、前の実験で済んでいます。今回はルールの解釈と、遊んだ後の調整を見ます。

結論を先に言うと、独自ルールは実装されました。ただ、最初から気持ちよく遊べるバランスだったわけではありません。加速が物足りないと伝えたら、次は速すぎました。この往復が、今回いちばん面白いところでした。

※Astraは、ChatGPTを提供するOpenAIのAIモデル「GPT-6 Astra」です。今回は、ファイルの作成やテストをAIに任せる開発ツール「Codex」で使っています。AstraとCodexとは。

制作・動作確認はWindowsのPCで行っています。筆者の使用環境と、macOS・Linuxなどで手順を読み替える際の案内は、準備編をご覧ください。

ブロック崩し全体

改善後のブロック崩しです。画面下には、条件達成後のパドル反射でボールが増えるルールや、消音操作の説明も表示されています。

指示文の相談も、AIと行った

題材と追加ルールは、開発を依頼する前に外部チャットで相談しました。既知ゲームに独自ルールを加える実験として、ブロック崩しと短い指示案が提案されました。

その案は2Dでしたが、実際に開発側へ渡した指示は3Dにしました。以下が会話記録に残る依頼です。

Unityで3Dのブロック崩しを作って。
ブロックを壊すたびにボールが少し速くなる。
5個連続で壊すとボールが2個に増える。
赤いブロックは2回当てないと壊れない。
ボールを全部落としたらゲームオーバー。

この指示文も、外部チャットで整理した案をもとにしています。相談と実装の使い分けは準備編にまとめています。

「5個連続」を、AIはどう解釈したか

指示には、あえて細かく決めていないところがあります。ボールの初速や加速量、ブロックの配置、スコア、画面構成などは指定していません。

「5個連続」の意味もそうです。何をしたら連続が途切れるのかは書きませんでした。

AIはこれを「パドルに戻るまでに5個破壊」と解釈しました。既知ゲームのルールを呼び出すだけでなく、曖昧な言葉を具体的な判定条件にしてきたわけです。

初回の報告では4つのルールを実装し、自動テスト11項目、画面表示、発射、再スタートを確認したとされています。今回はゲームを起動した状態で渡されました。

外部チャットでの私の反応も、「今度は起動までしやがった」でした。前回は環境の準備から質問して進めましたが、今回は遊んで評価するところから入れました。

先にマインスイーパーを1本作り、開発環境が整っていたことが大きかったのかもしれません。その準備が、今回は最初から起動できたことにつながった可能性があります。

遊ぶと、加速している感じが薄い

最初のプレイ後、主に2つを変えたくなりました。

一つはマルチボールの条件です。コンボの記録は残しつつ、ボールが増える条件は連続破壊ではなく、累計5個の破壊ごとにしたい。もう一つは速度です。ブロックを壊しても、速くなっている感じが薄かったです。

そこで、累計5個破壊するごとに1球なら2球に増やすこと、破壊ごとの加速をもう少し分かりやすくすること、マルチボールになったときは追加で加速することを頼みました。

マルチボールは単純なボーナスにはしたくありませんでした。球が増えて有利になる代わりに、速くなって操作も忙しくなります。そういう方向にしたいと考えていました。

この段階でも、私が「加速値を0.55にして」と指定したわけではありません。「もう少し分かる程度に速く」というプレイ感を伝え、具体的な数値はAIが決めました。

ブロック崩しでボールが2球に増えた画面

改善後のゲームでボールが2球になった場面です。BALLS 2/2とMULTIBALLの表示が確認できます。

速くなった。でも、今度は速すぎる

改善版では、ブロック破壊時の加速が0.18から0.55へ、マルチボール時には追加で1.5の加速、速度上限は28という報告でした。

次に遊ぶと、加速しているのは分かります。しかし、急に難しくなりすぎました。

速くなったことは分かるようになったが、今度は速すぎて急に難易度が上がりすぎる。速度上昇は実感できる程度を維持しつつ、もう少し緩やかに調整して。

それに加えて、ボールが増えるタイミングも変えました。ブロックを壊した瞬間ではなく、条件達成後にパドルで打ち返すときに増やすよう依頼しました。

Codexへの速度調整の依頼と、加速値を変更した実装報告

Codexへの改善依頼と実装報告です。加速を強めた後に緩め、増球のタイミングを変更し、その後に効果音も追加しています。

会話上の変更値を並べると、こうなります。

項目 加速を強めた版 次の調整版
破壊時の加速 +0.55 +0.32
マルチボール時の加速 +1.5 +0.6
速度上限 28 22
2球になるタイミング 累計5個破壊時 累計5個破壊で予約し、次のパドル反射時

数値はAIの変更報告に基づくゲーム内の値で、一般的な推奨値ではありません。また、調整版をビルドしたという報告と、その値で最終的に最良のバランスになったかは別です。

今回分かったのは、AIが自然言語のレビューを具体的な変更へ落とせることです。そして、こちらが「速く」と言ったとき、その一回で好みのところへ収まるとは限らないことです。

変更履歴も、自然言語で頼んだ

加速を強めた版ができた後で、変更前へ戻せるようにしておきたくなりました。

このプロジェクトは、変更するたびに以前の状態へ戻せるよう、ローカルで変更履歴を管理してください。私が特に指示しなくても、まとまった変更が完了するたびに履歴を保存してください。

この依頼に対し、AIはローカルのGitで履歴管理を始め、今後の方針をプロジェクト内へ記録したと報告しました。

ここにも境界があります。保存された履歴は、この依頼をした時点の改善版から始まります。最初に作った状態まで自動的にさかのぼって保存されたわけではありません。

ゲームのルールを変えるだけでなく、開発の進め方も文章で依頼できます。ただし、どこから履歴が残るかは確認しておく必要がありました。

「音がなくて寂しい」から、効果音を追加する

最後に、効果音を頼みました。

効果音がなくて寂しい。パドルで打ち返したときやブロックを壊したときなど、ゲームに合う効果音を付けて。

ここでも、音の波形や周波数、具体的な音色は指定していません。

AIからは、ネオン調の見た目に合う電子効果音を追加したと報告されました。パドル反射、ブロック破壊、赤ブロックへの衝突、マルチボール、落下、クリアなどに音を付け、連続破壊で音程を上げ、Mキーで消音できるようにしたそうです。

「音を付けて」という注文から、場面ごとの音と消音操作まで補われました。今回の依頼は、コードだけを担当させるという範囲を越えています。

テストで通ることと、楽しく遊べること

会話に残る自動テストの報告は、初回11項目、加速を強めた版19項目、次の調整版29項目、効果音追加後58項目と増えています。これらはAIの報告値です。

一方、プレイした私が気になったのは、「加速している感じが薄い」「今度は難しくなりすぎる」という部分でした。判定が仕様どおり動くことはテストできても、その加速が自分にとってちょうどよいかは、実際に遊んで評価する必要があります。

だから、ここで人間に残った仕事は、具体的な加速値を最初から決めることだけではありませんでした。どんな変化が欲しいかを伝え、変わった結果を遊び、次の方向を決めることでした。

次は、完成された既知ゲームを出発点にするのをやめます。まずは敵も罠もないダンジョン探索だけを作り、そこから何を加えたくなるかを見ていきます。

前の記事:「マインスイーパーを作って。」の一文から、Windowsで遊べるまで

次の記事:敵も罠もない探索から「猫パンチとひみつの迷宮」へ

ゲーム制作の一覧へ

afさんのAIラボのトップへ

ソース一式と最新バイナリー

この記事で制作したWindows用ゲームの配布ZIPです。ZIPをすべて展開してから、フォルダ内の NeonBreak.exe を起動してください。

最新バイナリーの案内ページから、配布ZIPをダウンロードできます。

コメント

タイトルとURLをコピーしました