[Build Games] [Amazon Q Developer CLI] Amazon Q Developer CLIを利用して弾が増えるブロック崩しゲームを作ってみる

[Build Games] [Amazon Q Developer CLI] Amazon Q Developer CLIを利用して弾が増えるブロック崩しゲームを作ってみる

Clock Icon2025.06.17

はじめに

こんにちは。アノテーション株式会社のあのふじたです。
以下のキャンペーンをやってみようと思っていたら既に締切3日前でした。
https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/
ざっくりと pygame を使ってゲームを作ってみたいと思います。

関連ブログ
https://dev.classmethod.jp/articles/q-developer-cli-game-cbs/
https://dev.classmethod.jp/articles/amazon-q-cli-create-card-matching-game/

Amazon Q CLIのインストール(Windows)

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_

公式に記載のあるBlogに従い WSL上の Ubuntu にWSLをインストールします。
PowerShell を起動し

> wsl --install Ubuntu

ユーザ名とパスワードを入力し Ubuntu にログイン後、ホームディレクトリに移動します。

$ cd

OSのアップデートと unzip インストール

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install unzip

https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/command-line-installing.html
Ubuntu 用のインストール内容に従いインストールしていきます。

$ wget https://desktop-release.q.us-east-1.amazonaws.com/latest/amazon-q.deb
$ sudo apt-get install -f
$ sudo dpkg -i amazon-q.deb

Amazon q にログインします。
AWS Builder IDにサインアップする必要があります。

$ q login
? Select login method >
> Use for Free with Builder ID

今回は Free with Builder ID でログイン済なのでこれを選びます。

Pygame のインストール

https://www.pygame.org/wiki/GettingStarted

に従い、WSLではなくWindows上にインストールしておきます。

Q Chat 起動

$ q chat

    ⢠⣶⣶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣶⣦⡀⠀
 ⠀⠀⠀⣾⡿⢻⣿⡆⠀⠀⠀⢀⣄⡄⢀⣠⣤⣤⡀⢀⣠⣤⣤⡀⠀⠀⢀⣠⣤⣤⣤⣄⠀⠀⢀⣤⣤⣤⣤⣤⣤⡀⠀⠀⣀⣤⣤⣤⣀⠀⠀⠀⢠⣤⡀⣀⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠋⠀⠀⠀⠙⣿⣿⡆
 ⠀⠀⣼⣿⠇⠀⣿⣿⡄⠀⠀⢸⣿⣿⠛⠉⠻⣿⣿⠛⠉⠛⣿⣿⠀⠀⠘⠛⠉⠉⠻⣿⣧⠀⠈⠛⠛⠛⣻⣿⡿⠀⢀⣾⣿⠛⠉⠻⣿⣷⡀⠀⢸⣿⡟⠛⠉⢻⣿⣷⠀⠀⠀⠀⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀⢸⣿⣿
 ⠀⢰⣿⣿⣤⣤⣼⣿⣷⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⢀⣴⣶⣶⣶⣿⣿⠀⠀⠀⣠⣾⡿⠋⠀⠀⢸⣿⣿⠀⠀⠀⣿⣿⡇⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⢹⣿⣇⠀⠀⠀⠀⠀⢸⣿⡿
 ⢀⣿⣿⠋⠉⠉⠉⢻⣿⣇⠀⢸⣿⣿⠀⠀⠀⣿⣿⠀⠀⠀⣿⣿⠀⠀⣿⣿⡀⠀⣠⣿⣿⠀⢀⣴⣿⣋⣀⣀⣀⡀⠘⣿⣿⣄⣀⣠⣿⣿⠃⠀⢸⣿⡇⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠈⢿⣿⣦⣀⣀⣀⣴⣿⡿⠃
 ⠚⠛⠋⠀⠀⠀⠀⠘⠛⠛⠀⠘⠛⠛⠀⠀⠀⠛⠛⠀⠀⠀⠛⠛⠀⠀⠙⠻⠿⠟⠋⠛⠛⠀⠘⠛⠛⠛⠛⠛⠛⠃⠀⠈⠛⠿⠿⠿⠛⠁⠀⠀⠘⠛⠃⠀⠀⠘⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠿⢿⣿⣿⣋⠀⠀
 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⢿⡧
╭─────────────────────────────── Did you know? ────────────────────────────────╮
│                                                                              │
│      Set a default model by running q settings chat.defaultModel MODEL.      │
│                          Run /model to learn more.                           │
│                                                                              │
╰──────────────────────────────────────────────────────────────────────────────╯
/help all commands  •  ctrl + j new lines  •  ctrl + s fuzzy search
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🤖 You are chatting with claude-3.7-sonnet

AIには claude-3.7-sonnet が使われているんですね

対話形式でゲームを作成

最初の指示として pygameで古典的なブロック崩しゲームを作成してください と指示しました

> pygameで古典的なブロック崩しゲームを作成してください
I'll help you create a classic block breaker game using Pygame. Let's start by checking if Pygame is installed and then
create the game files.
First, let's check if Pygame is installed:
🛠️  Using tool: execute_bash
 ⋮
 ● I will run the following shell command:
pip list | grep pygame
 ⋮
 以下略
 ⋮
 ⋮
 ● Completed in 0.12s
I've created a classic block breaker game using Pygame. The file is saved at /hoge/block/block_breaker.py.
## ゲームの特徴:
• パドルは左右の矢印キーで操作できます
• カラフルなブロックを破壊してスコアを獲得
• ボールがスクリーンの下に落ちるとライフが減少
• 3つのライフがあり、すべて失うとゲームオーバー
• すべてのブロックを破壊するとボーナススコアを獲得し、新しいレベルが始まります
## 操作方法:
• スペースキー: ゲーム開始/リスタート
• 左矢印キー: パドルを左に移動
• 右矢印キー: パドルを右に移動
## 実行方法:
Pygameがインストールされていない場合は、まず以下のコマンドでインストールしてください:
pip install pygame
その後、以下のコマンドでゲームを実行できます:
python block_breaker.py
ゲームを楽しんでください!何か質問や機能の追加があれば、お気軽にお聞きください。

Windows側で実行したところ問題なく動作しましたが、日本語が文字化けしたので修正をお願いしました。

> 日本語が文字化けするようです。修正お願いします
文字化けの問題を修正しましょう。Pygameでの日本語表示には、適切なフォントの設定が必要です。コードを修正します。
🛠️  Using tool: fs_read  (trusted)
 ⋮
 ⋮
 ● Completed in 0.8s
文字化けの問題を修正しました。日本語フォントの検出と使用が難しい環境では、英語のテキストを使用するのが最も確実な方法です。以下の変更を行いました:

1. ゲームのタイトルを「Block Breaker」に変更
2. テキスト表示を英語に変更(「スコア」→「Score」、「ライフ」→「Lives」など)
3. フォント検出ロジックを追加して、可能であれば日本語対応フォントを使用するようにしました

これで文字化けの問題は解決されるはずです。ゲームの機能はそのままで、テキスト表示だけを英語に変更しました。

ゲームの実行方法:
python block_breaker.py

もし日本語表示を絶対に使いたい場合は、以下のような方法があります:
1. 日本語対応フォントをダウンロードして、ゲームと同じディレクトリに配置
2. そのフォントを明示的に読み込む

例えば:
python
# 日本語フォントを明示的に指定する場合
font = pygame.font.Font('meiryo.ttc', 36)  # フォントファイルをダウンロードして配置する必要あり

現在の修正版でゲームをお楽しみください!

この後指示の詳細は省きますが、コードを書かず以下のような指示を追加してゲームを作成しました。

  • 何もない壁にボールが当たった場合は違う色のボールが発生するようにし、違う色のボールはパドルに当たるとHPが減るようにする
  • 水色のボールは一番上の壁に当たったときのみ発生するように修正し、水色のボールの最初の角度はランダムにする
  • オレンジや紫ボールも上の壁のみで発生するようにしてください。通常のボール以外は下の壁でも跳ね返るようにしてください
  • 敵のボールに当たった場合、ダメージを受けた演出として画面を一瞬赤くフラッシュするようにし、パドルの移動速度を10%早くする
  • ブロックやパドルにボールが当たったときは明るい効果音を、敵のボールにパドルが当たったときは痛いと感じるような効果音を追加する

これらの指示に基づいて、ブロック崩しゲームに様々な機能を追加・修正したゲームが以下になります。

block

まとめ

本記事では、全くコードを書かずにブロック崩しゲームを作成しました。
環境構築面がかなりネックな気がしますが、チャットで簡単にゲーム作成、修正、機能追加ができる体験は非常に気持ちいいですね。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.