Phaserは、オープンソースのHTML5ゲームフレームワークです。
デスクトップやモバイルブラウザで動作するゲームを作成するためのフレームワークで、JavaScriptで書かれており、アセットローディング、スプライト、アニメーション、入力/出力など、ゲーム制作に必要な要素を網羅しています。
今回はこのPhaserを用いて、「2人対戦用シンプルテニスゲーム」を作成してみました。
さらに今回は生成AIであるChatGPTを使ってそのコードを書いてもらおうと思います。
ゲームのソースコードは、Githubにアップロード済みですので、興味がある方はぜひチェックしてみてください。
目次
ChatGPTにコード書いてもらう
ChatGPTの有料プランで使える「GPT4」を使ってコードを書いてもらいます。
Phaserは広く使われているオープンソースのライブラリなので、その分ChatGPTの知識量も豊富らしく、サクサク開発することができます。
ChatGPTとの対話の様子を全て下記にシェアしていますので興味があればそちらもご覧ください。
https://chat.openai.com/share/21578eb3-ba9e-4f64-a6c4-8121ec7771f7
まずChatGPTに入力した内容は下記のような内容です。
ChatGPTへの最初の入力内容
JSゲームエンジンのPhaserを使って2人対戦が出来るシンプルなゲームを作ってください。
■ゲーム内容
・左右に行き交うボールを、ふたりのプレイヤーがラケットで打ち合うテニス系のゲーム。
・それぞれのプレイヤーは上下に動かすことができる棒を操作する。
・ボールが棒に当たるとその位置によって適切に跳ね返る(物理演算)
・もしボールを棒に当てられずに後ろの壁に当ててしまうと相手に点数が入る。
・上下の壁にも当たり判定があり、適切に跳ね返る。
この入力から出力されたコードをコピペして、プレイヤーとボールの画像を用意してゲーム起動してみました。
すると、ボールがプレイヤー(左右の棒)に当たった時の挙動がおかしかったのですが、おおむね全体的なイメージはしっかりと意図を組んでくれていました。
修正する
挙動を修正するのにもChatGPTを使います。
現在どのような挙動をするのか?どのような挙動にさせたいのか、をChatGPTに伝えて修正していきます。
エラーが出た時はエラー内容をChatGPTに伝える
エラーが出てプログラムが止まった時は、ブラウザの開発者ツールのコンソールにエラー内容が出力されているので、その内容をコピーしてそのままChatGPTに入力すれば、解決策を出力してくれます。
機能を追加していく
ここからいくつかの機能を追加していきます。
機能の追加も、もちろんChatGPTを利用します。
スタート前にカウントダウンさせる
ゲームの開始時にカウントダウン後にゲームがスタートするように変更しました。
ChatGPTへの入力内容
カウントダウン後にスタートするコードが出力されましたが、秒数が画面に表示されなかったので下記のようにChatGPTに入力し「3・・2・・1」と画面に表示するように変更。
ChatGPTへの入力内容
これでカウントダウン後にスタートするようになりました。
スマッシュ機能を追加
特定のボタンを押すとスマッシュするように変更しました。
ChatGPTへの入力内容
スタート画面・ゲームオーバー画面を追加
カウントダウンの前にスタート画面が表示され、ボタンを押すとゲームがスタートするように。また、プレイヤー1、プレイヤー2のどちらかのスコアが3点になったらゲームオーバー画面に遷移するように変更しました。
ChatGPTへの入力内容
今後もさらに機能を追加していく予定です。追加した内容については随時この記事内で更新していきます。