※この記事の 10% 程度は人間が書いています
はじめに
AWSの公式ブログで「Build games with Amazon Q CLI and score a T-shirt!」という記事を見つけて「Tシャツほしい」と思い立ち、Amazon Q Developerを使ったゲーム開発に挑戦してみました。
テーマはリズムゲームにしました。私は音ゲーが大好きで、特に任天堂のリズムゲームシリーズには長年親しんでおります。2026年に新作が出るのを楽しみにしていますが「それなら自分でリズムゲームを作ってしまおう!」としました。
今回作ったのは「Everyday Rhythm」という、スペースキー1つで楽しめるシンプルなリズムゲームです。「誰でも楽しめるシンプルさ」を目指しながら、Amazon Q Developerの力を借りて開発しました。
「Everyday Rhythm」- Python/pygame製リズムゲーム
コンセプト
「リズムは誰の中にもある」をテーマに、日常の何気ない行動をポップで楽しいリズムゲームに変える新感覚ミニゲーム。名作リズムゲームからインスピレーションを得つつ、「誰でも直感的に楽しめるシンプルさ」を独自に追求しました。
特徴
- 超シンプル操作: スペースキー1つだけで遊べる(直感的な操作性を重視)
- 自動ステージ生成: Amazon Q Developerが音楽と自然言語から自動でステージを作成
- 身近なテーマ: 日常の行動をゲーム化して親しみやすく
- 高精度判定: ±25ms以内のPerfect判定で本格的なリズムゲーム体験
技術スタック
- 言語: Python 3.10+
- ゲームエンジン: Pygame
- 音声処理: librosa, pydub
- AI機能: Amazon Q Developer API
- テスト: pytest(102テスト、カバレッジ78%)
【事実】Amazon Q Developerが使えないのは100%お前らの指示が悪い
失敗パターン
実は、最初の挑戦は失敗でした。先週、q chat
コマンドで対話的に開発を始めたのですが、AIをうまくコントロールできず、途中で行き詰まってしまいました。
- 「リズムゲームを作りたい」(ゴールが曖昧)
- 「音が出ない、どうすればいい?」(状況説明不足)
- 「もっと面白くして」(評価基準が不明)
- 「エラーが出た」(エラー内容を共有せず)
AIからの提案がぶれてしまい、方向性が定まらないまま挫折してしまいました。
「問題はAIの性能ではなく、私の指示の仕方だった」ということです。
成功パターン
AIに「何をしてほしいか」ではなく「どういう状況で、何を目指し、どう判断すべきか」を明確に伝えることにしました:
-
PRD(Product Requirements Document)の作成
- ゲームのビジョンと目標を明文化
- ターゲットユーザーと価値提案を整理
- 必須機能と優先度を定義
-
アーキテクチャ設計の事前検討
- システム全体の構成を設計
- モジュール分割と責任範囲を明確化
- 技術スタックの選定理由を整理
-
段階的な開発計画(ロードマップ)の策定
- Phase別の具体的なマイルストーン
- 各段階での成果物と評価基準
- リスク要因と対策の事前検討
これらは、拙作の AI エージェント用のテンプレートプロジェクトを利用しました。
別の AI エージェント向けの内容ではあるものの、Amazon Q に読み込ませ、アレンジを指示するだけで応用できました。しごできQ。
驚きの結果:
この準備をしてからAmazon Q Developerと開発を再開すると、まるで別のツールのように自走してくれるようになりました。
具体的な変化:
- 私:「Phase1のゲームループを実装して」
- AI:「承知しました。60FPSの安定したループと、イベント処理、描画の分離を実装します。また、後の音声同期のためにタイムスタンプも管理します」
- 結果:期待以上の品質で、次のPhaseまで考慮した実装が完成
特に印象的だったのは、買い物に出かけている間(約1時間)も、設定した方針に沿って:
- エラーハンドリングの追加
- テストケースの自動生成
- パフォーマンス最適化の実装
- ドキュメントの更新
これらを着実に進めてくれていたことです。
Amazon Q Developerは、TDD(テスト駆動開発)のアプローチも強力にサポートしてくれました。
私: 「RhythmEngineのテストケースを考えてください」
Amazon Q: 「以下のようなテストケースが重要です:
- 正確なタイミングでのPerfect判定
- 境界値でのGood/Miss判定
- コンボシステムの動作
- スコア計算の正確性」
結果として、102個のテストケースで78%のカバレッジを達成し、高品質なコードを維持できました。
【開発成果】1日で2,000行・テストカバレッジ78%の高品質コードベース
現在の状況:しっかりとした基盤が完成
現時点では、ゲームの「スケルトン」が完成した段階です。しかし、このスケルトンは非常にしっかりとした基盤になっています。
数値で見る基盤の品質
- 開発期間: 1日(集中開発)
- コード行数: 約2,000行
- テストケース: 102個
- テストカバレッジ: 78%
- パフォーマンス: 60FPS安定動作、音声レイテンシ15-30ms
完成した基盤機能
- ✅ 基本ゲームフレームワーク(安定した60FPSループ)
- ✅ 高精度音声システム(±10ms精度での同期)
- ✅ リズム判定エンジン(Perfect/Good/Miss判定)
- ✅ レスポンシブUI(滑らかなアニメーション)
- ✅ 包括的テストスイート(品質保証)
- 🔄 自動ステージ生成機能(開発中)
これから肉付けしていく部分
基盤ができたので、これからポップで気軽にできるミニゲーム集に育てていきます:
予定している機能:
- 多様なミニゲーム(日常をテーマにした様々なシチュエーション)
- Amazon Q Developerによる自動ステージ生成の完成
- ポップなビジュアルとサウンド
- 段階的な難易度設定
- コミュニティ機能(ステージ共有)
【今後の計画】自動ステージ生成機能でミニゲーム集に拡張予定
目指すビジョン
現在完成したスケルトンを基に、ポップで気軽にできるミニゲーム集に育てていく予定です。名作リズムゲームからインスピレーションを得つつ、独自の「日常リズム」というコンセプトで差別化を図ります。
Phase 5以降の開発計画
短期目標:
- Amazon Q Developer APIを使った完全自動ステージ生成の完成
- 最初のミニゲーム「通勤ラッシュリズム」の実装
- ポップなビジュアルデザインの導入
中期目標:
- 5-10種類のミニゲーム追加
- 「お料理リズム」(野菜を切るタイミング)
- 「お掃除リズム」(掃除機のリズム)
- 「散歩リズム」(歩くペースに合わせて)
- より多様な音楽形式のサポート
- 難易度選択システム
長期目標:
- コミュニティ機能(ステージ共有・ランキング)
- モバイル版の検討
- 「みんなで楽しめる」要素の追加
Amazon Q Developerとの継続的な協働
今後の開発でも、Amazon Q Developerとの協働を続けていきます:
- 新しいミニゲームのアイデア生成
- ゲームバランスの調整提案
- ユーザビリティの改善案
- パフォーマンス最適化
基盤がしっかりしているので、これからの肉付け作業が楽しみです!
【まとめ】お前らの指示が悪い問題を解決する3つのポイント
今回の開発体験を通じて、Amazon Q Developerの真の価値と、効果的な活用方法を理解できました。
効果的な活用のポイント
1. 前提条件を明確にする
- PRDを書く: 「何を作るか」を明文化する
- アーキテクチャを事前設計: 「どう作るか」の方針を決める
- ロードマップを作成: 「いつまでに何を」の計画を立てる
2. 指示の質を改善する
- ❌ 悪い例:「エラーが出た、どうすればいい?」
- ⭕ 良い例:「Python 3.10でpygameを使用中、
pygame.mixer.music.load()
で'FileNotFoundError'が発生。ファイルパス'assets/music.mp3'は存在確認済み。ワーキングディレクトリの問題か、pygame初期化の問題かを特定して解決策を提案してください」
3. よくある失敗パターンを避ける
- 一度に全てを求める → Phase別に分割する
- 曖昧な指示を出す → 具体的で測定可能な指示にする
- AIの提案を理解せずに使う → 内容を理解してから採用する
【おまけ】Amazon Q Developerに法務相談したら的確すぎた件
この記事を書く過程でも興味深い体験がありました。
最初の下書きでは、インスピレーション元のゲームについて「○○のような」「○○にオマージュした」といった表現を使っていました。
しかし、Amazon Q Developerに「任天堂の知的財産権に関する法的リスクはどうでしょうか?」と相談したところ、以下のような的確なアドバイスをもらいました:
Amazon Q Developerからの提案:
- 商標名の直接的な使用を避ける
- 「オマージュ」ではなく「インスピレーション」という表現を使用
- 独自性と差別化を明確に示す
- 批評・紹介の範囲内での言及に留める
この指摘を受けて、記事全体を見直し、より適切な表現に修正しました。
修正例:
- 修正前:「実在するタイトルのようなゲーム」
- 修正後:「名作リズムゲームからインスピレーションを得たゲーム」
これも、Amazon Q Developerが技術的な支援だけでなく、法務的な観点からもサポートしてくれる例ですね。個人開発者にとって、こうした多角的な視点でのアドバイスは非常に価値があります。
開発だけでなく、記事執筆においても活用できることが分かりました。
プロジェクト情報
- GitHub: https://github.com/daktu32/everyday-rhythm
- デモ動画: https://github.com/daktu32/claude-code-dev-starter-kit
開発環境
- macOS
- Python 3.10+
- Amazon Q Developer CLI
#AmazonQ #ゲーム開発 #Python #リズムゲーム #AI開発支援