最近Amazon Q CLIでゲームを作成して、応募するとTシャツが貰える、キャンペーンが実施されています。ということで、これまでコード生成のAIは触ったことがなかったですが、記念品が貰えるならやるしかないということで、挑戦してみました。
先ほどのリンクひとつ目の通りに行うことで、問題ないと思います。他にもブログを上げられている方がたくさんいるので、探してもらえれば問題ないと思います。
作業方法については、自分自身あまりプロンプトのコツもわからなかったので、プロンプトをQ CLIに考えてもらい、もう一つのQ CLIにコードの生成を行ってもらうことにしました。コード生成用に対しては、プロンプト生成用のQ CLIから生成されたプロンプトしか入力していません。作成されたものを一回実行して、より良くなるようなプロンプトを作成してもらい、コードの改善をコード生成用に行ってもらう作業を何回か行い、ゲームを作成しました。
成果物は以下のようなものになります。一応難易度や機体選択などの選択肢もあるシューティングゲームが完成しました!描画の際のバグなどは少し残っていますが、上の作業方法でここまでのものが完成するのはなかなか凄いですね。
特にやっていて感じたことは、一回のコード生成の実行時間が長かったことです。二周目に以下のような文で、プロンプト生成を行ってもらいました。
現在/Users/???/pygame_shooter/ 以下にファイルが作られました。
さらに面白くなるようにプロンプトを考えて
すると生成した、プロンプトは以下のようになりました。
現在のPygameシューティングゲームをさらに発展させて、より面白く魅力的なゲームにしたいと思います。以下の機能や要素を追加してください:
1. パワーアップアイテムシステム
- ランダムに出現するパワーアップアイテム(複数種類)
- 例:3連射、レーザービーム、シールド、速度アップなど
- アイテム取得時に視覚的・聴覚的フィードバック
2. ボスバトルシステム
- 一定スコアに達すると出現するボス敵
- 通常の敵より大きく、HPを持ち、複雑な動きをする
- 特殊な攻撃パターン(弾幕、追尾弾など)
- ボス撃破で大量得点とステージクリア演出
3. ステージシステム
- 複数のステージ(背景や敵の種類/動きが変化)
- ステージごとに難易度が上昇
- ステージ開始/クリア時の演出
4. 敵の多様化
- 複数種類の敵(動きや攻撃パターンが異なる)
- 敵が弾を撃ってくる機能
- 敵の編隊移動パターン
5. ゲームシステムの改良
- ハイスコア保存機能
- 難易度選択(EASY/NORMAL/HARD)
- ポーズ機能
- タイトル画面とゲームオーバー画面の充実
- コンボシステム(連続撃破でボーナス点)
6. 視覚・聴覚効果の強化
- パーティクルエフェクト(爆発、エンジン噴射など)
- 画面シェイク効果
- BGMの実装(ステージごとに変化)
- より多様なサウンドエフェクト
7. プレイヤー機体のカスタマイズ
- 複数の機体から選択可能
- 各機体は特性が異なる(速度、攻撃力、耐久力など)
コードは引き続き読みやすく、十分なコメントを含めてください。また、新しい機能は段階的に実装できるよう、モジュール化されたコード構造にしていただけると助かります。
これらすべてを一度に実装する必要はなく、最も面白くなりそうな機能から優先的に実装してください。
かなり長いプロンプトになってしまって、これが原因でコード生成の時間が長くなってしまいました。プロンプトを生成する際にも、長くなりすぎないような文言を入れることで、回避できたのかなとは思います。
自分自身プログラミングもそこまで書ける方じゃないですが、簡単な命令だけでゲームを作ることができました。これからもプログラムを書く際や、特にIaCなどの部分を勉強する際に、コードを書いてもらって勉強したいなと思います。
まだ、20日まではキャンペーンもやっているので、興味のある方はぜひ試してみてください!
Views: 0