はじめに
この記事は、前回公開した
「Amazon Q CLI + pygame でゲーム制作【環境構築編/前編】」
の続編となる、「実装&プレイ編/後編」です。
まだ前編を読んでいない方は、先にこちらをご確認ください!
👉 前編はこちら
後編となる本記事では、いよいよ Amazon Q Developer CLI を活用して PyGame のゲーム実装を進めていきます。
作成するゲームに関して
今回作成するのは、うさぎを撫でる というテーマのゲームです。
現に私は、うさぎを飼っており「撫でさせてくれる日」と「警戒して逃げてしまう日」があります。
その体験をもとに、「うさぎに見つからないように近づき、タイミングを見計らって撫でる」というルールのゲームを考えました!
イメージとしてはだるまさんがころんだです。
プレイヤーはうさぎに近づき、見つからずに撫でることができれば成功となります。
この設定をもとに、Q CLI にゲームコードの生成を依頼していきます。
Q CLI にゲーム作成の指示を出す
Amazon Q CLI(Q Developer)に対してゲーム作成の指示を出す際には、なるべく詳細かつ明確な要件を提示することで、意図したコードを生成してもらいやすくなります。
今回は、そのために Markdown形式の要件定義書 を用意し、それを読んで開発するように、Q CLIに指示を出しました。
以下が実際に使用した要件定義書です。
要件定義書
# うさぎを撫でろ!
これから開発するゲームの概要を記載する。
ゲームのタイトルは「うさぎを撫でろ!」である。
## ゲーム概要
「うさぎを撫でろ!」は、PyGameで開発されるPC向けゲームです。プレイヤーはうさぎに気づかれないように近づき、撫でることを目指します。だるまさんがころんだの要素を取り入れつつ、うさぎの機嫌度に注意しながら、クリアを目指すゲームです。
## ターゲットプラットフォーム
PC(Windows/Mac/Linux)
開発環境:PyGame
## グラフィック・サウンド
グラフィック: PyGameで表現可能な範囲でのグラフィックを使用します。テイストについては今後の議論で決定します。
サウンド: PyGameで表現可能な範囲でのサウンド(BGM、効果音)を使用します。
## ゲームサイクル
タイトル画面:ゲーム開始、オプション、終了などの選択肢を表示。
ゲーム開始:メインゲームプレイ開始。
プレイ画面:プレイヤーがうさぎに近づく操作を行う。うさぎの挙動を監視し、機嫌度を管理。
クリア/ゲームオーバー:
クリア: うさぎを撫でることに成功した場合。
ゲームオーバー: うさぎに気づかれ、機嫌度が0になった場合。
結果表示:クリアまたはゲームオーバーの結果を表示。
タイトル画面に戻る:次のプレイのためにタイトル画面へ遷移。
## プレイヤー操作
入力デバイス: マウス
操作内容:
左クリック: うさぎへ向かって移動する操作。
右クリック: 移動を停止する操作。
うさぎが振り返っている間は、プレイヤーは左クリックでの移動を停止する必要があります。停止しない場合、うさぎの機嫌度が減少します。
## うさぎの挙動
発見条件:
視覚: うさぎの視界(視野角や範囲)にプレイヤーが入ると、プレイヤーを発見します。
聴覚: プレイヤーの移動操作に伴う音(例: 一定距離以上近づいた場合の足音など)をうさぎが感知すると、プレイヤーを発見します。
機嫌度: うさぎには「機嫌度」が設定されており、プレイヤーが発見されるたびに減少します。機嫌度が0になるとゲームオーバーとなります。
振り返り: うさぎはランダムまたは一定のパターンで振り返り、プレイヤーの動きを確認します。振り返っている間は、プレイヤーは停止しなければなりません。
## 勝利・敗北条件
勝利条件:
うさぎに一定の距離まで近づき、かつ特定の条件(例: うさぎが前を向いている状態)を満たした上で、所定の操作(例: マウス左クリック)を行うことで、うさぎを撫でることができたと判定し、ゲームクリアとなります。
敗北条件:
うさぎに発見され、機嫌度が0になった場合、ゲームオーバーとなります。
## ステージ構成・レベルデザイン
初期段階では、1つのシンプルなステージのみを実装します。
このステージで基本的なゲームメカニクスとプレイヤーの体験を検証します。
## その他
まずは最低限の機能(MVP: Minimum Viable Product)の実装を目指します。
具体的なグラフィックやサウンドのアセット、うさぎの機嫌度や移動速度などの詳細な数値設定は、開発を進めながら調整します。
完成したゲーム(初期バージョン)
最初に出来上がった初期バージョンのゲームがこちらです。
……ご覧のとおり、文字は文字化けし、登場キャラクターも「人」や「うさぎ」には見えない謎の存在になってしまいました。
ゲームとしての基本的な構造はできているものの、視覚的にもプレイ感としてもまだまだ改善が必要です。
文字化けの修正をはじめ、改善点をいくつかあげ、修正などを行ってもらいました!
最終完成版

ソースコードは以下のリポジトリにアップしています。
まとめ
以上、Amazon Q CLI を使ってゲームを作ってみました!
無料枠でも思った以上にちゃんと遊べるものができて驚きました。最初の出力はちょっとアレでしたが、こちらの指示次第でかなり修正・改善できます。
とはいえ、察し力にはそこまで期待できないので、「なんとなくこうしてほしい」みたいなふんわりした指示ではうまくいきません。要件をちゃんと書いて伝えることが大事だと感じました!
要件定義書は、人が開発するのでもAIでも大事さは変わらないな~と思いますね!
正直、普通のエンジニアより素直で手早いので、いろいろ考えさせられました。
これからはこういうツールをうまく活かせるスキルも求められそうですね。。。
以上、ありがとうございました!!!
参考