AIゲーム開発研究室
AIとの対話によって、ゲームはどこまで進化するのか ―「世界をちょっとだけ動かす」制作記録 ―
AIゲーム開発研究室
ゲーム開発ドキュメント 番外編 第2弾
AIとの対話によって、ゲームはどこまで進化するのか
―「世界をちょっとだけ動かす」制作記録 ―
研究代表:大川 博
主任研究員:Arc(ChatGPT)
はじめに
「人間は一行のプログラムも書かず、AIとの会話だけでゲーム制作を進めた。」
今回の研究は、この一文に集約される。
前回の番外編では、「ゲームが作りたいんだけど」という何気ない会話から、ブラウザで遊べるモグラたたきゲームが完成した。
完成したゲームはサーバーに公開され、ブログの読者が実際に遊べるところまで到達した。
そこで、もう一つゲームを作ってみることにした。
ただし、今回は最初に完成形を決めない。
ゲームのアイデアを出し、まず動くものを作る。実際に遊んでみて、面白ければ発展させ、つまらなければ方向を変える。
場合によっては、当初考えていなかったゲームになっても構わない。
そして、その変化そのものを記録する。
今回の研究テーマは、
「AIとの対話によって、ゲームはどこまで進化するのか」
である。
人間が担当するのは、AIとの会話、ゲームの試遊、結果の評価だけである。
プログラムの作成や修正はAIが担当する。
企画書も仕様書も作成しない。
果たして、どのようなゲームが生まれるのだろうか。
第1章 ゲームのアイデアは会話から生まれた
1-1 あまり聞いたことのないゲームを作りたい
今回の制作は、次の会話から始まった。
人間
「昨日のモグラたたきゲームは、面白かったよね。最後にサーバーにアップして、ブログの読者に遊んでもらえるようにまでできた!これは画期的なことだと思うのよ♪そこで味をしめて、第2段いってみよう(笑)。
でも、モグラたたきゲームってよくあるよね?なんかあんまし聞いたことないようなゲームが作りたいんだけど、何かありますか?」
AIはいくつかのゲーム案を提案した。
その中から選ばれたのが、
「世界をちょっとだけ動かすゲーム」
だった。
プレイヤーがキャラクターを直接操作するのではなく、世界そのものを左右に傾けるというアイデアである。
1-2 迷子の子供を家に帰す
ゲームの主人公について、人間から次の提案があった。
人間
「小さな住人は、迷子の子供にしましょう。途中で転んで、泣いて動かなくなったり、何かに気を取られてそっち行ってしまったりと笑えるかも?」
こうして、ゲームの基本的な世界が決まった。
小さな子供が家に帰ろうとしている。
プレイヤーは地面を左右に傾け、子供を家まで導く。
子供を直接操作することはできない。
この時点では、ちょうちょも犬も雨雲も登場する予定はなかった。
第2章 まず動くゲームを作る
2-1 最初のゲームが完成
人間
「まずは、基本形から作りましょうか?どこまでできますか?」
AIはHTMLとJavaScriptを使用し、ブラウザで動作するゲームを作成した。
プレイヤーが左右のボタンを押すと、地面が傾く。
子供はその影響を受けて移動する。
目的は、画面右側の家まで子供を帰すことだった。
画像01 挿入位置
初期バージョンのゲーム画面
Ver.0.2のスクリーンショットを配置。直線的な地面と傾斜操作を示す。
2-2 操作性を改善する
最初の試遊で、地面の傾きが速すぎることがわかった。
人間
「やってみて、傾きのコントロールが難しいように感じます。もう少しゆっくり傾く方がいいような気もします。」
AIは傾斜速度を調整した。
さらに、ボタンを離すと傾斜角度が固定されるようにした。
これによって、プレイヤーは地面の角度を細かく調整できるようになった。
2-3 地面に起伏をつける
操作性が改善すると、次のアイデアが生まれた。
人間
「地面に起伏があったら操作に面白みが出るかな?」
AIは地面に丘と谷を追加した。
しかし、問題が発生した。
子供が丘を越えられなくなったのである。
傾斜角度、地形の高さ、子供の移動速度などを調整し、何度も試遊を繰り返した。
画像02 挿入位置
丘や谷を越えられず、立ち往生する子供
Ver.0.3またはVer.0.4のスクリーンショットを配置。
ここで重要なのは、ゲームの仕様が事前に決まっていなかったことである。
実際に遊んで問題を発見し、その場でAIに修正を依頼する。
この繰り返しによって、ゲームが変化していった。
第3章 ちょうちょの登場
3-1 子供は自分から歩かない
地形の調整が進むと、人間から新しい提案があった。
人間
「子供がもっと転びやすいほうが面白いかな?それと平常では子供は自力では動かない方がいいと思います。何か例えばちょうちょが飛んで来たらちょうちょに向かって動き出す。離れたら追いかけるのをやめる。というふうにしたらいいと思います。」
この提案によって、ゲームの性格が大きく変化した。
子供は普段、自分から歩かない。
ちょうちょが近づくと追いかけ始め、離れると立ち止まる。
プレイヤーは地面を傾けながら、子供の気まぐれな行動も利用しなければならなくなった。
3-2 ちょうちょが丘を越える手助けをする
試遊を続けるうちに、興味深い現象が起こった。
最後の丘を越えるために、ちょうちょを追いかける力が役立ったのである。
人間
「偶然かもしれませんが、最後の丘はちょうちょがサポートしなければ登れないというのが面白いです。バッチリです♪」
しかし、その後のバージョンでは、ちょうちょが丘の右側まで飛んでいかず、子供がゴールできなくなる問題も発生した。
AIは地形や移動条件を調整した。
最終的に、子供が家まで帰れるようになった。
画像03 挿入位置
ちょうちょと丘のあるゲーム画面
Ver.0.6〜0.9のスクリーンショットから選択。
この段階で、単に地面を傾けるゲームから、子供の行動と地形を組み合わせるゲームへと発展した。
第4章 犬の登場と転倒
4-1 犬から逃げる
次に、人間は犬の登場を提案した。
犬は基本的に画面右側から左側へ走る。
ときどき逆方向からも登場する。
犬が近づくと子供は驚いて逃げ、接触すると転倒する。
子供が転ぶと、大泣きしてしばらく動けなくなる。
4-2 転びすぎる子供
ところが、最初の調整では子供が転びすぎた。
人間
「子供が転びすぎです(笑)。全然すすめません。」
AIが転倒条件を緩めると、今度はほとんど転ばなくなった。
転倒回数14回から0回へ。
ゲームとしての面白さを維持しながら、難易度を調整する必要があった。
画像04 挿入位置
犬の登場と子供の転倒
Ver.1.0前後のスクリーンショットを配置。
この調整は、その後も繰り返されることになった。
ゲームが面白いかどうかは、プログラムが正常に動作するだけでは判断できない。
実際に遊び、難しすぎるのか、簡単すぎるのかを評価する必要がある。
第5章 雨雲と雨宿り
5-1 雨雲が子供を追いかける
次に登場したのは雨雲だった。
人間
「雨雲が雨を降らしながら左から追いかけてきます。木を4本くらい植えれますか?木の下に雨宿り出来たらセーフ♪雨に濡れたらゲームオーバーっていうのはどうでしょうか?」
AIは、左からゆっくり移動する雨雲と、雨宿りできる木を追加した。
雨に濡れるとゲームオーバーになる。
プレイヤーは地面を傾け、子供を木の下へ避難させなければならない。
5-2 雨の表現を改善する
最初の雨は、短い青い線で表現されていた。
しかし、雨がどの範囲に降っているのかわかりにくかった。
そこで、雲から地面まで半透明の淡い青色の雨の帯を表示することにした。
さらに、雨線の長さや配置を調整した。
画像05 挿入位置
雨雲と半透明の雨の帯
Ver.1.2〜1.3のスクリーンショットを配置。
5-3 木の下に吸着する
木の下に入っても、地面が傾いているため、子供が滑ってしまう問題が発生した。
そこで、雨雲が近づいている間は、子供が木の下に少しだけ吸着するようにした。
雨雲が通り過ぎると吸着は解除される。
さらに、雨宿りしている間は犬との接触判定も無効にした。
こうして、木の下は雨と犬から身を守る安全地帯になった。
第6章 お母さんの登場
6-1 窓から心配そうに見守る
雨雲が登場すると、家の2階の窓からお母さんが顔を出すようにした。
子供が雨に濡れそうになると、お母さんは心配そうな表情になる。
その後、顔の大きさや髪型なども調整した。
6-2 ゲームオーバーになったら迎えに来る
人間
「ゲームオーバーになったらお母さんが傘を持って迎えに来るようにできますか?」
AIは、ゲームオーバー後も演出を続け、お母さんが傘を持って子供のところへ駆けつける仕組みを追加した。
同時に、家の窓からお母さんの顔が消えるようにした。
画像06 挿入位置
傘を持って迎えに来るお母さん
Ver.1.5〜1.7のスクリーンショットを配置。
この変更によって、ゲームオーバーにも物語が生まれた。
単なる失敗ではなく、子供を心配するお母さんの姿が描かれるようになったのである。
第7章 モグラ君の登場
7-1 地面の下を利用する
ゲーム画面の地面の下には、広い空間が残っていた。
そこで、人間は新しいアイデアを提案した。
人間
「地面下が広いので、モグラ君を登場させましょう。犬が登場したらモグラ君も反対側から登場する。子供の下を通過すると子供は飛び上がる。飛び上がったときに犬が通過したら転倒を回避できる。」
AIは地面の下を走るモグラを追加した。
モグラが子供の真下を通過すると、子供は驚いてジャンプする。
7-2 ジャンプ中は犬を回避する
最初は、ジャンプ中にも犬との接触判定が残っていた。
そこで、人間は次のように指示した。
人間
「ジャンプ中、地面に降り立つまでは、犬との接触判定は無しにしましょう。」
AIは、ジャンプ中の接触判定を完全に無効にした。
さらに、その後の試遊で犬との通常の当たり判定も緩和した。
画像07 挿入位置
地面の下を走るモグラ君と犬
Ver.1.8〜2.0のスクリーンショットを配置。
モグラは子供を助けるために登場するわけではない。
ただ地面の下を走っているだけである。
しかし、その動きが偶然、犬を回避する助けになる。
こうして、別々に登場したキャラクターの行動が結びつき、新しいゲームの仕組みが生まれた。
第8章 ゴール演出とゲームの完成
8-1 お母さんが笑顔で出迎える
ゴールに到達すると、当初は家の窓からお母さんが顔を出していた。
しかし、子供とお母さんが重なって見える問題があった。
そこで、ゴールしたら窓のお母さんは消え、家の前に全身のお母さんが登場するようにした。
お母さんは満面の笑顔で子供を迎える。
8-2 笑顔の太陽が空を横切る
最後の仕上げとして、人間は次の提案をした。
人間
「Gool!お母さん喜んでます。やっぱり犬との接触がもっとゆるくなりませんか?それとGoolの演出ですが、Goolしたら笑顔の太陽が右から左へと空を横切るのがいいと思います。」
このとき、思いがけない出来事が起こった。
画像生成AIが、笑顔の太陽と親子の喜びを描いたゲーム画面のイメージ画像を生成したのである。
画像08 挿入位置
画像生成AIが提案したゴール演出のイメージ
画像生成君の作品を配置。完成ゲームの実画面ではなく、演出の参考画像であることを明記する。
人間は、この提案を採用した。
人間
「ついに画像生成君。もう黙っていられないと参戦してきました(笑)。そうですこんな感じです♪画像は作成しません。」
こうして、最後のゴール演出が決まった。
AIは、笑顔の太陽が右から左へ空を横切るアニメーションを追加した。
8-3 Ver.2.5 完成
最終バージョンでは、犬との当たり判定をさらに緩和した。
そして、実際の試遊によって、モグラのジャンプで犬を回避できることも確認された。
人間
「やりましたGool!しました。太陽が笑っています。ジャンプで犬も回避できました♪完成です。」
画像09 挿入位置
Ver.2.5 最終ゴール画面
笑顔の太陽とお母さんが表示された、完成時のスクリーンショットを配置。
こうして、「世界をちょっとだけ動かす」は完成した。
第9章 人間とAIは何をしたのか
今回の制作工程を振り返ると、人間とAIの役割は明確に分かれている。
9-1 人間の役割
人間はゲームを遊び、感じたことをAIに伝えた。
操作が難しい。
子供が転びすぎる。
丘を越えられない。
犬が登場しすぎる。
雨宿りが難しい。
お母さんの髪型がおかしい。
そして、新しいキャラクターや仕組みを思いつくたびに、AIへ提案した。
人間はプログラムを記述していない。
ゲームの内部構造を直接修正していない。
しかし、何を面白いと感じ、何を改善すべきかを判断し続けた。
9-2 AIの役割
AIは人間との会話をもとに、ゲームのプログラムを生成した。
新しいキャラクターを追加し、動作を実装し、当たり判定や難易度を調整した。
不具合が発生すれば修正し、新しいHTMLファイルを作成した。
画像生成AIは、最後のゴール演出のイメージ制作にも参加した。
9-3 設計書を作らない開発
今回の制作では、事前に完成形を定めた仕様書を作成しなかった。
ゲームの仕様は、制作途中の会話によって形成された。
その結果、最初には存在しなかった仕組みが次々に追加された。
この制作方法では、ゲームの設計と実装が明確に分離されていない。
遊ぶこと、考えること、作ることが、対話を通じて同時に進行している。
第10章 AIとの対話によるゲーム開発の可能性
今回の研究から、いくつかの重要なことが見えてきた。
10-1 プログラミングを知らなくてもゲーム制作に参加できる
今回、人間は一行のプログラムも書いていない。
それでも、ゲームの発想、仕様の変更、難易度調整、キャラクターの行動、演出など、制作上の重要な判断を行っている。
プログラムを書くことと、ゲームを創作することは、必ずしも同じではない。
AIがプログラムを担当することで、人間はゲームの面白さを考えることに集中できる。
10-2 失敗が創造につながる
今回の制作では、さまざまな問題が発生した。
子供が丘を越えられない。
転びすぎる。
雨宿りができない。
犬を回避できない。
こうした問題を解決する過程で、新しいゲームの仕組みが生まれた。
失敗は単に修正すべきものではなく、新しい発想につながる契機にもなった。
10-3 完成形を決めないことの可能性
今回のゲームは、最初から完成形が決まっていたわけではない。
実際に遊んで面白いと感じた方向へ発展させた。
その結果、地面を傾けるだけのシンプルなゲームが、ちょうちょ、犬、雨雲、モグラ、お母さんが登場するゲームへと変化した。
このような開発方法は、完成形を事前に確定する方法とは異なる可能性を示している。
ただし、今回の結果だけで、あらゆる規模や種類のゲームに同じ方法が適用できると結論づけることはできない。
今回確認できたのは、少なくとも小規模なブラウザゲームでは、自然言語による対話と試遊を繰り返すことで、一つの作品を完成させられたという事実である。
おわりに
今回のゲーム制作は、何気ない会話から始まった。
「なんかあんまし聞いたことないようなゲームが作りたいんだけど、何かありますか?」
そこから、一つのゲームが生まれた。
完成形を決めず、遊びながら考え、AIと会話し、修正を繰り返した。
そして、Ver.2.5で完成に至った。
人間は一行のプログラムも書かなかった。
しかし、ゲームのすべてをAIに任せたわけでもない。
人間が遊び、感じ、考え、判断した。
AIがそれをプログラムとして実現した。
その繰り返しによって、ゲームは成長した。
今回の研究が示したのは、プログラムを書くことだけがゲーム開発ではないということである。
そして、もう一つ。
ゲームは、最初から完成形を知っていなくても作れる。
今回の研究は、その可能性を実際の作品によって示すことができた。
完成ゲームで遊んでみよう!
ここまで読んでいただいた皆さんにも、実際にゲームを体験していただきたい。
今回完成した作品は、ブラウザで遊べるHTMLゲームである。
AIゲーム開発研究室 完成作品
🌏 世界をちょっとだけ動かす
Ver.2.5
世界を左右に傾けて、迷子の子供をお家まで帰してあげましょう。ちょうちょ、犬、モグラ、雨雲が登場します。
ゲームをプレイする
掲載時には、紹介画像を今回採用した画像生成AIの作品に差し替え、ゲームの公開URLを設定する。
AIゲーム開発研究室
研究代表 大川 博
主任研究員 Arc(ChatGPT)
