16 KiB
16 KiB
実装状況
この文書は仕様書そのものではなく、現在のコードがどこまで到達しているかを記録する。ゲームルールの正本は GAME_SPECIFICATION.md、System境界と不変条件の正本は SYSTEM_SPECIFICATION.md とする。
実装・自動検証済み
S0: 決定的Simulation基盤
- 1ゲーム分固定Tickと11段階の処理順
- Command Queue、priority、予約時刻、処理後も保持する受理ID/idempotency対応、旧Queue Snapshot移行
- 原子的State Transaction
- subsystem別の決定的RNG Stream
- Stable ID、全件検証後に一括Commitする再入安全なDomain Event Batch、Simulation Digest
- Directory単位のAtomic Save、Checksum、backup、Load直後の時刻維持
- 同一Seed・Command列を24時間再生したDigest一致
S1: 世界・建設
(x, y, layer)Cell、ZoneとFRONT/BACKの分離- Rank 1〜7の非破壊World拡張
- Occupancy、掘削、構造支持Component
- 決定的A*、Path Cache、明示Connectorと利用権限
- セル容量・密度・動的Cost、Soft Collision、混雑回避
- Cost低下・通行再開時のCache失効、権限別の正確な経路Cost、無関係な障害を除いた不到達理由
- Elevator稼働状態と有限Queue、Request/Unit二重登録防止、停止時迂回、30分停滞検知と安全復旧候補
- Placement検証、ConstructionJob、取消、完成、撤去
- 建設完了通知の保留・確定・破棄境界。完成処理の検証中は外部通知を出さず、成功時だけ順序を保って一度ずつ公開する
- 硬度別の地下掘削Job、入口までの接続、支保条件、中断再開、FRONT/BACK同時解放
- 地下施設の全Footprint掘削済み検証と、Zoneを跨ぐFootprintの拒否
- 境界施設はanchorを境界へ固定し地上側へのFootprint展開を許可、地上/地下施設は全Footprintを指定Zoneへ厳格固定
- 主要施設占有と独立して同一Cellへ共存できるROUTE/DECORATION/UTILITYの3種subslot、複数Cell横断、Path投影用query、厳密Snapshot
- ROUTE subslotの追加・置換・撤去とPath graphを原子的に同期し、失敗時の双方復元、revision/stale判定、冪等再送、隔離まで扱うAdapter
- 完成した客用通路/業務用通路を実ROUTEへ、従業員ドアを職員専用FRONT↔BACK Connectorへ原子的に投影・撤去する境界。安定ID、crosslink、exact rollback、隔離、厳密Snapshotを含む
- Runtime v6で掘削、subslot、Path投影、施設投影を1分Tick・Rank拡張・建設完了・撤去・Saveへ統合。Runtime v5の旧代理施設を決定的に実ROUTEへ移行する
- World、Path、Constructionを含むSnapshot往復
S2: 施設・在庫・物流・Mana・経済
- Facility状態の優先評価と複数reason
- 営業時間、Policy Snapshot、priority Queue、Capacity Slot
- Service開始・進行・中断・完了Callback
- owner別Inventory Stack、FEFO Reservation、期限切れ、監査修復、既定IDの再利用を防ぐTombstone
- 入力fingerprint付き冪等性、競合する一括操作の事前拒否、全件原子rollback
- Logistics Request、貨物所有権移転、決定的Dispatcher、候補外になった運搬人の予約積載保持
- 歩行Graphと独立したMana Network、優先供給、蓄電、Brownout、復旧保持
- Goldを直接代入しない複式Ledger、逆仕訳、部分返金、日次照合
- 建設費・撤去返金とLedgerの原子的Adapter
- 原料予約から施設Serviceと売上記帳までの統合Cycle
- Cycle途中のSave→Load→再実行でDigest完全一致
- §7.6のMVP施設16種をStable ID付きDefinitionとして登録・Schema検証
- 施設詳細Schema version 2を追加。静的Definitionと可変Instance/日次履歴の境界、Access、Upgrade、営業時間、Policy、環境・リスク、客層、解禁、統計、サービス種別ごとの時間・品質・価格・処理単位・欲求効果を定義し、Registryで厳密検証
- 受付、厨房、成人向け個室を詳細Schemaへ先行移行し、複数接客・BACK生産・夜間成人向け営業の3類型を自動検証。その他MVP 13施設と拡張16施設は互換Schema version 1で段階移行可能
- MVP互換性を保つ拡張施設16種を
data/facilities/expansion/へ分離して定義。地上一般向け5種、地下FRONT5種、BACK6種についてZone/Layer、建設費、Footprint、人員、容量、時間、価格、在庫、Risk Tagを固定し、通常建築パレットへの解放前に個別検証できるCatalog境界を追加
S3: 客・従業員
- 6種のGuest Need(Hunger/Sleep/Hygiene/Medical/Leisure/Intimacy)、Utility、状態遷移、実経路を1セル/分で移動
- 旧5欲求Saveだけの決定的移行、現行経路での旧Need名・欠落・混在拒否、成人確認付き昼夜Intimacy
- 所持金と未決済予約を考慮した施設選択
- Queue、Service、退出、経路失敗の安全な復旧
- Staffの複数Shift、Task Dispatcher、実移動、疲労と危険作業制約
- 雇用区分、人物別日給、ID順の日次給与入力、当日発生と繰越債務を分けた部分清算、退職者の未払給与別台帳、旧Saveの互換移行
- 清算ID/日付/入力fingerprintによる二重発生防止と、派生合計まで照合する給与履歴Snapshot
- 勤務終了、施設人員喪失、Service猶予と失敗の連動
- Guest/Staffのnamespaced Path投影、密度同期、固定小数点混雑速度、30分停滞復旧
- Guest/Staff/Facility/Inventory/Ledgerの24時間決定的再生
- 破損Snapshotと孤児参照を副作用なしで拒否
S4: 関係・Event
- Affection、Trust、Fear、Corruption、Rival Bond、Shield
- Shield攻撃、反復Penalty、段階閾値、Route Lock確認境界
- データ駆動Condition/Action/Choice
- foreground Event排他、Actor Lock、Cost escrow
- Content FilterのFADE/REPLACE/DISABLE
- 選択二重送信、Actor欠落、Action失敗、Save途中再開の安全な復旧
- Threshold発火と24時間exact replayのRuntime統合
- 配置確定前に共有施設・重複時間、Shield攻撃候補、発火可能Event、Route Lock警告、施設/時間の回避案を決定的に比較する読み取り専用Preview
S5: 行政・監査
- Heat、Suspicion、Incident重複排除、日次減衰とactive-case下限
- Evidenceの位置、視線、到達、証言、既知施設による発見根拠
- 監査予告、専用RNG、監査官の実Path巡回、到達不能時の安全退出
- 証拠点による処分、罰金の複式台帳反映、
resolution_id二重適用防止 - Authority全Command、Domain Event、Snapshot、原子的RestoreのRuntime統合
- 毎日06:00評価、途中Save、24時間exact replay
- Raid Wave、明示参加者と画面外戦力、扉・設備・目的物のラウンド更新
- 防衛Score、疲労・奇襲・複数入口、Active Skill、撤退方針、複数Wave
- Round再送、操作種別付き解決ID、外部効果/RNG rollback、厳密な時刻契約
- Cancel終了の原子反映、Wave別侵入口、防具軽減、途中Save、JSON輸送、破損Snapshot拒否
- Defense全10 Command、専用RNG、Skill費用、Staff/Facility損害、Raid排他LockのRuntime統合
- 終了Raidの履歴化と後続治療/修理、scheduled Command時刻、Runtime v1からDefense付きv2への決定的移行
S6: 保存・運用の基礎
- 正式Saveを維持する3世代Autosave
- Checksum付きRecovery候補と明示的Recovery Load
- N→N+1の連続Migration RegistryとMigration前backup
- Migration/Autosave回転中断の自己修復とRecovery候補
- 保存root・親directory・非package・package内symlink越境を全Load入口で拒否するパス安全性
- 通常Saveのrename中断マーカーと自己復旧、Autosave世代縮小時の検証済み候補だけを安全に整理
- 安定Save ID、完全Manifest既定値、Thumbnail生成と上書き時のidentity保持
- 実行画面だけが有効化する本番Autosave policyと、Test/独立Runtimeの保存先分離
- 毎日06:00の固定境界Checkpoint、3世代回転、手動保存Queue、復旧候補の検査・明示Load
- Load直後の時刻保持と、壊れたTask/終了Event Lockだけを対象とする原子的なRecovery限定修復
- 正式、backup、移行前、Autosaveの各候補をRuntime全Domainへ隔離復元し、ゲームとして成立する最初の候補だけを採用する復旧fallback
- Saveより厳しいContent FilterをLoadで弱めない安全な統合と、不明enumの厳密拒否
- Simulation、Path、Save、Load、stallの実測付き性能予算Collector
- PERF-MVP-001の正確なFixtureと24時間Harness。完全条件を3回連続24/24合格(x4 P95 8.14~8.45ms、最大停止予算も合格)。これは独立Service合成の論理負荷であり、Runtime全Domainや実描画Frameの計測とは区別する
14日運営Coordinator基盤
- 暦日は00:00に更新し、06:00に前営業日の日次締めと朝運用境界を固定順で一度だけ実行
- 需要の60分更新と30分ごとの来客計画、fixed-point carry、収容・来客上限
- DaySummary、前日差、7日移動平均、施設別損益、未払解消と3回連続破綻
- 外部Domainのcapture/validate/apply/rollback境界、14日間の省略なしexact replay、Snapshot v3と旧版移行
MVP人物・進行データ境界
- 客8クラスと種族4種を別軸にした32通りの成人確認済みGuestDefinition生成
- 自由雇用候補20人の固定ID、成人確認、役割、契約費、日給、4技能、許可業務
- ヒロイン
heroine_anriとライバルrival_raiの相互参照、固有効果、通常売却禁止タグ - 不明field/tag、重複ID、成人未確認、18歳未満、孤児参照、型の暗黙変換を全体fail-closedで拒否
- Rank 1~7の逐次条件、累計Faith/客、地上・地下稼働条件、派生MapBounds、冪等昇格Request
- World拡張用capture/apply/rollback境界、rollback失敗時の隔離、厳密Snapshot往復
- 32 Guest定義のRuntime登録、候補雇用時の契約費・日給・Shift・Pathの一括確定、重複雇用防止
- 累計Faith/累計客の実取引連動、Rank昇格とWorld/Path/GameStateの原子的確定、旧Runtime Rank 1保存の安全な移行
操作画面
- V3モックを基準にした暖色の木・革・羊皮紙UI。上部の常設HUD、左の管理カテゴリ、中央の生きたMap、右の施設Inspector、下部の建築パレットへ領域を分離
- 表層の世界樹宿と地下根域の製品向け背景アセットを導入。背景Texture、UI Palette、重ね描画Opacityを
VisualThemeProfileへ分離し、Main SceneのTheme指定だけで一括交換可能。Theme欠落時は手続き描画へ安全にFallbackする - 施設16種、管理カテゴリ6種、資源4種、表裏層・掘削・回転・保存などの操作アイコンを、実透明の4×4 Atlas Assetとして導入。UIは安定IDから
VisualThemeProfileの割り当てを取得し、画像名やAtlas座標を直接参照しないため、後からTheme単位または個別割り当てで交換可能 - 施設Iconを中央Mapの完成施設・建設中施設・配置Previewへも接続。占有CellとHit Testは従来どおりWorldServiceを正とし、Iconは占有範囲中央へ視覚的に重ねるだけなのでSimulationとSave互換性を維持する。選択中の施設/工事は右Inspectorにも同じTheme Iconを表示
- 客8クラスと従業員8役割群の成人キャラクターMarkerを実透明4×4 Atlasとして導入。客種別/従業員役割の安定IDからTheme割り当てを解決し、派生客種別はクラス接頭辞へ、未知IDは既定MarkerへFallbackする
- 外枠・木・革・羊皮紙Panel、Button 4状態、選択/警告枠、待機Badge、工事中、客/従業員経路、FRONT/BACK境界装飾を4×4 UI Skin Atlasとして導入。主要Panel、全Button、Map経路、工事中Cell、待機Badgeを意味ID経由で接続し、Theme欠落時は従来のStyleBoxFlat/手続き描画へFallbackする
- 外部の画像生成AIで正式素材を再制作するための
ART_ASSET_PRODUCTION_SPECIFICATION.mdを追加。現在接続済みの全画像について推奨解像度、Alpha、Atlas順序、生成指示、差し替え手順、納品判定を固定した - 1440×810を基準解像度として、
canvas_items/expand/fractional stretchとHiDPIを有効化。背景、施設、共通操作、人物AtlasにはMipmapを生成し、720p・1080p・1440p・4Kで同一UI構造を維持する - 上部HUDへ営業日、時刻、時間帯、来客、宿泊予定、所持金、Mana、資材、Faith、Heat、一時停止、x1/x2/x4を常設
- 実World Cell、占有、工事、施設、Guest、StaffのFRONT/BACK別描画
- PathServiceの実密度/容量から緑・黄・赤の混雑経路を描画し、FacilityServiceの実待機列をMap上の数字Badgeとして表示
- 施設選択と状態、reason、待機列、Service、配置人員の表示
- 仕様表のMVP施設16種を選べる画面下部の横スクロール建設パレット
- 回転、配置Preview、重なり等の失敗理由、建設Command
- 掘削モード、正式な費用・入口接続・支保Preview、Rank/運営gate、進捗表示、FRONT/BACK同時解放Command
- 時間、一時停止、x1/x2/x4、Event、Heat、手動Save/Load
- 本番運営の明示起動、個人AP、未払給与、前日損益、要確認/破綻状態、失敗境界の再試行表示
- 検証済み雇用候補20人の一覧。氏名、役割、勤務帯、契約金、日給、4技能を表示し、原子的な雇用Command、未払/破綻gate、二重クリック防止、即時/予約実行結果、Save済みCommand履歴からの再試行連番復元へ追従する
- foreground Eventの日本語Choiceボタン、安定した選択Command、解決後の停止解除と選択欄消去
- 1280×720、1440×810、1920×1080、2560×1440、3840×2160で、左Navigation/中央Map/右Inspector/下部Paletteの位置関係を含むLayout自動検証
統合済みの運営縦断
- 14日運営CoordinatorをEconomy/Guest/Staff/Facility/Authority/Eventへ接続し、06:00の営業日締め・朝処理、給与、未払、3回連続支払不能による破綻までRuntimeから実行する
- 人物カタログを使った自動来客・雇用時の日給と、累計客/Faith/稼働施設によるRank条件を日次運営へ接続する
- 実Simulation Tickによる24時間連続運転、選択待ち停止再開、Save復元、部分給与、破綻後no-opを受入試験で確認する
- 14日20,160分については運営境界を加速した連続/Day 7復元の一致を確認する。全Actor AIを含む20,160回の実Tick受入とは区別する
- 掘削と客用通路/業務用通路/従業員ドアをRuntime v6へ統合し、完成失敗時のConstruction・World・Path・通知を一括で戻す
MVP垂直スライスとして残る範囲
現在は、安全に保存・再生できる「操作可能なSystem縦断」であり、14日MVPの内容完成ではない。次の範囲は引き続き必要となる。
- 全Actor AI、全Event、監査、経路移動を含む20,160分の実TickによるS14-CORE受入
- ユニーク2人の配置・接触判定と、そこから生成する14日Event列
- 通常隣接Edgeを安全に抑制する垂直Topologyと、客用/業務用昇降機
- 配置と同一Shiftから関係Event候補を生成する接触判定と事前リスクPreview
- 夕方混雑、FRONT/BACK比較、健全/地下収支を直接比較するScenario Test
- 100客・30従業員の実描画Frame試験
- 製品用アート、音響、物語本文、完全なチュートリアル、バランス調整
実行方法
make test
make check
make run
試遊の手順は PLAYTEST_GUIDE.md、仕様とTestの対応は TEST_MATRIX.md を参照する。各Systemのテストは画面Nodeに依存せずheadlessで実行でき、新しいSystemを追加する際はSnapshot、Atomic Restore、決定性Testを同じ変更に含める。
14日受入の共通Fixtureと数値境界は MVP_ACCEPTANCE_SCENARIOS.md に固定する。