🐙

Amazon Q CLIでタイピングゲーム作り

に公開

はじめに

以下のイベントに参加してAmazon Q CLIを初めて使ったので共有です。
https://community.aws/content/2xIoduO0xhkhUApQpVUIqBFGmAc/build-games-with-amazon-q-cli-and-score-a-t-shirt

そもそも初期コードの段階からAIアシスタントで開発したのは初めてだったのですが、思ったより開発体験が良かったです。

Tシャツがもらえるらしいですが、ブログやパブリックなSNSに投稿する必要があります。

Amazon Q Developer CLIとは

Amazon Q Developer CLIは、コマンドラインから直接利用できるAIアシスタントです。コードの生成、デバッグ、リファクタリングなど、開発のあらゆる側面をサポートしてくれます。

プロジェクト概要:日本語タイピングゲーム

今回開発したのは、Pygameを使った日本語タイピングゲームで主な特徴は以下の通りです:

  • 5つのジャンル(日常、歴史、ビジネス、エンタメ、科学)から選択可能
  • 1000問以上の問題を収録
  • アニメーションとエフェクト
  • 柔軟なローマ字入力システム

完成したゲームがこちら

Amazon Q Developer CLIを活用した開発プロセス

1. 開発環境

Amazon Q Developer CLIの無料枠を使うためAWS Builder IDに登録します。

https://community.aws/builderid?trk=b085178b-f0cb-447b-b32d-bd0641720467&sc_channel=el

次にAmazon Q CLIをインストールします。

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

2. 初期コード生成

最初はものすごく単純なプロンプトから始めました。

$ q chat
> Pygameを使った日本語タイピングゲームを作りたいです。

これだけでも先ほどの完成形に近い物ができていました。あとはブラッシュアップしていくだけで、問題やジャンルの追加やオプション設定の追加などもプロンプトで指示を出すだけでできました。

3. コードのリファクタリングとモジュール化

プロジェクトが大きくなるにつれ、コードの管理が難しくなりました。

> Pythonコードを複数のモジュールに分割したいです。

結果として、以下のような構造に整理できました:

  • settings.py - 設定と定数
  • ui_elements.py - UIコンポーネント
  • romaji_converter.py - ローマ字変換ロジック
  • screens.py - 画面管理
  • game_logic.py - ゲームのコアロジック
  • typing_game.py - メインモジュール

4. バグ修正とデバッグ

開発中にオプション設定画面でバーが枠をはみ出すことがありましたが、Amazon Q CLIの助けで効率的に解決できました。ただ私の言葉の正確さに難があったのかこの部分は何回かやり取りする必要はありました。

> オプション画面で選択枠からBGM音量バーがはみ出してしまう。UIのレイアウトを修正して

5. データの検証と修正

今回テーマにしたゲームの特性上日本語を扱うことが多かったのですが、日本語の能力についてはAmazon Qは他のAIエージェントに比べてまだ苦手なような印象を受けました。ローマ字変換が間違っているものについては他のエージェントを使ったり少し自分で手直しすることがありました。

ex. jomonjidai → joumonnjidai

感想

ものすごく簡単に満足の行く成果物が得られました。IDEではないですがちょっとした開発は任せていいなという感触がありました。ターミナルの補完もしてくれるのも地味に嬉しかったです。

GitHub

https://github.com/yoku-2093/q-typing

Tシャツフォーム

https://pulse.aws/survey/ZO9G4AEL?p=0

Discussion