🐋

Amazon Q CLI で素人がゲームを作ってみた記録

に公開

はじめに

話題のAIアシスタント 「Amazon Q」 を使って、ゲーム作成に挑戦してみることにしました。
決して以下のAWS Japan の記事の「Tシャツがもらえる」に釣られたわけではありません。本当に。
https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/
以下は英語記事です。
https://community.aws/content/2xIoduO0xhkhUApQpVUIqBFGmAc/build-games-with-amazon-q-cli-and-score-a-t-shirt

今回は、WSL (Windows Subsystem for Linux) の上で、PythonのライブラリPygameを使い、AIに質問しながら簡単な「2048を作るゲーム」の作成を目指します。

今回の相棒:Amazon Q CLI とは?

今回メインで使うのが Amazon Q CLI です。
一言でいうと、**「黒い画面(CLI)上で、自然言語(日本語)でAIに質問できるツール」**です。

今回は汎用的なプログラミングの質問に答えてくれる q chat という機能を使っていきます。

これを使えば、ブラウザで検索エンジンとにらめっこしなくても、ターミナルから一歩も動かずに開発が進められるのでは?と期待しています。

準備編:環境構築

まずは開発環境の準備です。今回はWSL (Ubuntu) を使っていきます。
WSL自体のインストール方法は以下を参照しました。
https://learn.microsoft.com/en-us/windows/wsl/setup/environment

1. AWS CLI のインストールと設定

Amazon Q を使うには、まずAWS CLIが必要です。以下のコマンドでインストールと初期設定を済ませます。

2. Amazon Q CLI のインストール

次に、本日の主役であるAmazon Qをインストールします。以下のコマンドを実行するだけです。
詳細は以下を

aws q install

インストール後、ターミナルを再起動するか、source ~/.bashrc などを実行して設定を反映させて、ログインします。

aws q login

ブラウザが起動して認証を求められるので、ポチポチ進めていけば完了です。

3. ゲームの考案

簡単なスライドパズルゲームを目標にします。
段階的に難しいゲームにしていくので、ベースは簡単なものにしてつくっていきます。

実践編:AIとペアプロでゲーム作り

ここからは、 q chat コマンドを使って、AIと対話しながらゲームを組み立てていきます。

1回目の入力と出力

入力

Markdownに入力内容をまとめて読み込ませようと思います。

dev_game_withQ.md
# Amazon Q Develper で作成するゲームメモ
## ゲーム概要
* 5×5のスライドパズルで、AWSマネージドサービスのアイコンをパネルにしたゲームです。
* webブラウザから起動できるゲームです。

## 作成要件
* 5×5のエリア上に、24枚のAWSマネージドサービスのアイコンパネルがランダムに配置されるところからスタートします。
* 中央3×3のエリアに、指定された並べ方でパネルを配置できたら勝利です。
* パネル移動は、空いている領域に隣接しているパネルだけが可能です。
* 24枚のパネル、3×3の並べ方は毎回ランダムに指定されます。

出力

1回目で生成されたゲーム画面が以下です。

おお~。思った以上にデザインが凝ったものが出てきました。
ただやはりアイコン画像が使用はされていませんね。
Amazon Qは以下のように理解したようです。

dev_game_withQ.mdの仕様に基づいたAWSスライドパズルゲームを作成しました!

ゲームの特徴:

🎯 ゲーム仕様(仕様書通り):
• 5×5のスライドパズル
• 24枚のAWSマネージドサービスアイコンパネル
• 中央3×3エリアに指定された配置で勝利
• 空いている領域に隣接するパネルのみ移動可能
• 毎回ランダムな24枚のパネルと3×3の目標配置

🎨 デザイン:
• AWSブランドカラー(オレンジ&ダークブルー)を使用
• 中央3×3エリアをオレンジ枠でハイライト
• 30種類のAWSサービス名を収録

⚡ ゲーム機能:
• 移動回数カウンター
• プレイ時間タイマー
• 勝利時の結果表示
• 新しいゲーム機能
• シャッフル機能

🔧 技術実装:
• レスポンシブデザイン
• スムーズなアニメーション
• クリック操作でパネル移動
• 勝利条件の自動判定

収録AWSサービス(30種類):
EC2, S3, RDS, Lambda, DynamoDB, CloudFront, Route53, VPC, IAM, CloudWatch, SNS, SQS, API Gateway, ELB, Auto Scaling, CloudFormation,
CodePipeline, CodeBuild, CodeDeploy, ECS, EKS, Fargate, Kinesis, Redshift, ElastiCache, SageMaker, Rekognition, Comprehend,
Translate, Polly

テストプレイでめちゃくちゃ時間がかかりました笑

「クリア画面を作ってください」、や
「新しいゲームボタンを配置してください」など
「入力として最初に提示しなかった仕様でも、ゲームの体として必要なもの」
認識して生成されるのは驚きました。

最終的な出力

出力

最終的な結果とした画面です。

アイコン画像指定がうまくいきませんでした。
このあたりは、正しいファイル指定を入れないといけませんね。
伸びしろがありそうです。

まとめ:コード生成の入口として、とてもよい

今回、Amazon Q CLIを相棒にゲーム開発に挑戦してみて、 「プログラミング初心者の学習パートナーになるなぁ」 と感じました。

良かった点 👍

  • 文脈を理解してくれる: 「さっきのコードに機能を追加して」という指示で通じるので、会話がスムーズ。

  • エラー解決が速い: エラーメッセージを投げるとすぐ解決策をくれるので、挫折しにくい。また、途中で発生するエラーは自動で対処

  • 集中力が途切れない: ブラウザを行き来する必要がなく、ターミナル内で完結するのが快適だった。

注意点 🤔

  • 正しくないコードも返す: AIも完璧ではないので、生成されたコードがそのままでは動かないこともある。最終的には自分でコードを読んで理解しようとする姿勢は必要。

  • あくまでアシスタント: AIは魔法の杖ではないことを認識する。最終的な意思決定や、コードを組み合わせて一つのアプリケーションにするのは自分自身の役目。

コーディング経験がほとんどない私でも、AIと対話しながら、半日ほどで簡単なゲームを完成させることができました。
「プログラミングに挑戦したいけど、何だか難しそう…」と感じている方は、ぜひAmazon QのようなAIアシスタントを相棒に、Vibe Codingで一歩を踏み出しましょう。

Discussion