# GAME-DESIGN.md ホシザクラ暮らしシミュレーション v1 設計仕様書 よりみち研究部 内製ゲーム第1弾 --- ## 01. 位置付け - 「ホシザクラ × 1ヶ月版」プロトタイプ - ヴァレアナ大陸 → ホシザクラへ移住した1ヶ月の暮らしを擬似体験 - 「正解はありません」を明示し、選んだ結果が3軸スコアと文体に変換される - noindex / nofollow(架空世界の遊び場として、検索結果に拾わせない) - FICTION バナーで現実世界と切り離す - 公開URL: https://shiro39.com/yorimichi/game.html - 設計起点: 観測〜記録〜還元のサークル運用と独立した、住人=来訪者の側に立てる入口装置 ## 02. ファイル構成 | ファイル | 役割 | |---|---| | `game.html` | 単一HTML完結(CSS・JS埋め込み・外部API呼び出しなし) | | `GAME-DESIGN.md` | 本ファイル(設計記録) | | `members.json` | 不参照(ゲームは独立データセット) | 依存:Google Fonts(Zen Kaku Gothic New / Zen Old Mincho)のみ。 ## 03. デザイン系統 | 項目 | 値 | |---|---| | カラー軸 | hoshi `#e85480` / hoshi-light `#fce4ec` / hoshi-dark `#c2185b` | | 紙地 | cream `#fdf8f2` | | 文字 | ink `#2a2622` / ink-soft `#635b52` / ink-mute `#9c9288` | | 罫線 | rule `#f0e6d8` | | 角丸 | カード20px・ボタン12px | | 影 | `0 2px 4px rgba(70,40,20,.04), 0 12px 32px -8px rgba(70,40,20,.10)` | | フォント | 本文 Zen Kaku Gothic New 400/500/700 / 見出し Zen Old Mincho 400/700 | ホシザクラの国ページ(hoshi.html)と同系のピンク基調を継承。違いはカード中心・余白多めのモバイル単独画面前提。 ## 04. 画面構成(4画面・single-page遷移) ``` [start] → [scene × 5] → [review] → [result] ``` | 画面 | id | 主要要素 | |---|---|---| | start | `screen-start` | タイトル・サブ・移住者名入力・開始ボタン | | scene | `screen-scene` | 進捗ドット・3軸スコアバー・状況・選択肢3択・エピソード・次へ | | review | `screen-review` | 5シーンを通しの読み物として再表示 | | result | `screen-result` | エンディング型・3軸バー・シェアテキスト・再プレイ | `.screen { display: none; } .screen.active { display: block; }` で切り替え。`showScreen(id)` で `.active` を1画面だけ付け替える。 ## 05. シナリオデータ構造 ```js SCENES = [ { situation: "状況テキスト", choices: [ { text: "選択肢ラベル", effect: { money: -2, conn: 15, heart: 5 }, episode: "選んだ結果のエピソード" }, // 3択固定 ] }, // 5シーン固定 ] ``` シナリオ設計ルール: - 5シーン × 3択 = 15エピソード - 各シーンで money / conn / heart の3軸が動く(±や0) - 「正解」を作らない:どの選択肢にも肯定的なエピソードを返す - 効果値の合計幅:合計+10〜+45 程度に収め、極端に勝ち負けが付かないようにする - 1ヶ月の時間軸:移住初日 → 週末 → 平日夕方 → 雨の休日 → 月末の夜 シーン1〜5の役割: | # | テーマ | 出会い | 試される軸 | |---|---|---|---| | 1 | 来訪 | 隣のおばあさん | conn / heart | | 2 | 交流 | 古民家カフェの会 | money / conn | | 3 | 偶発 | 川沿いの先輩移住者 | conn / heart | | 4 | 内向 | 雨の日の自由時間 | heart | | 5 | 統合 | 月末の夜 | money / conn / heart の最終配分 | ## 06. スコアと判定 ```js state.scores = { money: 50, conn: 0, heart: 0 } // 初期値 ``` - money は初期 50 から減算しても 0 で下げ止め(`Math.max(0, …)`) - conn / heart は加算のみ(実装上は負も許容するがシナリオで現状は正のみ) エンディング判定(先勝・上から評価): | id | 条件 | mark | 名前 | |---|---|---|---| | `blend` | max - min ≤ 30(バランス型) | 🌸 | ホシザクラにとけこんだタイプ | | `face` | conn ≥ heart かつ conn ≥ money | 🤝 | ホシザクラの顔役タイプ | | `root` | フォールバック(必ず該当) | 🌿 | 静かな根っこタイプ | 設計意図: - 3エンディングはどれも「ホシザクラに合う」結末。失敗エンディングは作らない - バランス型を最初に評価することで、極端でない人にも明確な居場所を与える - 残りは「人ベクタ vs 自分ベクタ」で2分する最小構造 ## 07. シェア仕様 シェアテキスト(コピー&ペースト想定・X/Threads/LINE貼り付け): ``` 【ホシザクラ暮らしシミュレーション】 {playerName}さんは「{タイプ名}」でした。 💰{money} 🤝{conn} 🌿{heart} {タイプ説明の冒頭40字}…… https://shiro39.com/yorimichi/game.html ``` - 結果画面で `