土日に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 シャツをゲットしよう
作ったもの
作ったのは「API Shooter Game」- HTTPメソッド(GET/POST/PUT/DELETE)で敵を攻撃するシューティングゲームです。
cargo install api-shooter-game
api-shooter
Amazon Q CLI のインストール
今回OSは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メソッドで攻撃します。
▼プレイ動画
ゲームの流れ
- まずGET弾で敵をスキャンして弱点を調べる
- 弱点のHTTPメソッドで攻撃するとクリティカルヒット
- 敵からはHTTPエラーコード攻撃(400, 401, 500など)が飛んでくる
- 敵を倒すと新しい敵が出現
操作方法
- WASD: プレイヤー移動
- 1キー: GET弾(敵の弱点をスキャン)
- 2キー: POST弾(中ダメージ攻撃)
- 3キー: PUT弾(高ダメージ攻撃)
- 4キー: DELETE弾(必殺技、限定弾薬)
- ESC: ゲーム終了
ゲームのコツ
- GETでスキャン: 弱点となるHTTPメソッドを見つけます。弱点攻撃は2倍ダメージ
- DELETE弾の温存: 強敵やピンチの時まで取っておきます。必殺技的なもの
- 敵の弾を回避: 色で攻撃の強さを判断。暗い色になるほどダメージがでかいです
- 弾薬管理: 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