85 lines
8.6 KiB
Markdown
85 lines
8.6 KiB
Markdown
# P2 明示階段・車内密度・同需要比較
|
||
|
||
2026-09-09、ローカル正本、Godot 4.7.2。D-036に対応する追加実装。P2全体・自然来客の離脱改善・S14総合受入の完了ではない。
|
||
|
||
## 実装範囲
|
||
|
||
- 新しい宿は階段か昇降機で階間を移動する。客用/業務用階段を通常予算、建築パレット、Kenney Tiny Dungeonの階段アイコン、断面、接続階の詳細へ接続。
|
||
- 1階150cost・1.5ゲーム分。2階分を3分で移動し、階段途中の1000creditを保存・再生できる。
|
||
- 下部足場を先に完成させる。上部階段や建設中の階段が使う足場、人物が立っている階段・通路の撤去は事前拒否する。後段でもActor/Path所有の整合を検証する。
|
||
- 旧Runtime v8/Path v4等は正当な旧構造を検証後、一度だけ上下通路を既設階段へ移行。従来の速度と権限を維持し、足場を撤去した後には自動再生成しない。
|
||
- BOARDEDの実Actorを床の混雑密度から除外。QUEUEDは乗場へ数える。旧保存は旧方式の密度が正しいことを検証してから移行する。
|
||
- 昇降機詳細の平均・P95待ちは保持中の直近256出来事から過去60分の乗車を抽出したサンプル。全期間の集計とは表示しない。現在の最長待ちは実待機者全員から算出。
|
||
- 開業ガイドは実際の入口から客室の左右の入口へ到達できるかをGuest AIと同じPathで確認する。施設の既定accessフラグだけで案内を先へ飛ばさない。上階への道が足りなければ客用階段を案内する。
|
||
|
||
## 48人の設備比較
|
||
|
||
`make test-transport-comparison` で二種類の検証を実行する。評価対象は同じ固定需要であり、自然来客の料金・目的選択AIによる需要ではない。
|
||
|
||
両者の共通条件:
|
||
|
||
- Seed `806042`、48人、480ゲーム分(実Runtimeは絶対時刻670~1150)。同じ到着時刻列と目的地。
|
||
- 需要SHA-256 `5bafa62275370c2a6ce5b4d4f283c3d7679c679a2b3fc6b054b681f2647456cf`。
|
||
- 共通出発 `(2,0,FRONT)` → 共通到着 `(2,1,FRONT)`。最短の徒歩は両側とも乗場まで2歩+降車後2歩。
|
||
- 1台の客用昇降機を、同じ仕様の客用昇降機2台へ増やす。別々の昇降路であり、同じ昇降路の複数かごではない。
|
||
- 実Runtime版は通常初期予算5000G・資材50から通常建設する。既存2×2客用モジュールと上階通路2セルを使う。1台側1540G・資材15・維持魔力需要5、2台側3040G・資材30・維持魔力需要10。
|
||
- 到着を観測後、通常begin_leaving/despawn_guestで退出させ、完了者を後続の渋滞に残さない。
|
||
- P95は観測済み全員のnearest-rank。未到着を黙って集計から落とさず、未完了人数を別記し、両側の全員完了を改善判定の条件にする。
|
||
|
||
### 実GuestRuntime・実混雑による結果
|
||
|
||
| 指標(ゲーム分) | 1台 | 2台 |
|
||
|---|---:|---:|
|
||
| 平均の乗車待ち | 105.60 | 23.58 |
|
||
| 乗車待ちP95 | 197 | 48 |
|
||
| 出発~最終目的地の総移動P95 | 224 | 73 |
|
||
| 完了/需要 | 48/48 | 48/48 |
|
||
| 未完了 | 0 | 0 |
|
||
| 実歩数の平均 | 4.00 | 4.25 |
|
||
| 実歩数の最大 | 4 | 8 |
|
||
| 迂回した人数 | 0 | 5 |
|
||
| かご別利用人数 | 48 | 23/25 |
|
||
|
||
総移動P95は67.4%短縮した。2台側では5人が動的な混雑評価で乗場を選び直し、4人が6歩、1人が8歩を歩いた。その時間も上表へ含む。経路を固定して迂回を隠す処理や特別な階間遮断をRuntimeへ挿入していない。
|
||
|
||
`test_runtime_transport_comparison.gd` は **51項目合格**。同一構成の全区間再生に加え、QUEUED/BOARDINGの各checkpointから12分間の全Runtime Snapshotと全観測traceが完全一致する。記録は `artifacts/transport/runtime-comparison.json` と `runtime-comparison-{1,2}-trace.json`。
|
||
|
||
### Path+かごの部品比較
|
||
|
||
`test_transport_comparison.gd` は **30項目合格**。同じ需要で、到着時に選んだ経路を保持する部品検証。乗場到着時に初めて乗車要求を出す。全員4歩で、待ち平均105.60→28.44分、待ちP95 197→49分、総移動P95 224→75分、両方48人完了、2台利用26/22人。実Runtimeの毎分再経路選択を含む上表とは分けて扱う。部品版の結果は `artifacts/transport/path-comparison.json`。
|
||
|
||
## 保存・異常系・操作の検証
|
||
|
||
| テスト | 合格項目 | 内容 |
|
||
|---|---:|---|
|
||
| Path vertical policy | 34 | 全階間WALK禁止、Connector・権限・旧版・経路復旧 |
|
||
| Path transit density | 46 | 車内除外、待機密度、降車/取消/退出、旧版の密度検証 |
|
||
| Stair infrastructure | 106 | 定義、階段接続、下部足場、原子的な投影・撤去 |
|
||
| Legacy stairs | 85 | 一回移行、旧権限、再生成禁止、所有不整合、部分失敗・隔離 |
|
||
| Runtime stairs | 65 | 通常建設、実1.5分、途中保存、旧v8、占有中の撤去拒否 |
|
||
| Transport density migration | 36 | 4人乗車+1人待機の真のv8保存移行、全5人の保持、各到着1回、Event rollback |
|
||
|
||
`make test-stairs`、`make test-transport`で再現する。UIの階段・旧接続・待ち統計、既存PaletteとPixelの検証も含む。画像は `artifacts/transport/stairs-inspector.png`、`elevator-inspector.png`、`pixel-stairs-demo.png`。新ガイドの画像は `artifacts/first-operating-day/stairs-guidance.png`。
|
||
|
||
## 残る確認
|
||
|
||
- 固定需要の1階分比較では自然来客の離脱や満足低下を評価していない。未完了0→0を離脱改善と読み替えない。
|
||
- 4停止階の自然乗降は別の既存受入があるが、多階層の同需要混雑比較やS14の夕方/BACK物流条件とは別。
|
||
- 途中階の相乗り、同一昇降路の複数かご、帰宅経路、3階以内で階段を優先する特別規則は未実装。
|
||
- 2台側で乗場を選び直して戻る動きが5人に出た。短期的な経路安定化は後続の改善候補。
|
||
- 旧階段は互換のため1階100costを保持する。新設階段の150costと速度が異なる。
|
||
|
||
## 最終回帰と通常営業
|
||
|
||
- `make check test-transport` が成功終了。Editor読込、通常起動、階段・かご・実通勤・保存・撤去境界・自然来客の4停止階乗降にSCRIPT ERRORなし。追加した待ち統計の実イベント検証も36項目成功。
|
||
- 既存S0・S1・S2・S3・S4・S5・MVP・acceptanceとUI・営業の各対象が成功。S3は714項目、上下迂回の旧テストは通常建設の階段を使う91項目へ更新した。旧版固定データは新設フィールドを除いて正当な旧形状を作る。
|
||
- `make test-stairs test-supply test-s6` が成功。最新の追加撤去・閉塞・旧版偽装検証は別途 `runtime-stairs.log` の65項目、Legacyは最終85項目、旧供給保存は最後の独立再実行で20項目。途中の古いテスト件数と混同しない。
|
||
- **通常初期予算・明示階段で3営業日49項目合格**。食堂売上3000G、宿泊1200G、受付収入0、原材料配送30便・料理配送72便、残金2855G。3日すべて未払0・決算balanced=true。途中配送の専用ディスク保存と再生、最後の全Snapshot復元も成功。
|
||
- 3日間のデータは `artifacts/supply-chain/normal-play-report.json`。前のv8時点の `artifacts/transport/normal-supply-3days.json` は履歴として残し、この結果の根拠にはしない。
|
||
- 開業ガイドの実経路修正後は初日描画・営業・保存復元が41項目成功(通常37+画像4)。宿泊240G、現金3540G、未払0、決算一致。施設のaccess_available全体を地形から毎分再設定する変更は行わず、Guideと実Guestの到達判定を揃えた。
|
||
- Pixel238、Main121、従業員46、商品37、営業55、昇降機20、新階段UI25を確認。階段付き見学、ガイド保留、実乗客の車内表示と床との重複除外を実描画でも確認。
|
||
- 性能のDigest71項目とDomain smoke24項目が成功。これは実UIのfps、全Actorの14日20,160tick、Windows実機性能の証明ではない。
|
||
- 最新試遊は `artifacts/transport/stairs-final-preview.log` の35項目と `TRANSPORT_PREVIEW_READY` を確認。4停止階の自然な最初の乗車へ戻して停止し、Spaceで再開できる。試遊の通常保存は無効。
|
||
|
||
主なログは `artifacts/transport/stairs-final-transport.log`、`stairs-density-migration.log`、`runtime-stairs.log`、`stair-supply-save-regression.log`、`stairs-regression-*.log`。検証ログ・PNG・JSONはローカル `artifacts/` に残し、ソース用Git bundleには含めない。
|