gemini_AI_game_tun_catch_lets_play!

Geminiと横スクロールゲーム開発

第1弾では、24時間で「落ち物ゲーム」のプロトタイプ開発に挑戦しました。本記事ではその続編として、Googleの生成AI「Gemini」と共に、横スクロール形式のジャンプアクションゲーム『TuntuntunJump (TypeA2)』を開発した記録をご紹介します。

この記事の目次

開発コンセプトと目標

  • ジャンル:横スクロールジャンプアクション
  • 目標:プレイヤーがジャンプで障害物を避け、アイテムを取得しながらスコアを稼ぐゲーム
  • 開発時間:48時間(TypeA1より少し長め)
  • 役割分担:AIはコード生成、人間は仕様定義・テスト・デバッグ指示

最初のAIプロンプトと設計方針

今回もシンプルな指示からスタートしました。

TypeAをベースにしたシステムを利用してゲーム内容だけ変更。
横スクロール形式で動くジャンプゲームを作ってください。
プレイヤーはスペースキーでジャンプし、障害物を避けながらスコアを稼ぎます。
加点アイテムと減点アイテムも用意してください。

Geminiとの開発プロセス

1. 基本挙動の実装

プレイヤーキャラクターが横方向に自動スクロールする仕組みを実装。ジャンプはスペースキーで制御。

2. 障害物とアイテムの追加

TypeA1で培った「ランダム生成の落下アイテム」の仕組みを応用し、地面に出現する障害物や浮遊アイテムを生成。

3. デバッグと調整

落下速度・ジャンプ高さ・当たり判定などをAIに修正依頼し、細かく調整。特に「当たり判定と画像サイズの違い」問題が何度も発生しAIに伝わらない問題が発生しました。

※私の勝手な解釈かもしれませんが、多分AIが簡単な指示を理解できなくなったり指示を無視する出力をしたり、コードを勝手に省略しだした時は文字数制限かその会話で保持できる許容量のようなものを越えてしまったサインなのかなと思います。そんな時は私なりにこれを抜ける方法を考案しました。

AIが言うことを聞かない時の対処法

  1. まず無理してその会話を続けずに気分転換も兼ねて一旦ブラウザを再起動。(たまにはPCも)
  2. Geminiを起動し直して新しく会話をスタートします。
  3. 現状の最新ソースコードを全てチャットに添付して「これはTypeA1のプロジェクト一式です。この会話のルールを伝えます。」と投げかけておきます。
・コードは省略しないで常に完全な状態で出力すること
・文字数が500を超える場合は2つにわけて出力する事
・1ファイルずつ出力すること

ついつい同じGeminiの会話チャットを無理して継続したくなるかもしれませんが、何度も修正依頼し同じようなやり取りを繰り返す事があるので無駄な時間を浪費しないように注意し試してみてください。

次の会話相手(新規で開始したチャット)でも意外と同じような指示が伝わりますが、前回のチャットほど内容を把握してない場合があるので出力の前に認識確認作業もいれると効率があがるでしょう。

完成したプロトタイプ「TuntuntunJump (TypeA2)」

主な機能

  • 自動横スクロール
  • スペースキーでジャンプ操作
  • ランダム生成される障害物・アイテム
  • スコア表示機能
  • (未実装:ステージクリア、BGM、ゲームオーバー画面)

実際にプレイ!

「TuntuntunJump (TypeA2)」はこちらから体験できます。(※この段階でバグだらけの状態です。デバッグモードもOFFにしています、最新版はTopページからプレイ可能です。)

開発を通じて得た知見

  • スクロール制御はAIに丸投げしにくい:小さな挙動の違いで遊び心地が大きく変わるので端末や縦画面横画面などの画面サイズに応じたスクロール速度調整等の微調整が必要だった。
  • 前作のコードが再利用可能:TypeA1の落下処理やUI関連とスコア保持ゲームオーバーの使用をそのまま利用できた。
  • AIの限界と人間の役割:判定の細かい調整は人間のテストプレイが必須。Geminiにエラー(特に文字数制限)が発生するたびにチャットを新たに開始し現状のプロジェクトを丸ごとアップロードして時には細かく説明し修正させる必要があった。

ゲーム制作作業効率の裏技

実はAIに限らずゲーム制作を爆速化させる裏技があります。コード内に共通の数値を仕込んでおいて手作業で数字を微調整する方法もありますが端末や画面サイズ毎に最適な数値を割り出すのは結構な労力です。

そこで解決法として最適なのがゲーム内に直接数値を調整するスライダーや入力欄を組み込んでしまうデバッグ機能です。(TypeA2では右上の🐞アイコンか0キーを押すとデバッグモードが有効になり一時停止ウインドウから調整可能です。)

そのデバッグウインドウの中に調整したい要素をAIにまとめて組み込んでもらい自身で最適な数値を確かめながらAIに伝えて初期値を決めていけばかなりの時短になります。このシステムはゲーム開発には必須レベルで優先して組み込んでみてください。

まとめ

Geminiとの第2弾では、横スクロールジャンプアクションという新しい挑戦を行いました。TypeA1よりも難易度の高い仕様でしたが、AIを相棒にすることで短期間で動作するプロトタイプを実現できました。

「次回作のTypeCではステージを自作できる機能搭載の投擲ゲームを予定」しています。

皆さんのご意見をお聞かせください

AIと一緒に作ってみたいゲームはありますか?ぜひコメントで教えてください。

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です