【Python×AI】プログラミング未経験がAIに「全部乗せ」サバイバルゲームを作らせて.exe化してみた

こんにちは!いおんです。
このブログ「gemini-study-lab.com」では、生成AIを使った実践的なツール開発の記録をお届けしています。

今回は、ついにブラウザの枠を飛び出し、「PCで動く本格的な2Dサバイバルシューターゲーム(.exe形式)」をAIに一発で作らせてみた記録を公開します。

しかもただのシューティングではありません。私の好きなFPSゲームの要素(スライディング回避、散弾、ポータル移動など)を11個も全部乗せした、かなりカオスで爽快なゲームです!

なぜAIにゲームを作らせようと思ったのか?

これまでAIを使ってタイマーや計算機などの便利ツールを作ってきましたが、「もっと複雑なロジックが絡むものは作れるのか?」という好奇心が湧きました。

また、日頃プレイしているFPSゲームのエイム練習やウォーミングアップになるような、自分専用のミニゲームがデスクトップにあったら最高だなと思ったのがきっかけです。

実際にAI(Antigravity)に投げた「無茶振りプロンプト」

今回使用したのは、自律型AIエージェントの「Antigravity」です。
AIに対して、以下のようなかなり欲張りな指示(要件定義)を出しました。

【要件定義】
Pythonの pygame を使用して、デスクトップで動作する「2Dトップダウン・サバイバルシューター」を作成し、最終的に PyInstaller を使って単一の実行ファイル(.exe等)にビルドしてください。

【主な機能とゲームルール】

  1. プレイヤー操作: WASDキーで移動、マウスカーソルの方向に向けて左クリックで射撃を行います。
  2. 基本システム: 敵は画面外から出現しプレイヤーを追従。敵を倒してスコアを稼ぎ、HPが0になるとゲームオーバー。
  3. 【重要】全11種の特殊機能(パワーアップ&スキル)の実装:
    以下の機能をすべてゲーム内に組み込み、スコア到達による自動解放や、特定キーでの発動など、破綻しないようにゲームロジックへ統合してください。
    ① 連射速度アップ(アサルトライフル風のフルオート化)
    ② 散弾ショット(ショットガン風の複数弾同時発射)
    ③ 貫通弾(敵を貫通するスナイパー弾)
    ④ ダッシュ回避(Shiftキー等で無敵時間付きの高速スライディング移動)
    ⑤ シールド付与(HPとは別の追加アーマーゲージ)
    ⑥ 自動回復(時間経過で徐々にHP回復)
    ⑦ 緊急離脱ポータル(特定キーでワープ用のポータルを設置・移動)
    ⑧ 索敵レーダー(画面外にいる敵の接近方向を画面端にUI表示)
    ⑨ 範囲爆撃(特定キーでクールダウン付きの全画面・広範囲ダメージ)
    ⑩ 敵の移動速度低下(被弾した敵の動きが遅くなるデバフ効果)
    ⑪ リロード時間短縮(弾倉・リロードの概念を導入し、その速度を強化)
  4. 描画: 外部画像ファイルは一切使わず、pygame.drawを用いた図形(プレイヤーは青い円、敵は赤い四角、各種エフェクト等)のみで構成してください。

【開発プロセスとビルドへの指示】

GUIの自動テストはスキップし、直ちに pyinstaller --onefile --noconsole app.py を実行して dist フォルダ内に実行ファイルを生成してください。エラーが出た場合は自律的に修正・再試行してください。

上記の全機能を統合したゲームロジックを app.py に実装してください。

ターミナルで pip install pygame pyinstaller を実行してください。

ポイントは、「外部の画像ファイルを一切使わず、図形だけで描画させる」ことと、「完成したPythonコードを自律的に.exeファイルに変換(ビルド)させる」という2点です。

驚愕の開発プロセス:AIが勝手にビルドしていく

プロンプトを送信すると、AIはすぐにPythonコードを書き始めました。
11個もの複雑なスキル(自動回復、シールド、索敵レーダーなど)を矛盾なく一つのゲームループに組み込んでいく処理能力には脱帽です。

さらに、コードが完成するとAI自身がターミナルを操作し、PyInstaller というツールを使って、人間が読めない実行ファイル(.exe)への変換を自動で開始しました。

完成した「全部乗せ」シューターをプレイしてみた!

処理が完了し、生成された .exe ファイルをダブルクリックして起動した画面がこちらです!

【実装された主な機能】

  • WASD移動&マウスクリック射撃の王道操作
  • 敵を貫通するスナイパー弾&ショットガン風の散弾
  • Shiftキーでの無敵スライディング回避
  • 緊急離脱用のポータル設置

これだけの機能が破綻することなく、ヌルヌルと動いています。プログラミングの知識がなくても、的確な指示さえ出せばここまで本格的なソフトウェアを作れる時代になったことを肌で感じました。

まとめ:ツール開発からアプリ開発へ

今回のプロジェクトで、生成AIは「コードの断片を教えてくれる存在」から、「要件を伝えると、実行可能なアプリを納品してくれる専属エンジニア」へと進化していることを確信しました。

皆さんもぜひ、自分だけの専用ツールやゲームのアイデアをAIにぶつけてみてください!

コメント

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