ようこそ! Happa, Anonymous 火曜日, 10月 27 2026

DEVELOPMENT SNAPSHOT #67 — 国の荷は空を飛ぶ:国営ドックの空路と、陸路との損益分岐

海が毒に覆われたこの世界では、遠くへ荷を運ぶ標準の手段は空です。安全な高度を選んで飛ぶ飛行艦船が、ドック(航空拠点)から発着します。ところがこれまでのゲームでは、空路を使えるのは軍需品だけで、国の備蓄や国営工場の原料は、陸路(条件の整った区間だけ海路)で運ばれていました。

今回の開発(WLD-007 の段階 2a、6回のコミット)で、国の貨物にも空路を開きました。国営ドックどうしを結ぶ空路を自動でつくり、「陸路で運ぶか、陸→空→陸で運ぶか」を運賃と損失の両方で比べます。空の便が取れなかった日にどこまで待つか、新しく始めたゲームの各国にどこまでドックと輸送機を用意するかも決めました。

この記事の数値は開発中の採用値(校正版2)で、今後の調整で変わる可能性があります。

空路は国営ドックどうしを結ぶ

空路は、同じ国の稼働中の国営ドックの全組から自動でつくります。経路は自国の州と海の上だけを通る最短の道筋で、他国の領空は通りません。領空の通過許可を保存する仕組みがまだ無いためです。自国の空だけで結べない組には空路をつくらず、直線距離で補うこともしません。

空路の一覧はセーブデータに保存せず、地図とドックの状態から毎回同じ結果を導き、メモリに置いて使い回します。国境が変わったり、ドックが壊れたり、州が占領されたりすると、それを入力の変化として検出して作り直します。

実際に日次の物流へつなぐ前に、空輸の予約・到着・荷役の処理で地図のデータ全体を複製していた箇所と、予約一覧を毎回全件たどっていた箇所を、件数に比例する索引に置き換えました。空路を使う貨物が増えても、毎日の計算が重くならないようにするためです。

「陸→空→陸」と陸路を、運賃と損失で比べる

対象は国の貨物、つまり政府の備蓄の調達と、国営設備への原料の補充です。発送する州から出発ドックまでを陸路で、ドック間を空路で、到着ドックから届け先の州までをまた陸路で運ぶ経路を、従来の陸路(条件付きの海路)と並べて比べます。民間の貨物は、これまでどおり陸路と海路だけを使います。

比べる最初の鍵は、運賃に「損失の期待額」(国際価格×損失率)を足した額です。空の便は、陸路のように道中で盗賊などに荷を奪われることが少ないためです。資源1単位あたりの比較は次のとおりです。

  • 30km:陸路 0.06(損失0.3%)/空路 0.065(損失0.06%)
  • 100km:陸路 0.20(損失1.0%)/空路 0.17(損失0.2%)
  • 400km:陸路 0.80(損失4.0%)/空路 0.62(損失0.8%)
  • 800km:陸路 1.60(損失8.0%)/空路 1.22(損失1.6%)

空路の運賃は1kmあたり0.0015に、出発と到着のドックの荷役(各0.01)が加わります。運賃だけでも約40kmより遠ければ空路が安く、損失を含めるとさらに短い距離から空路が有利になります。速さも違い、空路は1日800km、地域をまたぐ陸路は1日100kmです。

最初の値では、空路は選ばれなかった

最初の校正版1では、ドックの荷役を各0.10とし、陸路との損益分岐は約400kmでした。ところが、実際の初期データの資源の価格(国際価格0.64〜2.79)は運賃に比べて小さく、損失の差だけでは空路が選ばれませんでした。そこで校正版2ではドックの荷役を0.01に下げ、ドックでの荷役の損失もなくしました。空路の損失(1kmあたり0.00002)は、どの距離でも陸路(1kmあたり0.0001)より少なくなります。

実は、このあと一度つまずいています。校正版2をまとめたとき、PCへ渡した変更が荷役を下げる前の版だったため、荷役が0.10のまま取り込まれていました。次のコミットで承認済みの0.01に直し、文書とテストも同じ値にそろえています。

運賃だけを見ると、空路がわずかに高い組もあります。ヴァルザ帝国の開始時のドック間では、空路183kmの運賃0.344に対して、陸路169kmは0.339です。それでも損失率が0.61%と1.69%なので、損失の期待額を足すと空路が安くなります。初期データの開始時のドック間では、26種類の資源すべてが空路を選びます。

便が取れない日は、待つか、陸路に切り替えるか

空路を選んでも、ドックの荷役能力が足りない、空いている輸送機が無いといった理由で予約が断られる日があります。その日にすぐ陸路へ切り替えることはせず、貨物は送らずに要求として残し、翌日から毎日空路を予約し直します。

陸路へ切り替えるのは、待った日数が「陸路の所要日数−空路の所要日数」(最小1日)に達した日です。つまり、それ以上待つと空路で送っても陸路より早く着かなくなる日です。陸続きでない離れ島への貨物は、地上の経路が無いので空路を待ち続けます。待ちの記録は待っている貨物があるときだけ保存し、待ちの無いセーブデータの形は変えていません。

新しく始めたゲームの、各国のドックと輸送機

既定の初期データには国営ドックも輸送機もありませんでした。このままでは空路が一本もできないため、新規ゲームを始めたときだけ、主要4か国にそれぞれ2つの国営ドック(首都のリージョンともう1つのリージョン)を置き、各ドックに輸送機を1機、合わせて8機を配ります。ドック間の空路の距離は、風守りの諸邦が約147km、オルセア諸侯国が約271km、トゥレム連邦が約169km、ヴァルザ帝国が約183kmです。

輸送機の型式が任務で飛べる距離は240kmですが、これは校正版1の損益分岐(約400km)より短く、貨物便が成り立ちません。そこで貨物を運ぶときの航続距離は1200km(1日800kmで2日以内)とし、任務やガンシップの航続の判定は従来どおり型式の値を使います。これらの配置は新規ゲームの開始時に一度だけ行い、保存データの読込みでは機体を増やしません。

まだできていないこと

民間の貨物と民営ドックは、まだ空路を使いません。生成した空路には天候・空路の容量・領空の通過権がまだ無く、他国のドックとも結びません。また、既定の新規ゲームの最初の31日間の計測では、国の貨物を空路で発送する場面はまだ起きていませんでした。どの時期から空の便が実際に飛び始めるかは、これから確かめます。

空路を担う機体:Ashwind Chronicle 開発者ブログ #32 — 空路をつくる三機

輸送が数字を動かす例:DEVELOPMENT SNAPSHOT #48 — 条約の数字は輸送で動く:年次貿易枠の消費と返却

前回の記事:DEVELOPMENT SNAPSHOT #66 — 福祉の予算を6つの制度へ配る:就労支援と高齢者介護

ダウンロードページで、現在公開されているファイルと開発状況を確認する