👾

土日にAmazon Q CLIでシューティングゲームを作ってみた

に公開

はじめに

先日、AWSから「Amazon Q CLI でゲームを作ろう Tシャツキャンペーン」が発表されました。
Tシャツがもらえるのと内容が面白そうだったので、Amazon Q CLIを使って簡単なゲーム開発に取り組んでみました。

イベント

  • キャンペーン:Amazon Q CLI でゲームを作ろう Tシャツキャンペーン

以下のステップがキャンペーンページに記載されてました。

1: Amazon Q CLI を使ってゲームを作ろう
2: あなたが何をどのように作ったかについてブログを書くか、あなたの体験についての動画を録画して、ソーシャルメディアに投稿しよう
3: Amazon Q ブランドの T シャツをゲットしよう

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

作ったもの

作ったのは「API Shooter Game」- HTTPメソッド(GET/POST/PUT/DELETE)で敵を攻撃するシューティングゲームです。

cargo install api-shooter-game
api-shooter

Amazon Q CLI のインストール

今回OSはwindows環境で作業するので、以下の記事を参考に環境を作っていきました。

https://community.aws/content/2v5PptEEYT2y0lRmZbFQtECA66M/the-essential-guide-to-installing-amazon-q-developer-cli-on-windows

ログインまで終わったらchatコマンドでチャットセッションを開始します。

q chat

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

ターミナルに "Amazon Q" の表示を確認できました。

開発環境

Step 2 : Amazon Q CLI をマシンにインストールしてください。Ricardo Sueiras による Linux と Windows へのインストール方法ガイドがあります。また、PyGame または他のゲームライブラリをラップトップにインストールしてください。
https://community.aws/content/2xIoduO0xhkhUApQpVUIqBFGmAc/build-games-with-amazon-q-cli-and-score-a-t-shirt

Pygameか他のゲームライブラリ を使えば良さそうでした。
言語のやフレームワークの指定は特に無さそうでしたので、キャッチアップ目的もありRustを使って開発していきました。

ゲームの遊び方

HTTPメソッドを武器として使うシューティングゲームです。
敵の弱点を見つけて適切なHTTPメソッドで攻撃します。

▼プレイ動画

https://youtu.be/9kHW7iWmwtI

ゲームの流れ

  1. まずGET弾で敵をスキャンして弱点を調べる
  2. 弱点のHTTPメソッドで攻撃するとクリティカルヒット
  3. 敵からはHTTPエラーコード攻撃(400, 401, 500など)が飛んでくる
  4. 敵を倒すと新しい敵が出現

操作方法

  • WASD: プレイヤー移動
  • 1キー: GET弾(敵の弱点をスキャン)
  • 2キー: POST弾(中ダメージ攻撃)
  • 3キー: PUT弾(高ダメージ攻撃)
  • 4キー: DELETE弾(必殺技、限定弾薬)
  • ESC: ゲーム終了

ゲームのコツ

  1. GETでスキャン: 弱点となるHTTPメソッドを見つけます。弱点攻撃は2倍ダメージ
  2. DELETE弾の温存: 強敵やピンチの時まで取っておきます。必殺技的なもの
  3. 敵の弾を回避: 色で攻撃の強さを判断。暗い色になるほどダメージがでかいです
  4. 弾薬管理: POST/PUT弾は有限なので計画的に使用
武器システム

GET弾(スキャン)

  • ダメージ: 0
  • 弾薬: 99発
  • 効果: 敵の弱点を表示
  • 用途: 戦闘前の偵察必須

POST弾(中攻撃)

  • ダメージ: 20(弱点時: 40)
  • 弾薬: 20発
  • 速度: 中速
  • 特徴: バランスの取れた攻撃

PUT弾(強攻撃)

  • ダメージ: 25(弱点時: 45)
  • 弾薬: 20発
  • 速度: 中速
  • 特徴: POSTより若干高威力

DELETE弾(必殺技)

  • ダメージ: 100
  • 弾薬: 3発のみ
  • 速度: 高速
  • 特徴: 必殺の一撃、使いどころが重要

敵の攻撃パターン

敵はHTTPエラーコードを使って攻撃してきます。

  • 400 Bad Request: 15ダメージ(黄色の弾)
  • 401 Unauthorized: 20ダメージ(赤色の弾)
  • 403 Forbidden: 25ダメージ(濃い赤の弾)
  • 429 Too Many Requests: 30ダメージ(紫色の弾)
  • 500 Internal Server Error: 35ダメージ(黒色の弾)

感想

そんなに時間をかけず、土日でプレイできるゲームを作れました。
生成AIはよく使用するのですが、まだ私はブラウザでの利用の方が多いです。
claudeやchatgptをブラウザで利用することが多いのですが、Amazon Q CLI はターミナルから直接対話できたため、VSCodeで作業しながら開発を進められて便利でした。
エラー文をコピペしてブラウザで開いてる生成AIとやりとりのような手間もなく、vscodeで操作が完結するのは開発体験としてよかったです。使ったことのあるClineも同じような感じで、やっぱりエディタと連携してる系のツールは楽だと思いました。

Discussion