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 CLI + pygame でゲーム制作【実装&プレイ編/後編】

Posted at

はじめに

この記事は、前回公開した
「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)の実装を目指します。
具体的なグラフィックやサウンドのアセット、うさぎの機嫌度や移動速度などの詳細な数値設定は、開発を進めながら調整します。

完成したゲーム(初期バージョン)

最初に出来上がった初期バージョンのゲームがこちらです。

image-1.png

……ご覧のとおり、文字は文字化けし、登場キャラクターも「人」や「うさぎ」には見えない謎の存在になってしまいました。
ゲームとしての基本的な構造はできているものの、視覚的にもプレイ感としてもまだまだ改善が必要です。

文字化けの修正をはじめ、改善点をいくつかあげ、修正などを行ってもらいました!

最終完成版

ソースコードは以下のリポジトリにアップしています。

まとめ

以上、Amazon Q CLI を使ってゲームを作ってみました!

無料枠でも思った以上にちゃんと遊べるものができて驚きました。最初の出力はちょっとアレでしたが、こちらの指示次第でかなり修正・改善できます。

とはいえ、察し力にはそこまで期待できないので、「なんとなくこうしてほしい」みたいなふんわりした指示ではうまくいきません。要件をちゃんと書いて伝えることが大事だと感じました!

要件定義書は、人が開発するのでも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?