Amazon Qで作るAIダンジョン探索型RPG ― 3日間ゲームを作ってみた

皆さんこんにちは!
ゲームを作るのもPythonもほとんど初心者ですが、AIの力を借りて挑戦してみました。
どうも、安藤です。

今年の6月、Amazon Web Services, Incが主催する『Amazon Q CLI でゲームを作ろう Tシャツキャンペーン』というイベントをきっかけに、Amazon Q CLIとChatGPTを使って、試しにダンジョン探索型RPGを作ってみました。
ルールとして「Amazon Qが生成したコードをそのまま使う(手動修正しない)」という制約があったので、どこまで動くものが作れるのかを実験する形です。

正直、私はゲームを作ったこともなく、ゲームプログラムの構造もよくわかっていません。
それでも、AIの力を借りればどこまでできるのか、興味本位で3日間やってみたところ、意外と動くゲームができてしまいました。

この記事では、そんな“素人の手探り体験”を通して、

  • Amazon Q CLIの導入でつまずいたところ
  • 実際にAIでゲームを作ってみて感じた難しさ
  • ChatGPTによるサポートでどう前に進めたか

を、できるだけわかりやすく紹介していきます。
あくまで試しながらの学びですが、同じようにAIを使ってみたい方の参考になれば嬉しいです。

 

DAY1:AI開発のための環境づくり ― Ubuntu・Python・Pygameの壁を越えて

Amazon Qを使ってコードを生成するには、まずPC上に動作環境を整える必要があります。
これが思った以上に大変で、最初は何度もつまずきました。
せっかくなので、どんな手順で構築したのかをここでまとめてみたいと思います。

 

(1)WSL2とUbuntuの導入

Amazon Q CLIを使うにはLinux環境が必要です。
Windows上でもLinuxを動かせるようにするため、まず WSL2(Windows Subsystem for Linux 2) を利用します。

PowerShellを開き、以下のコマンドを実行します。

wsl
このコマンドを初めて実行する場合、Windowsが自動的にWSL2を有効化し、既定のディストリビューションとして Ubuntu をインストールします。

インストール後、自動的にUbuntuが起動し、初回セットアップ(ユーザー名とパスワードの設定)が始まります。

一度Ubuntuを導入すれば、次回からは以下のようにして直接Ubuntuを起動できます。

wsl -d Ubuntu
ここで -d オプションは「どのディストリビューションを起動するか」を指定するもので、複数のLinux環境(例:DebianやKaliなど)を導入している場合でも、確実にUbuntuを選んで起動できます。

初回セットアップで作成したUbuntuユーザーは、Linux内でsudo apt installなど管理者権限の操作を行う際に使用します。
これで、Windows上にLinuxターミナル環境が整い、以降の作業をこのUbuntu上で進められるようになりました。

 

(2) Python環境と仮想環境(venv)の準備

Amazon Q CLI自体は独立したツールとして動作しますが、今回はゲームの実効環境にPythonを使うため、Python環境の準備をします。

Ubuntuを最新化した上で、Pythonと必要なパッケージをインストールしました。

sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv git -y

続いて、作業用ディレクトリを作成し、仮想環境を有効化します。

mkdir ~/game-dev && cd ~/game-dev
python3 -m venv venv
source venv/bin/activate

仮想環境を有効にしておくことで、システム全体に影響を与えずに開発できます。
再開時は、再度 source venv/bin/activate を実行するだけです。

(3) Pygameの導入

ゲーム開発にはPygameが必須なので、仮想環境の中でインストールします。

pip install pygame

最初の試行ではエラーが出たので、エラーメッセージを確認しながら、必要なライブラリを個別に追加していきます。

sudo apt install libsdl2-dev  # ベースのSDLライブラリ 
sudo apt install libsdl2-image-dev  # 画像処理用 
sudo apt install libsdl2-ttf-dev    # 文字描画用

Pygameが正しく動作するようになると、いよいよAmazon Qで生成されたコードを試す準備が整います。

 

(4) Amazon Q CLIの導入

Amazon Q CLIのインストールには AWS Builder ID が必要でした。
公式ページで登録を済ませ、案内に従ってインストールスクリプトを実行します。

当時はPowerShell上で以下を試しましたが、Windows環境ではエラーになりました。

curl -s "https://aws.amazon.com/q/dev/docs/install/cli/" | bash

「httpsドライブが存在しません」というメッセージが出たため、
Ubuntu環境に切り替えて以下を実行しました。

sudo apt install unzip
curl -k -o q.zip https://desktop-release.codewhisperer.us-east-1.amazonaws.com/latest/q-x86_64-linux-musl.zip
unzip q.zip
cd q
chmod +x install.sh
./install.sh

インストーラーを2回実行し、途中で「Builder IDでログイン」を選択。
この手順でCLIが正常に動作するようになりました。

 

(5) 初期起動と認証

最後に、次のコマンドでAmazon Q CLIにログインします。

q login

ログインが完了すると、ターミナル上でAmazon Qとのチャットが可能になりました。

記事だとすんなり進んだように見えるかもしれませんが、実際には試行錯誤を繰り返したため、環境構築だけで半日以上かかりました。ようやく「AIと会話しながらコードを生成する」というスタートラインに立てたのです!(長かった)

(画像はAmazon Q CLIの起動画面) 

 

(6) まずは“オセロ”で試してみる

せっかく環境が整ったので、簡単なサンプルとしてオセロを作ってみることにしました。
Amazon Qに以下の指示を送ります。

Pygameでオセロを作ってください。 

数分後、Pythonコードが生成されました。動かしてみると、石がパタパタと反転していく──まさに自動生成の威力を実感しました。

(画像はAmazon Q CLIが生成したオセロゲーム) 

 

DAY2:Amazon Qとのすれ違い──プロンプトの重要さを認識する

(7) RPGづくりを試してみるが

オセロが動いた勢いで、次はもう少し複雑なものを試してみました。

Amazon Qに以下の指示を送りました。

ドラクエのようなRPGを作って

果たしてどんなゲームができるのでしょうか?わくわく感を抑えきれず、ゲームをスタートします。
ところが、出てきたのは“超”簡素な2Dマップ。

イベントも町も人もいない、ただの草地に、主人公とスライムのようなモンスターがいるだけのさみしい光景でした。(下図を参照)

流石にAmazon Qに対する期待値が高すぎた様です。

しかし、挑戦はまだまだこれからです。むしろここからが本番です。

 

(8) 追加指示とバグの連鎖

「町に宿屋を」「武器屋を」「山や川も」と少しずつ条件を追加していくと、確かに見た目は少しだけそれらしくなりましたが、別の問題が次々に発生。マップの一部が崩れたり、NPCに話しかけると落ちたりと、うまく動きません。
このあたりから、AIに頼むときは「欲しい結果をできるだけ具体的に言葉で表すこと」が重要だと感じ始めました。

改良の結果、最初に比べるとマップはずいぶん賑やかな感じになりましたが、「これじゃない」感は拭えません。(下図を参照)

 

(9) AIの応答に苦戦

修正を頼んでも、しばらく待って返ってくるのは「修正が確認できませんでした」のような返答。もしくは、修正後も事象が改善していな事の繰り返しで、どんどん時間が経過していきました。
エラー内容をもう少し詳しく伝えるべきだと分かっていても、どこからどう説明すれば伝わるのか手探りの状態でした。

 

(10) 試行錯誤の末に見えたこと

何度かやり取りするうちに、「AIは勝手に意図を補ってくれない」ことを実感しました。

こちらが正確に仕様を伝えない限り、出てくるコードも意図からずれてしまいます。

たとえば「敵を倒したあと進めない」という報告を送っても、AIは原因を推測してくれず「修正できませんでした」とだけ返してきます。ここで、もう少し構造的に説明してみる必要があると感じました。

 

(11) この日のまとめ

この日の最大の学びはまさに「適当な指示では、適当な結果しか得られない」こと。 

Amazon Qは優秀なツールですが、曖昧な指示はそのまま曖昧な結果を返します。
お試しとはいえ、プロンプトの精度が結果を大きく左右することを体感できた一日でした。

 

DAY3:ダンジョン探索型RPGの再出発 ― ChatGPTとAmazon Qが作る自動生成の世界

(12) 仕様を一新、ゼロから再スタート

DAY2で作ったゲームは、まったく完成のめどが立ちません。
そこで、思い切って一度リセットし、“ダンジョン探索型RPG”を新しく作り直すことにしました。

今回のテーマは「マップが自動生成されるRPG」。
固定マップではなく、起動するたびにランダムで構造が変わり、キャラクターが勝手にダンジョンを探索してくれる、“自動探索ダンジョン”を目指しました。

 

(13) ChatGPTに仕様づくりを依頼

これまでの経験で、曖昧な依頼ではAmazon Qが混乱することがわかっていたため、まずChatGPTに「RPGの基本仕様書を作って」と頼みました。
ChatGPTは、ダンジョンRPGの最小構成をこう整理してくれました:

  1. マップは2次元リストで構成(壁・通路・階段の3種類)
  2. プレイヤーは矢印キーで移動、壁は通れない
  3. 階段に到達したら次の階層に進む
  4. モンスターはランダムに出現、戦闘結果でHP減少
  5. HPが0になるとゲームオーバー

この仕様をもとに、ChatGPTに「Amazon Qへ送るためのプロンプト」を自動生成してもらいました。
プロンプトには、使用ライブラリ(Pygame)、データ構造(2Dリスト)、描画処理、イベントループなどが明記されており、Amazon Qでも誤解が少なくなりました。

 

(14) エラー修正もChatGPTが自動生成

それでも、実際にゲームを実行してみると、当然ながらバグは発生しています。

「敵を倒しても階段が出ない」「フロアの隅に閉じ込められる」「マップが生成されない」といった、ユーザー体験を損なう致命的な問題です。 

エラーそのものはPython側のログで明示されていないことも多く、「プレイヤーが同じところを行ったり来たりしてゲームが進まない」「敵が表示されない」「フロアをクリアしても次に進めない」といった“現象”ベースの問題が続出しました。 

この状況を打破するために、ChatGPTを“プロンプトの翻訳者”として活用しました。 

Amazon Qは、自然文をそのまま受け取って期待通りの出力を返してくれるとは限りません。ChatGPTに自然文のプロンプトを渡し、そこからAIが解釈しやすい構造化された指示に変換してもらうようにしたのです。 

この“ChatGPTの修正依頼文”をそのままAmazon Qに投げると、ちゃんと動くコードに置き換わりました。
こうして、ChatGPTがエラーを「翻訳」してAmazon Qに伝える――というAI同士の分業が形になったのです。

 

(15) まとめ:AI同士の共創が見せた新しい開発スタイル

DAY3では、ChatGPTが「仕様や修正依頼を構造化」し、Amazon Qが「コードとして実装」する流れが確立しました。
それまでのように曖昧な会話で進めるよりも、ChatGPTが“AI向けの言葉”で翻訳することで精度が劇的に上がったのが大きな成果です。

完成したのは、シンプルながら「ランダム生成」「自動探索」「階層移動」を備えたダンジョン探索型RPGの原型
お試しで作っただけの小さなプログラムですが、AIツールの組み合わせ次第でここまで動くものが作れるのかと、純粋に驚かされました。(下図を参照)

 

おわりに ― 小さな一歩でも、確かな学び

今回は、AIの力を借りながら手探りでゲームづくりに挑戦してみました。
専門知識がなくても、少しずつ動かしながら仕組みを理解していくうちに、だんだんと形になっていくのが楽しかったです。

もちろん、思うように動かないことも多く、エラーの意味を調べたり、AIの提案を試しては失敗したりの繰り返しでした。
それでも、「こうやってAIと一緒に作るんだ」という感覚を掴めたのは大きな収穫でした。

もしこの記事が、これからAmazon QやChatGPTを使ってみようという方の背中を少しでも押せたなら、とても嬉しいです。
私自身もまだまだ学びの途中ですが、「試してみる」ことの大切さを改めて感じました。

読んでくださって、ありがとうございました。

 

(下図は、作ったゲームをクリアしたときの画面)

著者について
安藤

安藤と申します。千葉県在住。趣味は読書、料理、映画鑑賞
◇IPA資格
・プロジェクトマネージャー
・ITサービスマネージャー
・システム監査技術者技術者
・情報セキュリティスペシャリスト

安藤をフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(AWS)は、企業価値の向上につながるAWS 導入を全面支援するオールインワンサービスです。AWS最上位パートナーとして、多種多様な業界のシステム構築実績を持つSCSKが、お客様のDX推進を強力にサポートします。

AI・MLAWSその他技術ナレッジ
シェアする
タイトルとURLをコピーしました