Amazon Q CLIでゲームを作ってみたよ！

# はじめに
はじめまして、新卒エンジニアもどき(研修期間中)のIchiです。
今回はこのキャンペーンに乗じてAmazon Q CLIのみでゲームを作ってみました。~~(6/20まで)~~ 追記:好評により6/30まで延長されたようです
みんなもQでゲーム作ってTシャツをもらおう!

https://community.aws/content/2xIoduO0xhkhUApQpVUIqBFGmAc/build-games-with-amazon-q-cli-and-score-a-t-shirt

初投稿なので少々拙いですがよろしければ御覧ください。

## インストール
まずはQ CLIのインストールをしていきます。
こちらの記事がかなり参考になりました。

https://community.aws/content/2v5PptEEYT2y0lRmZbFQtECA66M/the-essential-guide-to-installing-amazon-q-developer-cli-on-windows?trk=e07eca93-fa2f-4351-b567-f293b83eb635&sc_channel=el

細かい方法はこちらで参照していただくとしてここではざっくりと解説します。

---

#### 0. WSLのインストール
```
wsl --install
```
すでにWSLをインストールされている場合は不要です。

#### 1. WSLでUbuntuを起動(コマンドプロンプト)
```
cmd
```
```
wsl -d Ubuntu
```
#### 2. 必要なパッケージをインストール
```
bash
```
```
cd
```
```
sudo apt install unzip
```
#### 3. Amazon Q Developer CLIをダウンロード・インストール
```
bash
```
```
curl --proto '=https' --tlsv1.2 -sSf https://desktop-release.codewhisperer.us-east-1.amazonaws.com/latest/q-x86_64-linux-musl.zip -o q.zip
```
```
unzip q.zip
```
```
cd q
```
```
chmod +x install.sh
```
```
./install.sh
```
```
bash
```

#### 4. ログイン
```
bash
```
```
q login
```
- 「Use for Free with Builder ID」を選択
- ブラウザでBuilder IDにログイン


これでインストールは完了です

#### 使用方法
```
cmd
wsl -d Ubuntu    # WSLに入る
q chat           # チャット開始
```
```

      ⢠⣶⣶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀        ⠀⢀⣤⣶⣿⣿⣿⣶⣦⡀⠀
 ⠀⠀ ⠀⣾⡿⢻⣿⡆⠀⠀ ⢀⣄⡄⢀⣠⣤⣤⡀⢀⣠⣤⣤⡀⠀⠀⢀⣠⣤⣤⣤⣄⠀⠀⢀⣤⣤⣤⣤⣤⣤⡀⠀⠀⣀⣤⣤⣤⣀⠀⠀⠀⢠⣤⡀⣀⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠋⠀⠀⠀⠙⣿⣿⡆
 ⠀ ⠀⣼⣿⠇⠀⣿⣿⡄⠀⢸⣿⣿⠛⠉⠻⣿⣿⠛⠉⠛⣿⣿⠀⠀⠘⠛⠉⠉⠻⣿⣧⠀⠈⠛⠛⠛⣻⣿⡿⠀⢀⣾⣿⠛⠉⠻⣿⣷⡀⠀⢸⣿⡟⠛⠉⢻⣿⣷⠀⠀⠀⠀⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀⢸⣿⣿
⠀ ⢰⣿⣿⣤⣤⣼⣿⣷⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⢀⣴⣶⣶⣶⣿⣿⠀ ⠀⠀⣠⣾⡿⠋⠀⠀⢸⣿⣿⠀⠀ ⠀⣿⣿⡇ ⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⢹⣿⣇⠀⠀⠀⠀⠀⢸⣿⡿
 ⢀⣿⣿⠋⠉⠉⠉⢻⣿⣇⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⣿⣿⡀⠀⣠⣿⣿⠀⢀⣴⣿⣋⣀⣀⣀⡀⠘⣿⣿⣄⣀⣠⣿⣿⠃⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠈⢿⣿⣦⣀⣀⣀⣴⣿⡿⠃
⠚⠛⠋⠀  ⠀⠀ ⠘⠛⠛⠀⠘⠛⠛⠀⠀⠀⠛⠛⠀⠀⠀⠛⠛⠀⠀⠙⠻⠿⠟⠋⠛⠛⠀⠘⠛⠛⠛⠛⠛⠛⠃⠀⠈⠛⠿⠿⠿⠛⠁⠀⠀⠘⠛⠃⠀⠀⠘⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠿⢿⣿⣿⣋⠀⠀
 ⠀              ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀     ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⢿⡧
  
╭─────────────────────────────── Did you know? ────────────────────────────────╮
│                                                                              │
│         Use /model to select the model to use for this conversation          │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

/help all commands  •  ctrl + j new lines  •  ctrl + s fuzzy search
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🤖 You are chatting with claude-3.7-sonnet
```

```q chat```を入力するとこんな感じの表示になります。
これで準備が整いました。

# どんなゲームを作るか

まずはどんなゲームを作るか決めないといくら高性能なAIでもゲームは作れません(多分)

そこで条件を考えました

- なるべく単純なゲーム
- Amazonに関連している

この2つから導き出されたのは
<br>
#### 「指定された物を運ぶゲーム」 です
<br>

Amazonの倉庫にはロボットがいるという話を聞いたのでそれをゲームにしたらいいのでは！？と

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/926bbc6a-6182-42ae-8bbc-5f530042bbcb.png)

出展: https://www.economist.com/science-and-technology/a-new-generation-of-smarter-and-faster-robots-are-taking-over-distribution-centres/21807595

<br>

# 作ってみよう

とりあえず上記のプロンプトのみで指定してみました


結果がこちら


![オブジェクトムーバー (Ubuntu) 2025_06_17 22_34_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/d24206a2-22b0-478f-b7a3-5ce93080e394.png)


  ...? 

<br>

よくわからないのでガチャガチャしてると

![オブジェクトムーバー (Ubuntu) 2025_06_17 22_34_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/03934fa1-70c8-405f-9702-e579b6a4f113.png)

ゲーム画面のようなものに入れました

![Videotogif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/b2c9f261-0701-4fa7-a854-36c999e6e4ca.gif)

どうやら青色が自機 
水色がオブジェクトを持って行く場所のようです

そして特に指定していないのに
方向キーで移動 
スペースキーでオブジェクトを掴んだり離したりできます
すごい(小並感)

---
###### とはいえこのままだとまともに遊べないのでQに直してもらいましょう

「文字化けしているので直してほしい」的なことを入力し、しばらく待つと...

![Object Mover (Ubuntu) 2025_06_17 22_46_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/d328b8ea-33e6-4cc1-939c-281fa72f8883.png)

![Object Mover (Ubuntu) 2025_06_17 22_46_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/47b3785f-93eb-42a7-8fce-a60bb1bd286f.png)

こんな感じになりました
シンプルですね

勝手にファイルを修正してくれる＆修正箇所を表示してくれるのでだいぶ楽です

これで完成でも良かったのですが流石に雑すぎたのでいい感じに修正してもらいましょう

---
### ちょっとしたコツ

Qに限った話ではないですが細かくプロンプトを指定するとより良い感じになります。
例えば、単に「APIを作って」と指示するよりも、「Node.jsでExpressを使用し、認証機能付きのREST APIを作成。エラーハンドリングとロギングも含めて、OpenAPI仕様書も生成してください」みたいな感じで事細かく指定することで、より実用的で完成度の高いコードが生成されます。ということで

今回は

- タイトル名の修正
- 自機の形の修正
- オブジェクトを指定の順番で運ばないとクリア不可
- 四角だけじゃ物足りないのでオブジェクトの形を変える

それとその他諸々を指定すると...

#### 最終的にはこんな感じになりました

![Amazon Warehouse Worker (Ubuntu) 2025_06_18 22_30_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/27a47a55-98cc-4cb7-a0ba-76d4e45fe7b3.png)


![Amazon Warehouse Worker (Ubuntu) 2025_06_18 22_30_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/d57b9aa7-a9a0-4176-87e4-11e60e337d0a.png)

![Amazon Warehouse Worker (Ubuntu) 2025_06_18 22_31_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/67802538-dde8-4f8c-9692-72b47c26f67f.png)


プレイ動画

![Videotogif (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4074513/be3c8519-354f-4f4c-a6f7-be269040dce0.gif)

いい感じですね
得点の計算方法とかは謎ですがプロンプトで指定した通りの機能が実装されています｡

まともに動けるようになりちゃんと遊べるのでこれで良しとしましょう(妥協)


# まとめ

今回はAmazon Q CLIのみで簡易的なゲームを作ってみました｡

生成AIを使った開発は初めてではないですが、ふわっとしたプロンプトでもこのくらいのゲームなら数分で作れてしまうということに驚きました。

しかもゲーム本体だけでなくREADMEも合わせて作ってくれるというホスピタリティの良さ
こんな感じで↓

```README.md(一部)
Pygameを使用した倉庫作業シミュレーションゲームです。指定されたエリアから指定されたアイテムを順番に集めて配送場所に運ぶゲームです。

## ゲーム概要

あなたはAmazon倉庫の作業員です。画面右上に表示される指示に従って、指定されたエリアから指定されたアイテムを見つけ、中央の配送場所まで運びましょう。アイテムは必ず指示された順番通りに運ばなければなりません。

## 必要なもの

- Python 3.6以上
- Pygame

## インストール方法

1. Pythonをインストール（https://www.python.org/downloads/）
2. Pygameをインストール

   ```



### Amazon Q 恐るべし。


https://github.com/Ichi108/Amazon-Warehouse-Worker


↑よろしければどうぞ