Amazon Q CLI を使って、MacOSでオリジナルゲームを作成してみました

## はじめに
今回、以下のキャンペーンが開催されていて、Tシャツ欲しさにゲーム作成をしました。

https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

ゲーム開発は全くの初心者なので、色々試行錯誤しながら作成していきましたが、環境準備からトータル２、３時間くらいでゲームを完成させることができました。

## 環境準備
今回、Amazon Q CLIを動作させる環境は、MacOSだったので、以下サイトを参考にして、インストールを行いました。

https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/command-line-installing.html

最終的にはWebベースのゲームで作成しましたが、最初のお試しゲームの作成にはPygameを使用しました。MacOSにPygameをインストールする方法は以下を参考にしました。

https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/command-line-installing.html


## Amazon Q の実行、お試しゲームの作成

ターミナルでAmazon Qを実行すると、以下のような表示で、チャット形式でAIと対話できるようになります。
モデルは「/model」で変更できるようです。
デフォルトは「claude-3.7-sonnet」のようであるため、「claude-4-sonnet」に変更しました。￼

 ![スクリーンショット 2025-06-18 21.15.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/2814f55c-c9bd-41ab-80b7-b4b85cc992ea.png)

まずは、お試しで「Webブラウザ上で動作する射的ゲームを作ってください」と依頼しました。
すると、1分ほど待った後、450ラインのHTMLコードを生成してくれました。
親切に、ゲームの特徴と操作方法、ゲーム起動のコマンドまで教えてくれます！

![スクリーンショット 2025-06-18 21.30.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/15cdd605-e5b1-40be-a63d-4bb61ed496ee.png)

実際に動いたゲームはこちらです。
結構曖昧な言葉で依頼をしましたが、Amazon Qさんが細かいところを想像して作成してくれたようです。

![スクリーンショット 2025-06-18 21.28.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/ae28ca41-baf5-4e7c-b638-087eea33a707.png)
￼
ただ、私が想像していたイメージ（屋台の射的）とは異なっていたので、修正してもらうよう依頼します。
以下の文章で依頼しました。

```
屋台の射的のように、３段の棚に景品が置かれているようなイメージで作成してください。
それらを、ライフルで打って、景品が落ちたら獲得です。
景品の大きさはバラバラで、大きい景品になるほど、1度で落ちないように、難しくしてください。
```

![スクリーンショット 2025-06-18 21.48.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/5207cfb7-0a56-463c-af92-c3ed8dbfe2c2.png)

結構イメージ通りに直してくれました。Amazon Qさん、すごいです！

## そして、本番ゲームの作成へ...
お試しで射撃ゲームを作ってみましたので、より具体的な本番ゲームを作成したいと思います。

### 依頼前の準備
ある程度ゲーム仕様を作成してからインプットした方が、応答ごとのできあがりの質が上がると思うので、ゲーム作成にあたりどのような情報が必要か、Amazon Qさんに聞いてみます。

![スクリーンショット 2025-06-18 22.00.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/71e34993-7f33-4d07-9abe-0bd317b3434a.png)

...なるほど、上記参考にしてどのようなゲームを作りたいかプロンプトを作成してみます。

### どのようなゲームを作りたいか
今回、作りたいゲームはRPGです。敵を倒すごとに、敵の能力をスキルとして使えるようになったら面白いな〜と思い、先ほどのテンプレートを参考にして、以下プロンプトを作成しました。
これをAmazon Qさんに依頼してみました。

```
・本番ゲーム
以下のようなゲームを作成してください
## 🎮 ゲーム企画・コンセプト
• ゲームジャンルはアクションRPGです。敵を倒すごとに、操作キャラクターが成長していきます
• 様々なステージを攻略していき、最後にボスを倒すことでクリアできるゲームです
•操作キャラクターは敵を倒すことで、敵の能力をスキルとして使用することができるようになります
• 難易度は中級レベルです。ステージを攻略するごとに、難易度が上がるようになります
•プレイ時間は開始から、クリアまで5分程度です


## 🎨 ビジュアル・UI要件
•ピクセルアート
•レトロゲーム風に
• 色調や雰囲気はファンタジー風
• 画面サイズは通常のWebアプリで見やすいサイズにしてください
•HUDを表示してください。 画面上にマップ、現在位置を示したマップ、キャラクターのHP・MPを見やすいように透過で表示してください
•キャラクター、敵一覧の絵文字をピクセルアートで表現してください

## ⚙️ 動作環境
・動作環境はブラウザ上で動くゲームにしてください

## 🎯 ゲーム機能・システム
•主人公、敵キャラクターには、体力（HP）、スキルを使用するためのスキルポイント（SP）があります
•体力が０になるとゲームオーバです
•主人公の初期HPは10、初期MPは50です
•wasdキーで主人公の移動ができます
•主人公の通常攻撃はパンチです。スペースキーで使用できます。近くの敵に当たります
•マウスの右クリックをすると、マウスカーソルの向きにビームを打つことができます
•Eキーを押すとメニューを表示します
•メニューでは、スキルの確認、ゲームのリスタートができます
•ステージは全て４つあります
•１から３までのステージにつれて、難易度が上がっていきます
•最後のステージはボスがいるステージです。
•ボスを倒すと、ゲームクリアです。
•初めに、ゲームをスタートする画面を作成してください

## 🎯 キャラクター、敵一覧
以下は味方キャラクターです。
•🦸：操作キャラクターです。主人公です

以下は敵キャラクターです。下に行くにつれて、強くなります。
•🐭：ねずみです。最弱の敵です。体当たりして攻撃してきます。倒しても特にスキルは入手しません
•🦎：トカゲです。火を吹いて攻撃してきます。火は短距離、広範囲のスキルです。倒すと、火のスキルを入手できます
•👻：ゴーストです。ゴーストの攻撃は壁を貫通します。倒すと、一定時間ビームが壁を貫通するスキルを入手できます
•🤠：カウボーイです。カウボーイの攻撃は、壁で跳ね返ります。５回跳ね返ると攻撃は消滅します。倒すと、ビームが一定時間壁を跳ね返るスキルを入手します
•🐲：ドラゴンです。ボスです。上記の敵の能力に加え、広範囲攻撃、触れると身動きが一定時間取れなくなる攻撃、画面が一定時間真っ暗になる攻撃をしてきます。

## 📁 ファイル構成・管理
• 保守がしやすいように複数ファイルの構成にしてください。
• クラス設計、モジュール化をしてください。

## 🔧 開発・デバッグ要件
• 後から機能追加しやすい設計にしてください
```

### 修正、修正、修正、、、

出来上がりのゲームは以下のようになりました。
敵キャラは２種類しかまだ出ていませんが、しっかり、トカゲ🦎の広範囲攻撃も再現できています。


・スタート画面
![スクリーンショット 2025-06-19 21.20.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/30076146-d90c-440c-9cc8-cec60ada1569.png)

・ステージ１
![スクリーンショット 2025-06-19 21.22.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/ffccaf6d-07dd-4dbe-8302-42527d55e86a.png)

・インベントリ画面
![スクリーンショット 2025-06-19 21.23.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/25c1c7be-ddeb-4b51-97ac-6235b07aeafb.png)


ただ、パンチ攻撃のエフェクトがなかったり、獲得したスキルが使用できなかったり、ステージ２に進むと敵がいないというような不具合がありました。
以下プロンプトで修正を依頼してみます。

```
以下の対応、修正をしてください。
・パンチ攻撃の範囲が狭いので、もう少し広げてください。また、パンチ攻撃の際にエフェクトを追加して、視覚的にパンチ攻撃をしていることを認知できるようにしてください。
・獲得したスキルが使用できません。また、獲得したスキル一覧と対応するボタンを画面外に表示してください。対応するボタンは、1,2,3,4です。
・ステージ２に進むと、敵が表示されなくなります。
・画面外に今どこのステージにいるか表示してください。
```

以下のように修正してくれました。実際の動きを確認してみます。
![スクリーンショット 2025-06-19 21.42.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/7be3b051-97a2-470d-9eb2-172de8134978.png)

修正後はこのようになりました！
なかなかいい感じにできています。

https://x.com/hurry_up_lee/status/1935688043765395658?s=12



パンチは範囲攻撃だったんですねw これはこれで悪くないです。
ただ、スキルが次のステージに進むと消えてしまったり、ステージ３に進むと壁に挟まれて主人公が動けなくなったりしました。
そのほか、細かい気になるところもありましたので、諸々修正してもらいました。
修正の合計回数は、正確に記録していませんが、10回くらいでしょうか。
（こちらの工程は省略させていただきます😪）

### 完成版

最終的に完成したのがこちらです！

https://x.com/hurry_up_lee/status/1936070492655648876?s=46


## まとめ、感想
プログラミング言語を一切使わず、自然言語だけでここまでのクオリティのゲームが作れるなんて、正直驚きました。
必要なパッケージのインストール方法や、ゲームの起動方法まで教えてくれるので、本当にゲーム開発の知識がない人でも、ある程度（友達に自慢できるくらい）のゲームが作れると思います。

最後にAmazon Qさんへ挨拶をしてみたところ、完璧な返事が帰ってきました。
好きな子とのチャットでこんな返事が返ってきたら、イチコロです。
やはり、AIはリップサービスが一流ですね。

![スクリーンショット 2025-06-20 1.04.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4117047/f6894dd4-c9fd-419b-8fa9-2270c39fccaa.png)



ここまで閲読していただき、ありがとうございました！！
...Tシャツのデザインがいまだに謎なので、どんなものが届くか楽しみにしています！