ERENOA
← Works に戻る 個人開発 · ● 公開中

???がJoinしました

作ったもの
自作の TRPG シナリオを、人間 1 人+AI の仲間 2 人で遊べる Web ゲームにした。選択肢はなく、宣言は自由文。
担当
原作・企画・判断・公開。Claude Code と Codex を役割で分けた AI エージェントのチームを指揮。
難所
自由な行動を規則どおりに裁くこと。仲間が「知らないはずのこと」を話さないこと。
どう解いたか
AI は JSON で提案し、目標値と出目は規則エンジンが確定。仲間には、見聞きしたことだけを渡す。
GoTypeScriptViteGeminiVertex AICloud RunFirestoreCloudflare PagesWorkers KVSSEイベントソーシングPlaywright(E2E)

紹介

ゲームマスターも仲間も集めずに、一人で遊べるホラー TRPG。AI の進行役(KP)と、AI の仲間 2 人(ミオとロク)が、それぞれ自分の知っていることだけをもとに話し、動く。舞台は 4 つの VR ワールドと最後の会場で、結末は 6 種類。選択肢は無く、行動は自分の言葉で書く。ログインは不要。

規則はクトゥルフ神話TRPG(第 6 版)に沿う:探索者の作成、技能ロール、正気度ロール。

Case study / 01

制作と担当

AI が進行役を務める、一人で遊べる Web 版 TRPG

AI の進行役(KP)と AI の仲間 2 人と一緒に、自分の言葉で行動を書いて遊ぶホラー TRPG。サイコロと規則は AI に任せず、プログラムが確定させる。

原作・企画・判断・公開を担当。設計と実装は Claude Code と Codex を役割で分けた AI エージェントのチームを指揮して進めた(バックエンド=Claude、画面とデザイン=Codex)。

遊びの流れ

はじめる → 探索者を作る(おまかせも可)→ 行動を自由に書く → KP が読み取り、判定 → 仲間と話す・別れて動く → ワールドを巡る → 招待が届く → 最後の会場 → 結末

設計の芯AI は提案し、エンジンが確定する。
  1. 遊び手自由な宣言

    行動を、自分の言葉で。

  2. KP · AIJSON で提案

    意図・対象・判定・効果

  3. 規則エンジン判定を確定

    候補 ID・目標値・出目

  4. 語り役 · AI事実から語る

    確定した結果だけを渡す。

提案と確定を分ける

  • KP 役の AI は、行動の「意図・対象・判定・効果」を JSON スキーマで提案するだけ。目標値と出目は持たせない。
  • 対象や移動先は、エンジンが渡した候補の ID でなければ捨てる(存在しない物・場所を AI が作れない)。
  • 語り役の AI には、確定した事実だけを渡して文章にさせる。
  • 進行中の遊びは、開始したときのシナリオの版のまま最後まで続く(公開中に直しを入れても、遊んでいる人を壊さない)。
実画面の記録 / 判定

出目はプログラムが確定する。

実際の判定ログ。遊び手の POW×5 は91で失敗、ロクの POW×5 は03で決定的成功。
自由文の宣言を処理した後の判定ログ。実画面から、出目の部分を切り出したもの。

仲間ごとに「心」を分ける

  • 「知らないふりをして」と AI に頼むのではなく、その仲間が見聞きしていないことは、そもそも入力に入れない。
  • ミオだけが見たことをロクは知らない。報告を聞いたあとは、ロクの返事が変わる。
  • 仲間は人間の遊び手と同じ規則で、自分の判断で 1 手ずつ動く。山場だけは KP が仲間を動かす。
実画面の記録 / 仲間

仲間は、それぞれの判断で動く。

ロクが別のワールドに残り、ミオだけが遊び手と一緒にいる記録。
別行動が画面の状態にも反映される。物語の核心を含まない、ポータル広場の記録。

守りと費用

  • 遊び手の文で AI を乗っ取る攻撃(プロンプトインジェクション)への守り:利用者の文を境界つきの JSON で分ける、合言葉による漏れの検出、出力を規則で検査、攻撃の評価セット。
  • 費用の上限:1 回の遊び 300 円・月 1 万円で止まる。停止スイッチ、回路遮断、開始回数の上限(1 IP 1 時間 60 回)。
  • AI の呼び出しごとに、モデル・プロンプトの版・遅延・トークン数・失敗の理由を記録する。

確かめ方

  • 画面を操作して進める E2E(PC 幅と iPhone 393×664 のタッチ)。
  • 本物の Gemini の応答を記録して流し直す再生試験と、偽の AI で 6 つの結末すべてに到達する試験。
  • 本物の Gemini で 6 卓を通しで遊び、宣言 148 回のうち簡易な進行に落ちたのは 0 回、6 卓とも終幕まで到達(2026-10-13〜14)。
  • 何も知らない AI に公開版を遊ばせる初見プレイを、配置のたびに行った。
構成図宣言から、記録まで。
画面Cloudflare Pages

Vite + TypeScript

中継 · /api/*Pages Functions

合言葉ヘッダ / Workers KV で開始回数を計測

サーバー · 東京Cloud Run · Go 1.24

結果は SSE で画面へ

Gemini

Vertex AI 経由
読み取り・裁き・語り・仲間・評価

Firestore

イベントソーシング
起きたことから状態を再構築

構成

  • 画面:Vite+TypeScript を Cloudflare Pages で配信。
  • 中継:Pages Functions が /api/* を Cloud Run へ中継(合言葉ヘッダつき)。開始回数は Workers KV で数える。
  • サーバー:Go 1.24。Cloud Run(東京)。結果は SSE で画面へ流す。
  • 保存:Firestore(イベントソーシング=起きたことを順に積んで、状態はそこから作り直す)。
  • AI:Gemini(Vertex AI 経由)。語りと仲間の返事、読み取り・裁き・評価で役ごとにモデルを使い分ける。

規模

2026-10-15 時点

  • 開発期間:19 日(2026-09-26〜10-14)
  • コミット:約 1,270 / PR:200
  • Go の試験関数:988 / 設計判断の記録(ADR):30 本
  • 第 5 回 Agentic AI Hackathon with Google Cloud の提出作品

本作は、「株式会社アークライト」及び「株式会社KADOKAWA」が権利を有する『クトゥルフ神話TRPG』シリーズの二次創作物です。

Call of Cthulhu is copyright ©1981, 2015, 2019 by Chaosium Inc. ;all rights reserved. Arranged by Arclight Inc.

Call of Cthulhu is a registered trademark of Chaosium Inc.

PUBLISHED BY KADOKAWA CORPORATION 「クトゥルフ神話TRPG」「新クトゥルフ神話TRPG」