- Braindumpは、LLMと生成AIの新しい世界でゲーム制作がどのような姿になりうるかを想像しようとする試み
- Braindumpを使うと、単にプロンプトを入力するだけで、トップダウン/2.5Dゲームや対話型ワールドを構築できる
- たとえば「レーザーを撃ち、BB-8爆弾を投下できるスターファイターを作って」と入力すると、そのための3Dモデル、ゲームデータ、スクリプトが生成される
最初の実験から現在まで
- 約6か月前に単純なプロトタイプとして始まり、3Dモデル生成、マルチプレイヤー機能の追加、UXの複数回の改善を行ってきた
- 現在のBraindumpには次のような中核機能がある
- ユニット、能力、属性の定義(例: 「HP 50で魔法の杖を落とすオーク」)
- ゲームマップへのオブジェクト配置(例: 「20体のオークを円形に配置」)
- ゲームルールとロジックの生成(例: 「オークの体力が0になったらその場にゴーストオークを生成」)
- 新しい3Dモデルの生成(例: 「オークをピンク色にして、ふわふわの耳を付けたい」、Meshyを利用)
- すべてが統合された自然言語プロンプトインターフェースを通じて利用できる
課題1: プロンプティングのためのUX設計
- LLMを使って何かを構築する際には、大きく2つの問題がある
- LLMを一貫して望んだ通りに動作させる方法
- LLMと対話するための最適なUX
- 多くのプロンプト実験を通じて、現在の反復的なアプローチへ移行した
- ゲームを一度に全体説明から生成する方法はうまく機能しなかった
- 複数のプロンプトを通じてゲームを段階的に構築すると、より詳しく説明したり反復したりする機会が生まれる
- プロンプトと既存コントロールの適切なバランスを見つけるため、引き続き実験している
課題2: LLMのためのゲームAPI設計
- 既存のゲームエンジン向けのコード生成には難しさがあった
- LLMはコードスニペットの生成は得意だが、より大きなソフトウェアの断片やソフトウェアアーキテクチャの構築・維持管理には苦戦する
- そこで代わりに、LLMがコードとデータの記述に集中できるよう、可能な限り多くの構造を提供する非常に簡素化された「ゲームAPI」をTypeScriptで構築した
- APIから生成された型定義(
.d.ts)をGPTにシステムプロンプトとして与えると、GPTはほとんどの場合、最初の試行で一貫して正しくAPIを使える
- 型チェックには、GPTがエラーを見つけると自分で修正しようとするという驚くべき利点もあることが分かった
生成されたマクロ
- ゲームAPIは、「生成されたマクロ」という別の興味深いUXフローも開いた
- 一般にアプリケーションにおけるマクロは、作業を自動化できる小さなプログラムである
- Braindumpシステムでは、すべてのプロンプトがコードを生成し、そのコードはゲームAPIが扱うほぼあらゆるものを自動化できる
- たとえば「たき火のそばにテントを配置」といったプロンプトを入力できる
- 面倒な作業を自動化することもできる(例: 「異なるステータスを持つ5匹の異なる猫を作って」)
- 計算が必要な質問に答えるよう求めることもできる(例: 「北を向いたテントはいくつある?」)
- これは作業の進め方に新しい道を開く
- 最初は少し奇妙だが、慣れると非常に退屈な作業を数秒で創造的な方法で完了できる
AIとの協調編集
- Braindumpのあらゆるものをマルチプレイヤー化したかった
- 当初は誰でも参加できる大きなチャットが1つあるだけだったが、混乱しやすかった
- 主な問題は、しばしば互いに無関係な2つの別々のことに取り組むことだった
- 複数の解決策を試した結果、「Threads」と呼ぶものに落ち着いた
- ワールドのどこからでもプロンプトを開始でき、必要に応じてそのプロンプトを具体化したり追加したりできる
- スレッドには最初に最新のゲーム状態が渡されるが、プロジェクト全体の履歴は含まれない
- 複数のスレッドを同時に「実行」できるが、各スレッドでは一度に1つのプロンプトしか実行できない
- これまでのところ、これはかなりうまく機能している
- テストでは同時に5人が同じワールドで作業したが、確かに少し混乱はあったものの、依然として機能していた
- ユーザーが効果的に調整できる方法を積極的に模索している
ベンチマークとテスト
- プロンプトエンジンの性能を評価するために、ベンチマークツールを開発した
- このツールは、それぞれ固有のプロンプトを持つ数十のシナリオを実行し、その後GPTを使って各プロンプトの成功可否を評価する
- 「評価者」となる第2のGPT(独自のシステムプロンプト付き)に、これらの条件、完了時のシミュレーション状態、発生したすべてのエラーを与え、テストが成功したかどうかを判定させる
- テストスイートはまだ初期段階だが、新しいプロンプトスタイルや失敗ケースを見つけるたびに、ますます多くのテストを追加している
Braindumpを作る理由
- 個人的に、ゲームと創造性をずっと愛してきた
- 生成AIは生産性向上の自然な次のステップである
- 大手スタジオがますます保守的なゲームを作るようになっているからこそ、小規模なグループや個人でさえ夢のゲームを作れるように力を与えられることがうれしい
- 人々が手元に完全なAIゲームスタジオを持ったとき、どんな突飛なアイデアを思いつき、それを実現するのか見てみたい
今後の計画
- Braindumpはまだ始まったばかり
- 現在は「命令」の実行にはかなり長けている(「猫を作る」)が、もっと曖昧で「大きな」作業も処理できるよう拡張できると分かっている
- 次のような点を研究している
- Planningによる「より大きな」プロンプトのサポート
- GPTが推測するのをやめ、代わりにユーザーへ明確化を求めるようにすること
- GPTに自分の作業を批評させることでコード品質を改善すること
- 発見可能性とインスピレーションの改善(「これで何を作れるだろう?」)
- LLMに適した形でのゲームエンジン機能の改善
まだコメントはありません。