www.youtube.com

 


ChatGPTでゲームを作る実験として、ゲームブック風のRPGを作ってみた。
地下5階にいるダンジョンの主を倒して宝を持ち帰るという設定で、選択肢を選ぶとAIが展開を生成してくれる。取得するアイテムとその効能も自動生成で毎回変わってくれたりするので面白い


敵に攻撃された時や罠にかかった時のHPの減少度合いや、薬を使った時の回復量もAIが自動判断。どういう時にHPが増減するかとか、どのくらい減らすかなどは特に指示していなくて、HPの初期値15にあわせてAIがいいかんじに自動でダメージ判定してくれてるのは面白い

ゴブリンやオークのダメージは2から5くらいだけど、ドラゴンの攻撃だと8~10くらい減る傾向が。こん棒で攻撃した時の効果と、エクスカリバーで攻撃した時の効果の違いをAIが勝手に判定してくれて、強力な悪魔をこん棒で殴るとこん棒が壊れるけどエクスカリバーだと一撃で倒せたりするのも面白い

アイテムを入手しても何に使えるのかよくわからないものも多くて活用できないまま終わることもよくあるんだけど、それでもなぜかアイテムがたくさん増えると嬉しいのは人間の心理にそういうのが刻み込まれてたりするのかな。ドルアーガのアイテムアイコンが並ぶ感じで。


初期の頃はもっと自由にAIに展開を作ってもらってたんだけど、それだと話が散漫になって展開が破綻しがちだったので、ゴールを明確にするためにダンジョンを舞台にして、システム側で進行度として「階層を進んでいく」という要素を追加する必要があった。

また、それだけでは展開がダラダラしがちだったので満腹度を導入。プレイヤーの行動に合わせて満腹度を減らすように要求してみたものの、この指示はめったに守られないのでシステム側で毎回-3してる。0になったらHPを減らす指示も守られないのでこの辺はAIと無関係にシステム側で対応する必要があった

地下1階では「プレイヤーは地下に繋がる階段を探して探索を続けます」、地下5階では「この先にはダンジョンの主であるボスがいて、このボスを倒すとゲームクリア」みたいな指令を追加で与えることで方向性を誘導してるけど、この指示だとAIが「ボス」みたいな単語を使うのでもっと工夫の余地がありそう

AIの筆が乗ってくるといい感じの小説風の文章になることもあるけど、「恐ろしい怪物たちが大量に出てきて、プレイヤーは怪物たちを一掃しました」みたいな抽象度の文章を出してくることも多いのでこの辺の指示の出し方もいろいろ工夫が必要そう

ゲームクリアの判定もAIが勝手にやってくれてるので、今回の動画だと3:50あたりで地上に戻ってエンディングメッセージが出たが、特別な仕組みがあるわけではないのでその後もなんとなくゲームが続いてしまってる。クリア後に地下7階で裏ボスみたいなもっと強力な敵が出たこともあった

満身創痍でラスボスを倒して「これでゲームをクリアしました。次は、新しいキャラクターで再度挑戦してみてください。 A)ゲームを終了する B)新しいキャラクターで再度挑戦する C)他のゲームをプレイする」と言われて新しいキャラで再挑戦したけどHPや満腹度が回復したりはしないので即死したことも。


最初はアクションRPGのステージデザインと敵配置を生成してもらって、たまに出てくるNPCの会話は自由にAIに作ってもらう、みたいな構想で進めてたけど、AIに自動生成に必要な回答を強制するのが難しいのと、NPCが出たとたんに展開が自由になりすぎて破綻するので諦めてゲームブック風に妥協した


HPや満腹度の増減、アイテムの入手/喪失などはシステムメッセージとして[アイテム取得,炎の剣]みたいなシステムメッセージを出せと指示してるが無視されがちで、要求が増えるほど無視される確率が上がる傾向があったのでAIに出す指示を最小限に抑える必要があり、この調整が一番時間がかかる所だった

HPの増減や階層を進んだ時にはシステムメッセージを出せと指示してるんだけど守られず、仕方ないのでひたすらプレイを繰り返して、AIが良く出すパターンの文字列を抽出してシステムメッセージがなくてもパラメータに反映するようにしてるけど、たんなる文字列の一致チェックなので誤判定も多いのが問題


この辺りは全体の展開を考えるメタAIや、生成された文章からHPの増減やアイテムの入手状況などを分析するAIなど、複数レイヤーに分けることで改善できることが多そうだけど、1リクエストで完結させないとAPIの待ち時間が辛いというのは結構なボトルネックになってる

また、動画では生成の待ち時間をカットしているけれど、毎回10秒近く待たされてテンポが悪く、4096トークンの制約を超えた時にこれまでの経緯を要約して貰って再生成するときなどは複数回リクエストを投げる必要があって、さらに待ち時間が増えるのはかなり問題
いまはゲームシステム的なものを任せてもすぐ指示が放棄されるので、外部にシステム持たないとすぐ破綻しがちだけど、この辺はGPT4のAPIが使える様になったらもっと確実に高度な指示に従ってくれそうなのでゲームシステムごとAIに任せることもできるかも。ただ、GPT4は3より料金設定が高くなってるらしい

現状はGPT3のAPIを叩いてるんだけど、このくらいの使用量でも1時間当たり200円くらいかかってそうなので、自分ひとりで遊ぶ分にはまだいいけど公開するゲームでこれをやるとすごい課金額になりそう。現状の料金設定だとそもそもゲームに使うのは実用的ではないかもしれない