Story Session
code:markdown
# 🎮 シミュレーションゲームプラットフォーム 仕様書(初期バージョン)
## 📝 目的
チャット形式で物語を進行するシミュレーションゲームを、LLM(GPT-4相当)との対話を通じて遊ぶことができるプラットフォームを作成する。
ユーザー自身が物語(シナリオ)を自由に投稿・共有でき、他のユーザーもその物語に参加できる。
遊んでいるうちに、人と人との繋がりを作れたら最高
---
## 📌 機能一覧
### 1. ユーザー機能
- ユーザー登録(必須)
- シナリオの投稿(自由記述、タグ付けなど検討)
- シナリオのプレイ(自身 or 他人のシナリオを選択)
- シナリオのセーブ(会話ログ + 選択内容を保存)
- SNS連携によるシナリオ紹介(リンク・タイトル・ハッシュタグ程度)
---
### 2. プレイ設定(セッション設定)
- 公開 / 非公開 の選択(他人に見えるか)
- 他ユーザーの参加「可 / 否」の設定
- 上限参加人数の設定(公開+参加可の場合)
---
### 3. シナリオ
- 自由記述形式(構造化しない)
- シナリオ作者が LLM の振る舞い・世界観・初期設定を指示可能
- GPT-4相当の LLM を使用
- R-18 コンテンツは禁止(利用規約で規制)
---
### 4. ゲーム中のやりとり
- 全てテキストベース(画像は将来的に対応したい程度)
- LLMが物語を進行(自動判断での返答)
- @LLM や @他ユーザー などで宛先を明示可能
- LLM は文脈と宛先の解釈によって応答対象を判断
---
### 5. 「みんなで遊ぶ」時の仕様(=マルチセッション)
- 誰でも飛び入り参加可能(条件を満たせば)
- 複数ユーザーの発言が混在するため、LLMは文脈/宛先に応じて発言者・応答先を識別
- プレイヤー同士の発言、LLMへの発言を区別する必要あり
- 会話の順序性や混乱の防止のため、発言のログはタイムスタンプ+ユーザー名付きで管理
---
### 6. 保存・ログ・セーブ
- 会話内容とシナリオ情報を含めて保存(セーブデータ)
- ユーザーは保存データからいつでも再開可能
- シナリオごとに複数のプレイログが生成される想定
---
## 💡 技術面の基本方針(初期プロトタイプ向け)
| 項目 | 内容 |
|--------------|----------------------------------------------------------------------|
| LLM | GPT-4 相当(API利用) |
| 通信 | WebSocket or Polling、バックエンドは自由設計 |
| サーバー | 初期は1台想定(水平スケール可能な設計は意識) |
| データ保存 | 最低限でOK。会話ログとセッション状態保存(DB or KV) |
| クライアント | Webベース、シンプルなチャットUI(後で拡張可) |
code:markdown
# 🎮 シミュレーションゲームプラットフォーム プロトタイプ仕様(みんなで遊ぶ中核版)
## 📝 目的
- 複数ユーザーが同時参加し、チャット形式でLLMと物語を共同進行できるマルチプレイ体験を提供する。
- 物語の途中で自由に発言し、LLMの反応を得ながら物語を展開する。
---
## 📌 最低限の必須機能一覧(みんなで遊ぶにフォーカス)
### 1. ユーザー管理
- 管理しない
### 2. セッション管理(マルチプレイ前提)
- セッション作成(新規ゲームルームを作成)
- セッション参加(URLやIDで参加可能)
- 最大参加人数設定(デフォルト10名程度)
- 公開/非公開設定(非公開は参加URL必須)
### 3. ゲームプレイ(チャット形式)
- 発言入力フォーム
- 発言ログ表示(ユーザー名+テキスト)
- 発言の宛先は LLM で判断する(シナリオに対しての発言なのか、他ユーザーへの発言なのか)
- LLMが発言文脈を解析し、適切に返答を生成
- 他ユーザーの発言もリアルタイムに反映
### 4. シナリオ管理
- シナリオの基本設定(タイトル、世界観・初期設定テキスト)を作成者が登録可能
- シナリオは非構造化テキストで記述(初期設定や世界観をLLMに渡す)
### 5. 会話ログ保存・セーブ機能
- いらない
### 6. UI/UX
- シンプルチャット画面(発言入力+ログ表示)
- (誰が入力中とかはわかるといいなぁ)
---
## 💡 技術面ポイント(プロトタイプ向け)
- LLM API:GPT-4相当を使用(APIコールは発言単位で)
- 通信:WebSocketでリアルタイム双方向通信
- サーバー:1台構成、Node.jsで実装可能。あるいは Cloudflare
- データ保存:RDB
- クライアント:Webブラウザ上のチャットUI
---
## 🚀 フローイメージ
1. ユーザーがシナリオを選択しゲームルームを作成
1. 他ユーザーが参加URLからルームに入室
1. チャット画面で自由に発言しながら、@LLM宛の発言にはLLMが返答
1. 発言はユーザー名付きでリアルタイム表示