開始地点の立ち上がりレポートの読み方

数値は stats/startup_reach.yaml にあります。 tests/diagnostics/startupReachStatsReport.test.ts が、定義(src/assets/world-codex/*.yaml)と 生成された島だけから計算したものです。locations.yamlの発見物かterrain_generation.yamlを 変更したら再生成します。

npm run stats:startup

この文書は手書きで、再生成しても書き換わりません。 持つのは読み方——何を測ったか、どこに線を 引いたか、何を数えていないか——だけです。数値そのものは1行も書きません(書けば、再生成した YAMLとずれます)。

YAMLの節

unit は、そのレコードの測定値(mean〜max・share・expected・path_discovery)の単位です。 件数(n・seeds・islands・sites)は単位を持ちません。measure は何を測ったかで、 hops(歩数)・travel(移動時間)・path_discovery(探索時間)です。

分布のレコードは mean・min・median・p95・max・sd(標準偏差)・n(標本数)を持ち、 標本が足りずに決まらない数は null です。

節 中身
meta 回した種の数と、数えた島・サイトの数
need_sources 要るものが、どの土地のどの発見物から、1回の探索あたり何個採れるか
location_supplies 土地の型ごとの、採れる要るものと、道が全部出そろうまでの探索時間
site_reach_by_need 全サイト × 要るものごとの分布
site_unreachable_by_need 要るものごとの、島のどこをたどっても届かないサイトの割合
site_all_needs 全サイトの「全部が揃うまで」の分布
site_all_needs_hops_histogram 同じものの歩数の割合(or_more: true の行は「その歩数以上」)
site_last_need 全サイトで、最後まで残った要るものの割合
site_all_needs_hops_by_start_location 始めた土地の型ごとの、全部が揃うまでの歩数
island_start_site 島ごとに選抜が選んだ開始地点の、「全部が揃うまで」の分布
island_start_site_hops_histogram 同じものの歩数の割合
island_start_site_by_need 同じサイトの、要るものごとの分布
island_missing_need 要るものごとの、島のどこでも採れない島の割合
island_start_site_unreachable 開始地点からでも届かない要るものがある島の割合
island_start_site_locations 開始地点の土地の型の割合

この表とYAMLが食い違うと npm test が赤くなります。 表に挙げた節がYAMLに在って空でないことと、 表に無い節がYAMLに無いことの両方を、生成元のテストが見ます。

計測方法

このレポートは判定を出さない。 開始地点を選ぶ順はドメイン側(ContentSkeleton.md 2.3節)が持ち、 ここはその結果を測るだけ。どの散らばりなら広すぎるか(同2.3.3節)は、ここの数字を見てから決める。

要るものの出どころ

need_sourcesはlocations.yamlのexploreの実測。1つの土地では揃わないことがこの節の要点で、 どの土地が何を持つかはlocation_suppliesのneedsが持つ(ContentSkeleton.md 2.3節)。

location_suppliesのpath_discoveryは、その土地の道が全部出そろうまでの分数(上の「計測方法」参照)。

サイトごと

site_で始まる節は、全島の全サイトをまとめた分布。島の作りそのものの全体像で、選抜 (ContentSkeleton.md 2.3節)が選ぶのはこのうち漂着できる地点だけ。

site_all_needs_hops_by_start_locationの砂浜の行は、選抜を通さずに砂浜から始めた場合の分布。 選抜を入れた後との差はisland_start_siteとの比較で読む。砂浜が1つも無い島では候補が外周の海岸へ 落ちるので、その島の開始地点は岩海岸・岸壁の行のほうに現れる(砂浜の出る島の割合は stats/terrain.yamlのlocation_type_counts)。

島ごと

island_で始まる節は、その島で選抜が選んだ開始地点の値。島は引き直さないので (ContentSkeleton.md 2.3.1節)、引きの厳しい島でもここから始まる——この分布の 散らばりが、選抜をしても引きで決まってしまうかどうかの材料になる(同2.3.3節)。

選ぶ順は「届かない数 → 全部が揃うまでの歩数 → その移動時間 → サイトのindex」で、良し悪しの 判定ではなく順序の定義(src/domain/generation/StartSiteSelection.ts)。探索時間は選ぶ材料に 入らない——難易度を切るのは歩数だけ(同2.3.2節)。

island_start_site_by_needは、歩数がほとんど動かないときに散らばりが移動時間と探索時間の側へ 出ることを見るための節。