AI The 王 - AI大喜利バトルゲーム
プレイヤーとAI芸人が大喜利で勝負する、ブラウザで遊べる対戦ゲームを開発しました。お題に対してAIがその場でボケを生成し、勝ち抜き形式で最後の1人になるまで戦います。
プロジェクト概要
- プレイヤー対AIの大喜利バトルゲーム
- LLMがお題ごとにボケをリアルタイム生成
- 個性の異なるAI芸人キャラクターが複数参戦
- 勝ち抜き(脱落)形式のラウンド制バトル
- 結果画像を生成してSNSでシェア
依頼者の目指した目標と解決したい課題
LLMを使ったサービスは実務寄りのものが増えている一方で、「LLMの面白さそのものを体験してもらう」入口は多くありません。特に大喜利のような、正解のない・センスが問われる領域は、生成AIの得意不得意がはっきり出るテーマです。
そこで、LLMの生成能力を「対戦」という分かりやすい形に落とし込み、誰でも触って楽しめる企画として成立させることを目指しました。技術デモに留まらず、ゲームとして最後まで遊べる完成度にすることが課題でした。
開発したシステムの特徴
- AI芸人キャラクター:
- キャラクターごとに異なるペルソナをプロンプトで定義
- 同じお題でもキャラの芸風によって出るボケが変わる
- キャラクターアイコンは外部のアバター生成APIを利用
- お題のカテゴリ:
- 通常の大喜利のほか、「写真で一言」「叫び」などのカテゴリを用意
- カテゴリごとにお手本となる回答例を用意し、few-shotとしてプロンプトに含めることで、回答の粒度と方向性を安定させる
- バトル進行:
- 1ラウンドごとに対戦・判定を行い、敗者が脱落していく勝ち抜き形式
- 残り1人になるまでラウンドを繰り返し、優勝者を決定
- 結果のシェア:
- Canvasで対戦結果の画像を生成
- 「全◯ラウンド」「優勝」などの情報を焼き込んでSNSに投稿できる
技術的背景
フロントエンドは React で構築し、Cloudflare Pages でホスティングしています。ビルド済みの静的アセットとして配信されるため、配信コストを抑えつつ世界中から低遅延でアクセスできます。
APIキーをクライアントに置かないため、LLMの呼び出しはサーバーレス関数経由のプロキシ (/api/generate) に集約しています。 ブラウザは自前のエンドポイントにだけリクエストを送り、そこからLLMのAPIを呼ぶ構成です。フロントエンドが静的配信であっても、認証情報を安全に扱えます。
ボケの生成には Claude を使用しています。プロンプトには、キャラクターのペルソナ設定に加えて、「前置きや解説を書かない」「短くパンチの効いた回答を1つだけ出す」といった出力形式の制約を明示しています。LLMは放っておくと説明的な文章を返しがちなため、大喜利として成立する長さと文体に収める指示が要になりました。カテゴリごとの回答例をfew-shotとして添えることで、さらに出力を安定させています。
スタイリングは Tailwind CSS を使用しています。
解決された問題
「LLMがどれくらい面白いことを言えるのか」を、説明ではなく体験として伝えられるようになりました。プレイヤーは自分のボケとAIのボケを直接見比べることになるため、生成AIの実力を肌で感じられます。
キャラクターごとにペルソナを変える設計により、同じモデルでもプロンプト次第で出力の個性が大きく変わることが、遊びながら伝わる構成になっています。
チーム構成
- (KW) プロジェクトマネージャー
- (KW) フロントエンドエンジニア
- (KW) プロンプトエンジニア
(KW) はKaito Wingsが担当
プロジェクト期間
- 企画・ゲームデザイン - 1ヶ月
- 開発・プロンプト調整 - 2ヶ月
システム構成
- React
- Tailwind CSS
- Claude API(サーバーレス関数経由)
- Cloudflare Pages(ホスティング)