Claude 3.7なら数回の会話で遊べるワンボタンゲームが作れる

ようにするまでは結構大変だったよ……

Claude 3.5の時にゲームのアイデア生成から実装まで行うプロンプト・プロジェクトを作ったけど、それでも最後はコードを直にいじって調整する必要があった。

問題はClaude自身がゲームを遊んでいないことにある。なのでClaudeはそのゲームのバランスが良いとか悪いとかが分からない。

なので今回はClaudeに自分の作ったゲームを遊んでもらうことにした。

ClaudeにはAnalytics tool (REPL)という、コードを自ら実行してその結果に応じて動作する仕組みがある。今回はそれをつかってゲームをシミュレートし、自動評価する仕組みを作った。

one-button-game-test-framework.jsというゲームへのプレイヤーの入力やゲーム内のオブジェクト動作を模擬ずるフレームワークを用意した。これをAnalytics toolで実行することで、そのゲームがちゃんと遊べるか、ゲームバランスが取れているか、などを評価する。最初に5つのゲームコンセプトを考え、それぞれを評価し、最も良い評価のものを採用、評価結果を見て改良しながら実装する。

また今回はp5.jsを使ってゲームを実装したので、ClaudeのArtifactとしてチャットUI上でそのまま遊べる。実際に遊んでみて、ちょっと敵が多いな、とかいう不満点があれば、それを入力すればよい。Claudeがそれなりに直してくれる。

Claude自身に遊んでもらうことによって、すぐにゲームオーバーになるとか、ボタン押しっぱなしでぜんぜんやられないとか、そういったゲームとして成り立ってないゲームが作られる確率が減った。そのため、コードに直に手も入れなくても、会話だけで微調整すれば遊べるゲームが作れるようになった。

ただ問題点もまだまだある。

  • 打率が低い。楽しいゲームが現れるまでには相当数の試行をしないといけない。5つのゲームコンセプト全ての評価が悪く使い物にならない、なんてこともざらにある
  • ゲームが凡庸になった。評価を挟む前は、ゲームとしては成り立ってないがプレイヤーの動きは斬新で面白い、というようなものが出来上がることがあった。こういったものを評価で弾いてしまっているので、その分無難なゲームが作られるようになった

これらの点がClaude 4.0くらいでなんとかなればいいんだけど、みたいに最後に次のLLMに期待する終わり方をすることが最近の私のブログ記事では多いな。まあ今のモデルに満足することなく、さらに高精度なモデルがあればこんなことができそうなのに、というネタを持っておくことはAI時代の楽しみ方として良いのでは、と個人的には思っている。