AWSがおもしろそうなキャンペーンやってる。(Tシャツ欲し)
環境
windows 11 の wsl に amazon q cli をインストール
作ったもの
犬がロケットに乗って、障害物を避けながらゴールを目指すゲーム。(ドンキーコングリターンズのロケットバレルが好きなので、これをモチーフに)
どうやって作った?
vscodeのターミナルで作業開始
q chat
最初のプロンプト
最初はちょー雑に投げてみる。ちょっとずつ修正依頼を投げて、作り上げていく。
pygames を使って、マウスを動かして障害物をよけてゴールするゲームを作って。ゲームは左から右に移動。
修正依頼
作成されたものを確認しつつ、思い通りのものを作るために、修正依頼していく。かなり雑に投げても意図したものに近いアウトプットを出してくれる。
- ゴリラが樽型のロケットに乗って、障害物をよけるようにしたい。
- 移動は、マウスの動きではなく、マウスの左クリックの回数によって位置を移動させたい。
- なにもくりっくしなければ下に落下してゲームオーバーとしたい。
- ゲームスタートボタンを実装して。あと、文字が表示されないので、改善して。難しければ英語表記でも可。
- ロケットの向きが立て向きになっているので、横向きにして。クリックするだけロケットのガスが出る仕組みにしたいので、クリックすると、右斜め上向きに、クリックをやめると右斜め下向きに移動するイメージ。
- 色が茶色でかなり微妙です。犬は橙色にしましょう。ロケットはとがっている先端の部分を赤色に、胴体は白色で、丸い窓がついているとそれっぽく見える。ガスがでる部分は炎がでているようにして。
- 30秒くらいかけてクリアするゲームにして、ロケットに並走するように画面を移動させて、ロケットの位置は大体真ん中になるように。障害物は大小さまざまで難しめに。
(参考)修正依頼を投げると、amazon q は自分で直すべき箇所を特定してくれる。
drawメソッドの引数エラーを修正します。
Using tool: fs_write (trusted)
● Path: gorilla_rocket_game.py
- 170 : # かわいい犬の描画(ロケット上部)- オレンジ色
- 171 : dog_x = center_x
- 172 : dog_y = center_y - 15
+ 170: def draw(self, screen, camera_x=0):
+ 171: # カメラオフセットを考慮した描画位置
+ 172: center_x, center_y = int(self.x), int(self.y)
Updating: gorilla_rocket_game.py
● Completed in 0.0s
DogRocketクラスのdrawメソッドを正しく修正する必要があります。
Using tool: fs_read (trusted)
● Reading file: /home/xxx/Desktop/work/amazon_q_demo/gorilla_rocket_game.py, from line 100 to 120
● Completed in 0.2s
drawメソッドの定義を見つけて修正します。
Using tool: fs_read (trusted)
● Searching: /home/xxx/Desktop/work/amazon_q_demo/gorilla_rocket_game.py for pattern: def draw(self, screen
Found: 4 matches
● Completed in 0.1s
DogRocketクラスに重複したdrawメソッドがあります。正しく統合します。
ここまでで冒頭の成果物ができあがりました。かかった時間は1時間程度です。
完璧!30秒クリア目標のカメラ追従ゲームが完成しました!
## 改善された30秒クリアゲームの特徴
### 30秒クリア設計
• **ゴール距離**: 7200ピクセル(30秒 × 4速度 × 60FPS)
• **推定時間表示**: リアルタイムで残り時間を表示
• **適切な難易度**: 30秒で達成可能なバランス
### カメラ追従システム
• **ロケット中央固定**: ロケットが常に画面中央付近に表示
• **スムーズ追従**: カメラがロケットを滑らかに追従
• **ワールド座標**: 障害物とロケットがワールド座標で管理
• **パララックス効果**: 星が背景でゆっくり流れる
### 難しい障害物システム
• **4種類のサイズ**: small(20-35), medium(35-60), large(60-90), huge(90-120)
• **4種類の形状**: 小惑星、スパイク、ダイヤモンド、UFO
• **高密度配置**: 100-300ピクセル間隔でランダム配置
• **回転エフェクト**: 全ての障害物が回転
### 改善された操作感
• **マウス押し続け**: 左クリック押し続けで連続推進
• **物理演算**: リアルな重力と推進力
• **視覚フィードバック**: 推進力に応じた炎の変化
### 視覚的改善
• **オレンジ色の犬**: 明るく親しみやすい色
• **白いロケット**: 3つの丸い窓付き本格デザイン
• **4層炎エフェクト**: 赤→オレンジ→黄→白のグラデーション
• **150個の星**: 豊富な背景星でリッチな宇宙感
### ゲーム情報表示
• **スコア**: 障害物回避で10点ずつ獲得
• **進行度**: パーセンテージ表示
• **推定残り時間**: リアルタイム計算
• **操作ガイド**: 初期のみ表示
## ゲームバランス
1. 30秒でクリア可能: 適切な速度設定
2. 難易度調整: 大小様々な障害物で挑戦的
3. 視認性: カメラ追従で常に見やすい
4. 操作性: 直感的なクリック操作
これで、30秒程度でクリア可能な、カメラがロケットに追従する本格的な横スクロールアクションゲームが完成しました!難易度も適切で、視覚的にも美しいゲームになっています。
テスト実行もやってくれる。
> テスト実行して
修正版の犬ロケットゲームをテスト実行します!
Using tool: execute_bash (trusted)
● I will run the following shell command:
cd /home/xxx/Desktop/work/amazon_q_demo && python3 dog_rocket_fixed.py
Purpose: 30秒クリア目標の犬ロケットゲームを実行してテスト
所感
Amazon Q CLIを使えば、簡単なゲームであれば、雑なプロンプトでもあっという間にゲームを作って、遊ぶことができる。しかも、必要なライブラリもインストールしてくれる。
ちょっと触ってみて感じたポイントは、いきなり完成系を目指すよりは、何回か壁打ちして作り上げていくやり方がよさそう。今回の例であれば、修正依頼文がふわっとしていても完成イメージに近いものを作ってくれました。