0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Q Developerが自走しないのはどう考えてもお前らの指示が悪い

Last updated at Posted at 2025-06-16

※この記事の 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に「何をしてほしいか」ではなく「どういう状況で、何を目指し、どう判断すべきか」を明確に伝えることにしました:

  1. PRD(Product Requirements Document)の作成

    • ゲームのビジョンと目標を明文化
    • ターゲットユーザーと価値提案を整理
    • 必須機能と優先度を定義
  2. アーキテクチャ設計の事前検討

    • システム全体の構成を設計
    • モジュール分割と責任範囲を明確化
    • 技術スタックの選定理由を整理
  3. 段階的な開発計画(ロードマップ)の策定

    • 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が技術的な支援だけでなく、法務的な観点からもサポートしてくれる例ですね。個人開発者にとって、こうした多角的な視点でのアドバイスは非常に価値があります。

開発だけでなく、記事執筆においても活用できることが分かりました。


プロジェクト情報

開発環境

  • macOS
  • Python 3.10+
  • Amazon Q Developer CLI

#AmazonQ #ゲーム開発 #Python #リズムゲーム #AI開発支援

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?