前回、ChatGPTにゴーストライターを任せられないかどうか検証してみたわけです。
結果としては、残念ながら思うような記事を書いてもらうことができませんでしたが、もしかするとこちらの発注したプロンプトの内容に問題があったのかもしれません。
こちらについては、いずれもう一度プロンプトを勉強し直して再チャレンジしてみたいと思います。
さて、今回試していきたいのは、ゲームの作成です。
ChatGPTがネット上で話題になった際、注目された理由の1つが、発注をするだけで高度なプログラミングのコードを自動生成してくれるというところでした。
YouTubeで検索をしてみると、実際にChatGPTにコードを書いてもらってゲームを作ることができるか、検証をしている動画がいくつも上がっています。
私もその中からいくつか選んで観たものの、そういった動画をあげている人はみんなプログラミングの知識のある方ばかりで、なおかつ発注する内容についても、ブロック崩しやテトリスといったゲームの最低限の機能だけを作ってもらうところで終わってしまっていて、ChatGPTだけで最後までゲームが作成できるのかどうかについては、いまいちわからなかったりするわけです。
そんなわけで、今回はプログラミング経験ゼロの私がChatGPTに発注をして、どこまでのレベルのゲームが作成できるのかどうかを検証していきたいと思います。
本当にChatGPTだけでゲームが作成できるということであれば、表現の幅がぐんと広がっていくかと思うので、期待を込めてやっていきたいと思います。
発注をしていく
それでは、早速ChatGPTに発注していきたいと思います。
すると、以下のように返ってきました。
そこからは、するするとコードを書き始めていきました。
今回使用する言語はjavascriptと言うもので、少し調べたところ、主にウェブサイト上で使用される言語のようで、プログラミング言語の中でも比較的難易度は低いようです。
また、今回ウェブブラウザ上で起動するゲームを作ってくれています。
そのためには、フォルダ内にindex.htmlとgame.jsという名前のテキストファイルをそれぞれ作成し、一つのフォルダに入れる必要があるようです。
メモ帳アプリを開いて、ChatGPTが書いてくれたコードをindex.htmlとgame.jsそれぞれにコピペしていきます。
テキストファイルを上書き保存して、フォルダ内のindex.htmlと言うファイルをダブルクリックしたら、ウェブブラウザ上にゲームが起動しました。
左の白い箱が自機のようですね。
確かにレーザーらしき弾を発射していますが、それ以外の要素はなく、まだまだゲームとは呼べません。
ざっと思いつくだけで、以下の問題が出てきました。
- 敵が出てこない
- 自機が上下にしか移動できない
- 敵を撃っても消滅しない
- 敵に当たってもゲームオーバーにならない
- 端に行っても突き抜ける
- スコアがない
そんなわけで、まず「スコアの表示」と「プレイヤーを360度移動させてくれ」という要求をChatGPTに投げかけていきました。
そんな感じで、リストに挙げた問題を解決してもらったのがこちら。
右の青や赤い箱が敵で、スコアやゲームオーバー機能も実装されています。
その後も、以下の機能を追加していきました。
- 残機設定の追加
- ゲームオーバー時のリスタート(スペースボタンでリスタートできる)
- 敵の動き(ゆらゆら浮遊する形に)
- 自機の描写の差し替え
- パワーアップアイテムの追加(取ると残機が増える)
そうして出てきた行動して出来上がったのがこちら。
これでいくらかゲームらしくなりました。
エラーが多い
その後も以下のような要素を追加をしようと発注を続けました。
- タイトル画面の追加
- 「Stage1」の表記のある画面の追加
- 敵キャラの追加と動きの差し替え
- 敵キャラの描写の差し替え
- 自機と残機の画像の差し替え(先ほどの画像は初代グラディウスから拝借したものなので。。。)
最初はうまくいっていたものの、要素を追加するごとにエラーが発生をするようになります。
というのも、ChatGPTはコードは書き出してくれるものの、そのコードをどこに挿入すればいいのかは初心者にとってはわかりづらいこともあり、ある程度の予測をしてから差し込む必要があります。
そうなってくると、経験をしてどこに挿入をするか、おおよその学習する必要があります。
また、エラーが発生した場合の対処法ですが、最初はエラーの現象についてだけ記載をしていましたが、そうすると問題が解決しなかったり、解決案をいくつも出されたりすることがあったため、途中からはプログラムの前行動をコピペした下に現象やエラーコードをエラーの現象を書いたり、エラーコードをコピペしたりすることにしました。
そうすることで、よりスムーズにエラーの解決が行えるようになったと感じています。
完成。。。
そうしてChatGPTとゲーム作成に明けくれる日々を一週間ほど送りました。
とはいっても、その間の作業と言えば、こちらの要望を書いて、ChatGPTに投げるだけなので、晩酌をしながらYouTubeを流しているそのついでに作業を行っていました。
そうして出来上がった最終版がこちらになります。
※実際のゲームはこちらからプレイすることができます(別ウィンドウに飛びます。操作はキーボードのみ)
いかがでしょうか。
かなりゲームらしい見た目になったかと思います。
ちなみに今回使用したドット絵は、私の好奇心からタイトル画面以外自作してみましたが、ChatGPTに投げればいい感じの画像を作成してもらうこともできます。
もし興味がある方は、リンクからプレイをしてもらえれば良いかと思います。
ちなみに今回使用したBGMについては、私が趣味で運用している別サイト『JUKEBOX SOUNDS』から拝借をしました。
こちらでは作成した曲を商用利用可の無料で配布しているので、ゲームや動画作成や楽曲製作の際によければ利用していただければと思います。
※ただ、音楽経験が一切ない素人の曲なので、あまり期待はしないでください笑
終わりに
いかがだったでしょうか。
最後に反省点や今後の改善点についてまとめて終りにしたいと思います。
今回のゲームについてですが、本来であればパワーアップのアイテムを後2種類追加をして、進化の段階をあと10段階ぐらい増やして、最後にボスを出現してさせて、そのボスを倒したらクリアと言う形にしたいと思っていました。
しかし、制作を進めていくうちに、どうしてもボスの追加がエラーが起こりうまくいかず、またパワーアップアイテムについても追加の手順がややこしくなってしまったため、今回は一旦これで政策を終えることとしました。
(ちなみにタイトルの『YARISUGIUS』の所以は、開発当初アイテムを取得するたびに無尽蔵にパワーアップし続けて最終的に画面が弾幕だらけになるような「やりすぎだろ」というゲームを作ろうという企画を持っていたためです)
今回作成してみた感想としては、ChatGPTを用いればゲーム制作をする事は、可能になるであろうと確信をしました。
とは言え、今回Javascriptと言う言語を使用しましたが、こちらはゲーム開発の第一線で使用されている言語ではないとの事なので、別の言語を使用してみるか、あるいはJavascriptのゲームライブラリというものもあるそうなので、そちらの利用も考えていっても面白いかもしれません。
ノベルゲーム制作ツールであるティラノビルダーと言うソフトもJavascriptを使用していると検索したら出てきたので、もし可能であればティラノビルダーでノベルゲーム要素を追加したゲームを作成することも可能になるのかもしれません。
いずれにしても期待は膨らむばかりです。
次回は、もう少しChatGPTの力を試す意味合いで、ブロック崩しゲームでも作ってみたいと思います。
それではー。