【VibeCodingChallenge#1】AIでゲーム開発 スプラトゥーン風色塗りゲーム編
はじめに
遅ればせながらClaudeCodeを入れて、VSCodeのExtentionから使ってみました。
以下を参考に、ClaudeCodeをWindows端末に入れて利用しているので、良ければ参考にしてください
さて、今回はClaudeCodeを使って、手始めにゲームを作ってみようと思いました。
以前Replitでスプラトゥーン風の色塗りゲームを作ったことがあり、Zennにも記事として以下に載せてみたことがあるのですが、今回も同じようなものを、全くコードを書かずにプロンプトだけで作ってみようかと思います。
最終成果物
先に最終成果物をお見せします。
無事、以下の実装を実現できました
- 色塗りのマス目の数で勝敗を決める。PCのSpaceキー押下で色塗り、矢印キーで移動が可能
- 難易度は5つ設定。(動画はレベル3)
- グレーのマスは進めないマスとして、ゲーム開始時にランダムにステージに配置。
4. 相手の上で色塗りをすると、相手を5秒間動けない状態にすることも可能。 - 一定のマス目を塗るとゲージがたまり、Enterキーを押下すると、9マス一気に塗る必殺技を繰り出す。
- 最後に60秒後に勝敗表示。
無事、イカを主人公とした、スプラトゥーン風の色塗りゲームを作ることができましたが、本質はとらえられて、、、いますかね?
今回の実装内容
今回は以下のようなプロンプトを最初に記載をしています
Create a Python program using the pygame library that allows two players to compete by moving around a grid to claim territory.
Each player uses different keyboard controls. When a player moves over a tile, it is painted in their color.
After 60 seconds, the player who painted the most tiles wins.
Make it fully local, no internet connection needed.
このプロンプト自体、やりたいことをざっくりChatGPTに伝えて記載したプロンプトです。
以下のようなざっくりとした指示でプロンプト自体も生成をしています。
自端末内で動作する任天堂のスプラトゥーンのような陣地を取り合うゲームを作りたいです
このプロンプトでPyGame(2Dゲーム用のライブラリ)を使って、実際にこのようなゲームのもとを作ってくれました。
そして、その後も手直しを加えていきましたが、その際に明確にエラーが発生することはなく、動くものは少なくとも提供してくれました。(Replitなどだと、途中断面エラーがかなり出ている印象なので、このあたりも好感度が高いです。)
以下の部分をプロンプトを書いて修正を加えて最終系に至りました。全てプロンプトのみで制作をしています。
- 動作が重たいポイントの修正 →最初は非常にギミックが重たかったため、動作が重たいことがあれば、修正をしていきました。
- スタンやモード選択等機能の追加 →最初はAIの動きが非常に淡白で、難易度が低くつまらなかったため、難易度を加えました(最も難しいコースは私では歯が立たないくらいのスピードでAIが色を塗る)
- ゲームプレイヤー画像の差し替え →最初は単なる色付きの〇がプレイヤーでしたが、そこからスプライトを使ってイカの画像に差し替えました。ここで使った画像はChatGPTで生成した画像です。
等、約3時間ほどの片手間なプロンプトエンジニアリングだけで、これを作成することができました。
終わりに
今までReplitなどを使って、こうしたAIのみでのコーディングをしてきましたが、エラーが出ることも多く、かなり立ち止まることが多かったのですがClaudeCodeの場合、エラーが出ることはほとんどなく、UIの変更や、動作の変更に終始をすることができました。
一方で、Limitに達すると、途中断面の修正でも停止していたため、そこからの修正は若干面倒でした。
また、環境構築も、Windows×WSL×Ubuntsu×VSCodeだからなのか、私が単に不慣れだからなのか、少し大変でした。
こうした精度の高いものが、ChatGPTクラスに誰でも使えるようになると良いですね。
Discussion