見出し画像

ChatGPTと遊ぼう!ゲームをあれこれ作らせた話

以前、MSXのソースコードをBingAIに書かせた話をした。この時のChatGPTは非常に不甲斐なく、正直なところ、「お前が本当に今、世間を騒がせているChatGPTなのか?」と首をかしげたくなるレベルだった。

一方でChatGPTを擁護すると、上記依頼は学習モデルのChatGPTならではの弱点をあえて突いたような依頼でもある。なぜなら2023年に新製品が出るわけでもなく(まぁ実際はMSX3が出る事になったわけだがw)、趣味以上の領域に展開する可能性が少ない(今後は分からないが、現状の可能性は未知数の)MSXに特化したBASIC言語などのマニアックな言語を、未来を見据えたChatGPT様がマスターしているはずもない。

そこで逆にChatGPTが得意な言語はなんだろう?ということで、あれこれ試してみたら、自分の中でそこそこ盛り上がるくらい完成度の高いソースコードを量産できる言語があった。それが「html5」だ。

細かい説明は省くが、html5とJavaScriptの組み合わせはFLASH亡き後のインタラクティブなページ作成を可能とするブラウザ言語の1つ。個人的に楽しい、というかラクなのは、ブラウザ側で全ての処理が行なわれるため、Webサイト側はhtmlファイルを1つ置けばそれで済むという点が楽しい、というかラク。

ということで、あれやこれやとChatGPTにhtml5を使ってゲームを作らせてみた。あまりに巨大な物はChatGPTも制御しきれないし、何よりリソースの問題などあまり無茶もさせられないのでライトな物が中心。また失敗作も合わせて掲載してある。

とりあえず全部動かした様子を動画にまとめておいたので、動きを確認したい場合はこちらから。それぞれのざっくり解説(と言うほど解説していない)については、以下を読んでみて。


先ずはみんな大好き「LifeGame」
Life Game (asahi-net.or.jp)

人工生命シミュレータとして皆さんご存じの「LIFE GAME」

いきなりゲームはちょっと不安もあったので、先ずは人工生命シミュレータ「Life Game」のソースコードを依頼してみたところ1発でこちらを打ち出してきた。作成したhtmlファイルはそのままブラウザに上げただけ。これでChatGPTの真の実力がようやく見えてきた。

そして、次はもう少しまともなゲームを依頼してみる事にした。と言ってもこちらがやったのはシューティングゲームのコードを書いてくれと依頼しただけ。そして出てきたのが以下のインベーダー風ゲーム!
Shooting Game (asahi-net.or.jp)

ビジュアルはともかくルールはほぼ網羅した「インベーダー風シューティング」

スコアやUFO出現、敵弾や防御盾、クリア後の処理など、必要な追加要素はまだまだあるが、これを1発で出力した事に驚いた。おいおいAI、1978年のゲームをこんなにあっさり作りやがって!ちなみに流れとしては先ずは「Life Game」のhtml5ソースコードを出力させた流れから「この調子でhtml5で動作するシューティングゲームのソースコードを書いて下さい」だけだ。

こんな雑な依頼で書いてくれるのか!

ここでふと、「スペースインベーダー」がこれだけの精度で出せたのなら、それ以前のアーケードタイトルなら楽勝で出力できるのは?と考えた。そこで次に依頼したのは「PONG」だ。結果を見てもらえば分かる通り、圧倒的PONG!が見事に誕生。アレンジでもっと大画面で動くようにしたり明確にゲーム終了の流れを加えればまともな物にできそうだ。

PONG!をCPU同士で対戦させるやーつ!
Pong Game with CPU Players (asahi-net.or.jp)
さらにスコアカウントを加えたり速度を上げたりした
Pong Game with CPU Players (asahi-net.or.jp)

「PONG」レベルは最早楽勝のようだ

PONGがあまりにも順調だったので、ここでふと「LifeGame」以外の人口生命シミュレーションをあれこれ試してみようと思った(この辺の脳内思考がブレブレでウケるw)。他にどんなのがあるのか調べたら、Wireworldシミュレーションってのがあるようなので早速作ってもらった!
……がなんかよくわかってないのと、分かってないからこの動きが正しいのかも分からなくてあんま面白くなかったのでリンクのみ。
Wireworld Simulation (asahi-net.or.jp)

あと「Langton's Ant」という「アリだー!」な人工生命シミュレーションも作ってもらった。こっちは多少動きが賑やか。
Langton's Ant (asahi-net.or.jp)

もう1つ、何か見た目の滑らかな挙動がやたらとカッコいい「BOID」人工生命シミュレーション。
BOID Simulation (asahi-net.or.jp)

「BOID」は三角形の欠片が画面内を跳ね回る不思議なシミュレーションだった。これが正しいのかは知らないけどとりあえず見てて面白い


と3点ほど人工生命シミュレーションをやってたら、さっきの続きに戻る事になった。世界初のテレビゲームで検索したら出てきた「Computer Space」を作らせた。一応、ルール上は多分OKなんだろうが、なんかおかしい、というかゲームどころか動きも危うい
Computer Space (asahi-net.or.jp)

そこでゲームになるように調整を加えてもらったが、まだちょっと動きなど含めて足らない。もうちょい手を加えればよくなるかも。
Computer Space (asahi-net.or.jp)

「Computer Space」は三角の自機を移動して宇宙を駆け巡り、赤丸の敵を打ち落とすシューティングなのかな?移動はできるが、慣性が効きすぎてちょっとゲームになってない

次に気になった初期アーケードの1つ「Space Race」を依頼してみることにした。レースゲームなら簡単に作れるかな?と割と気楽に依頼したのだが、これが割とドタバタすることになる。まず、最初の依頼で出力されたゲームはなぜか横画面になってしまったw
Space Race (asahi-net.or.jp)

青色の自機は上下に動き、右から迫る赤い障害物を避けるレースゲーム。
これはこれでアリなんだが、なんか求めてたのと違う……

お前、わかってねーなと縦画面にするように依頼したら、何か方向がおかしいのが出てきたw
Space Race (asahi-net.or.jp)

一見するとちゃんとしてるように見える。自機の左右移動はOKだし。
ところが、この障害物、なんと下から上に流れてくる!
言ってみれば「追突回避ゲーム」という何ともハードな物を用意してきやがった!

逆だろ?逆w、と指示したら今度は向きはあってるけど、立ち位置がなんか殺意満載になった。ん?これ、そろそろChatGPTが疲れてきたのか?
Space Race (asahi-net.or.jp)

ようやく最低限まともな感じになったので終了w
Space Race (asahi-net.or.jp)

といった感じであれやこれやと試した様子をレポートした。冒頭に貼った動画が全てと言えば全てなので、まぁそれ見て、で終わる話だが、インベーダーなんかは自機とか敵機、UFOなどのリソースをどう与えるか、または入れ替え可能な仕組みを用意してもらったりとかなど、追加指示をいくつか加えたらかなり完成度が高くなりそうだ。

そして、そういうのを考えるのはまだまだ人間様のお仕事になるわけだが、実際にやるとなると時間の大半を割くことになるコーディングの部分の負担を軽減しつつ、自身はプログラムの作りとか条件などを考える事に時間を割くことで完成度を高められる点は、今後の仕事に対するスタンスに大きな変化が出てくることは間違いないだろうねぇ。といったところで今回はこの辺で(*'▽')

この記事が気に入ったらサポートをしてみませんか?