発見物の行き渡りレポートの読み方

数値は stats/discovery_coverage.yaml にあります。 tests/diagnostics/discoveryCoverageStatsReport.test.ts が、定義(src/assets/world-codex/*.yaml)から 島を生成して数えたものです。土地の発見物(locations.yaml の explore)・型の札(tags)・生成の定義 (terrain_generation.yaml)を変更したら再生成します。

npm run stats:discovery

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

YAMLの節

unit は、そのレコードの測定値の単位です。件数(seeds・islands・objects・tags)は単位を 持ちません。

節 中身
meta 回した種の数、数えた島の数、探索で見つかる型の数、そのどれかが持つ札の数
object_sources 探索で見つかる型ごとに、その型が持つ札と、その型を出す土地の型
tag_sources 札ごとに、その札を持つ、探索で見つかる型
island_missing_object 型ごとに、その型を出す土地が1つも無かった島の割合
island_missing_tag 札ごとに、その札を持つ型を出す土地が1つも無かった島の割合

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

何のための数か

SkillSystem.md 3節の発見——探索で物に出会うと腕前が伸びる経路 ——を、型を名指しで書くか、札で束ねて書くかを決めるための数です。名指しで書いた契機は、その型を 出す土地が1つも生成されなかった島では契機ごと消えます。札で束ねれば、束の中のどれかが出れば済みます。

island_missing_object が前者の取りこぼし、island_missing_tag が後者の取りこぼしです。

2つを束ねた1つの数は出しません。 束ねるには「どの札なら契機に使うか」を先に決めることになり (item・fixture のような置き場所の札まで混ぜた合計は、書き方の比較にならない)、それはこの表が 出さないと決めている判定そのものだからです。比べるのは、同じ腕前へ配るつもりの型と札の行どうしです。

計測方法

数え方の線は src/analysis/discoveryCoverage.ts の冒頭が持ちます。

土地の取りこぼしとの関係

ある型が島から消えるのは、その型を出す土地の型がすべて生成されなかったときだけです。土地の型 ごとの取りこぼしは stats/island_escape_reach.yaml の island_missing_location にあり、object_sources の locations がその行を引くキーになります。 ただしそちらの割合を掛け合わせてこちらは出せません——土地の型の生成は互いに独立ではないので (同じ島に密林と荒野が同居しにくい、など)、同時に欠ける確率は周辺分布からは出ません。

このレポートは判定を出さない。 この取りこぼしを許すか、札を新設して束ねるか、発見物の配りを 変えるかを決めるのは、この数字を見てからです。