🎮

Python未経験者がAmazonQでゲーム開発してみた話

に公開

はじめに

最近、Amazon Q を使ったゲーム開発イベントが開催されているのを知り、興味本位でチャレンジしてみました。

https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

少し調べてみたところ、PyGame を使ったゲームづくりが人気らしいということだったので、Python 未経験者ながらチャレンジしてみることに。今回は、そのゲームについてご紹介します!
なお、Amazon Q の導入方法や使い方は公式や他の方の記事でもたくさん紹介されているのでこの記事では割愛します。

ゲームの紹介

今回作ったゲームがこちら。

alt text
alt text

GitHub Pages を利用して公開もしています!
※最初に文字化けした真っ白な画面が表示される場合がありますが、画面をクリックするとタイトル画面に進みます…

https://mknsk0309.github.io/app-animal-dinosaur-game/

このゲームの概要については、こちら にも記載していますが、ざっくりと説明すると、動物と恐竜をモチーフにした神経衰弱 です。

開発ストーリー

さて、ここからは実際にどうやってゲームを作っていったかをご紹介します。

企画

まずは大事なゲームの企画から。子どもを寝かしつけている横で Gemini と軽く会話しながらアイデアを練りました。

4歳の子どもが動物と恐竜、あと乗り物が好きなんだけど、この好きなものを盛り込んだゲームを作りたい!どんなゲームがいいかな?

こんな会話をしながら提案してくれたのが、スライドパズルや神経衰弱といったゲームでした。
神経衰弱いいね!と思い、乗り物要素はちょっと浮いているなと思ったので動物と恐竜に絞ってゲーム作成を進めることに。

設計

さて、ここからは Amazon Q にバトンタッチして、設計をしていきます。

Pygameを使ってゲームを制作したいです。一緒に要件定義をしてください。
4歳の男の子が楽しめるゲームを作成したいです。動物と恐竜が好きなので、これをモチーフに神経衰弱をベースにかくれんぼ要素をかけ合わせながら図鑑を埋めていくゲームにしましょう。

alt text

結構しっかりと要件定義をしてくれます。ここにいちゃもんを付けていくだけの嫌な上司を演じつつ、着々と設計を進めていきます。
最後に、決まったことをドキュメントにまとめてもらいます。

alt text

README はもちろん、詳細設計書やプロジェクト構成、実装計画まで作成してくれました。
いや〜、ドキュメントの質も十分だし、この子賢すぎませんか?今の AI ってこんな感じなの?

実装

そして、いよいよ実装作業です。

実装作業に沿って順番に進めましょう。

この一言で、ズザザザザザっと、基本機能の実装が完了します。できあがったゲームがこれ。

alt text
alt text

いや、もう十分ゲームになってる…ちょっとすごすぎませんか?
実装計画もまとまっているのであとはそれに沿って実装してもらいながら細かい指摘を投げて、スマホでショート動画を見てる間にぽんぽんぽんと進めてくれます。

画像の生成はさすがにできなかったので、基本的なキャラクター画像は いらすとや から。
背景画像に関してはいらすとやからお借りしたデザインの雰囲気に合う、かつ、ゲーム画面に合わせたサイズの画像を ChatGPT に生成してもらいました。
これも便利すぎた…

そんなこんなで、絵合わせゲームが実装されました!

図鑑機能やシールブック機能など、拡張機能はまだ未実装ですが、AmazonQ のリクエスト数が上限になっちゃったのでいったんストップです。
拡張機能は乞うご期待!ということで。

苦労したこと

今回、Python のコード内容については全くのノータッチです。
なんせ私は、Python 未経験者なので読んでもよくわからんからです。

実はこのゲーム、最初に作ったバージョンは一度ボツになっています。
最初に実装してもらっていたものは GitHub Pages で公開することを視野に入れてなかったので、あとから対応しようとしたときにプロジェクトの構成が噛み合わず泣く泣く破棄しました。

その後何度か設計からやり直したのですが、私の指示能力不足でもともと作っていたような形にならず、AIレスポンスガチャみたいなことをしていました。

結果、もともと作っていたものより良くなったのですが、言語化する力はこれからの時代かなり大事そうですね…

まとめ

いわゆる「バイブコーディング」を初めて体験しましたが、とても楽しかったです!
息子も気に入ってくれたようで、簡単なゲームなのにずっとやり込んでくれています。

こうやって AI を活用することで、個人開発のハードルがぐっと下がったことを実感しました。

人間がコーディングする時代は終わりそうですね…

Discussion