Amazon Q CLIに弾幕STGを生成してもらう

# はじめに
現在開催されている「Amazon Q CLI でゲームを作ろう Tシャツキャンペーン」が2025/6/30まで延長されていたので試してみました。

# 最終的に出来たもの
弾幕シューティングゲームを生成してもらいました。
![image-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/3037ba04-83c9-445e-b053-0e76c6725e1c.png)


# 環境準備
環境準備の手順はAWSブログのほうでステップバイステップで紹介されているので、これに従えばOKでした。
https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

* 上記ガイドに従いQ Developerをインストールします。また、記載の通りPygameもインストールしました。

* `` q chat ``でチャットを起動します。

▼モデルはClaude Sonnet 4で起動された。```/model```コマンドで変更もできるそう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/a4c1dbeb-d6e5-4c56-a7e8-3149ca0c5da8.png)


# ゲーム作成
チャットモードに入り、あとは自然言語でゲーム作成を指示します。
```
ゲーム作成をお願いします。私はゲームの概要や方向性を指示するので、実装方法などはすべてお任せします。Pygameをインストール済みです。
```

▼応答
```
ゲーム作成のお手伝いをさせていただきます！Pygameがインストール済みということですね。

まず、どのようなゲームを作りたいかお聞かせください。例えば：

• **ジャンル**: アクション、パズル、シューティング、RPG、プラットフォーマーなど
• **テーマ**: 宇宙、ファンタジー、現代、レトロなど
• **難易度**: シンプルなもの、少し複雑なもの
• **特徴**: 特に重視したい要素（グラフィック、音楽、ゲームプレイなど）

ご指示いただいた概要や方向性に基づいて、適切な実装方法を選択し、完全に動作するゲームを作成いたします。どのようなゲームをお考
えでしょうか？
```

プロンプトの方向性も示してくれたため、以下の指示をしてみます。
自分でも明確なイメージを持っていないまま、フワッとした指示で丸投げしてみました。

```
ジャンル：シューティング　弾幕系といった、敵からの弾が多く、かつ比較的低速で放たれるため、それを回避することが主体となるものをイメージしています。
テーマ：ポップで明るいイメージ
難易度：シンプルなもの
特徴：グラフィックは出来るだけ現代っぽく、きれいな見た目にしたいです。
```

▼途中でファイル書き込みの許可を訊かれ、「t」で以後の作業を勝手に進めてくれます。
![image-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/abd706b4-2136-44fd-9e58-ec3edb309a52.png)


▼生成完了
![image-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/d41c8574-1861-4a27-8323-220d94a68165.png)


2分程度で生成が完了しました！
![Animation1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/a6666cee-8e64-4ef0-b1e7-cea860214b09.gif)


ジャンルやテーマなどを伝えただけで、様々なエフェクトやリトライ機能まで付けてくれて驚きです。



## 修正する
このままだと弾を避けるだけでシューティングゲームにはなっていないので、修正を依頼していきます。

```
・自機（プレイヤーが操作するオブジェクト）から弾を撃ち、敵を攻撃して撃破する機能を追加する
・zキーを押している間、自機から直線的に弾を撃ち続ける
・通常の移動速度は今のままで、Shiftキーを押している間は移動速度を遅くして精密な動作をできるようにする
```

追加修正も数分で完了し、修正内容を詳細に示してくれました。
![image-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/cd8bb4b5-ba40-48b2-9f52-fda42277238e.png)

![Animation2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/2e9e5638-b065-409a-a116-119336418cfa.gif)


攻撃も可能になり、無事にゲームの基礎が出来ています。

## さらに修正
ここまでで一旦見たいものは見れた感じがしますが、せっかくなので追加で以下を修正してもらいました。
```
・弾幕のパターンによっては自機の当たり判定より弾と弾の間隔が狭く、回避不可能なので、必ず自機より少し間隔を広くする
・敵の弾の見た目が単調なので、大きさや形にバリエーションを持たせる
・数体敵を倒した後にボスを出現させる
・ボスは体力が多く、ある程度ダメージを与えるたびに弾幕のパターンを変える
```

また数分程度で修正が完了し、様々な追加要素が加わりました。
![image-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/d9ba57e8-e540-4899-a030-231e211ddcbd.png)


今回は追加修正の影響で起動後にエラーが発生しましたが、これに対しても自動で数度の修正が走り、最終的にはエラーが解消しました。

![image-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/c723aec9-a2b9-462f-95f9-a4fcd3a8813d.png)


完成したゲームがこちらです。
![Final.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/cc3932a2-2f7f-42b6-a2ed-f9c89d2d0de9.gif)


▼ボス戦
![BOSS.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3926257/0a35bf13-fb02-4786-ba42-2f57791c6240.gif)


弾のバリエーションが自分の想像とちょっと違ったりしますが、これはプロンプトが悪いですね。
ボス戦についてもほぼ希望した通りのものが出来ており、手ごたえのあるものになっています。

よく見ると撃破後にHPが復活するバグが起きていますが、今回はここまでで満足なので完成としました。

# さいごに
Q CLI のインストール開始から最初のゲームが出力されるまでが非常にスムーズでした。
作業開始15分程度でとりあえず動くものが出来て楽しかったです。
これを無料で動かせるのも嬉しいですね。

それにしても、ゲームデザインしながら実装もするゲーム制作者は改めてすごいなと思わされました。いつも楽しませてもらい有難い限りです。