ようこそ! Happa, Anonymous 水曜日, 10月 14 2026

DEVELOPMENT SNAPSHOT #54 — 仕事を一人ずつ数える:職業と地域へ雇用を配る

人口を一人ずつ数えられても、仕事を地域へ割り振るときには端数が生まれます。今回は、職業別・地域別の雇用を実人数で保ちながら、配分の合計を崩さない仕組みを、実際のDebug画面と回帰テストから見ていきます。

前回のDEVELOPMENT SNAPSHOT #53では、人口が年齢階級を移り、出生と死亡で変わるところを追いました。今回は、その人口が「どんな仕事を、どの地域で担うか」に焦点を移します。人口統計と雇用統計は別々の数字ではなく、同じ人々を違う角度から見たものです。

ゲーム内の人数は、表示上は「千人単位(K)」で扱われます。しかし、雇用枠へ配る人数は一人未満にはできません。たとえば0.005Kは5人です。これを3つの同じ大きさの地域プールへ分けるとき、各地域を独立して丸めれば、合計が4人になったり6人になったりする危険があります。

端数を合計に戻す

そこで配分では、まず各枠の整数人数を求め、残った人数を配分全体の合計が一致するように割り当てます。回帰テストでは、0.005Kの拘束労働を3つの同じ地域プールへ分けるケースを固定し、結果が0.002K、0.002K、0.001Kとなり、合計0.005Kを保つことを確認しています。表示単位はKのままでも、個々の配分は実人数に対応します。

職業別の内訳でも、階層の人口・労働力・扶養者・疾病などを分けて計算したあと、全体の合計が元の人口と一致することをテストしています。失業者数も独立に丸めて作るのではなく、配分結果との関係が崩れていないかを確認します。これは見た目の調整ではなく、地域や職業の数字を読み解く前提になる整合性です。

画面で見える内訳

次の画像は、Debugビルドで実際に開いた国家分析画面です。年齢別人口、労働力・就業者・失業者、階層別の雇用、右側の職業別内訳が同じ画面に並びます。この記事はその時点のテスト用セーブのスナップショットであり、値はすべての国家に共通する固定値ではありません。

さらに概要画面では人口と経済の指標を広く確認できます。雇用だけを見るのではなく、人口や生産の全体像と往復して、どの数字がどの内訳につながるかを追える構成です。

今回確認できたこと

実装とテストで確認した範囲は、(1)地域・職業への配分が実人数であること、(2)端数を配分全体に戻して合計を維持すること、(3)各階層の内訳合計を元の人数に一致させることです。将来の雇用政策や新しい職業がすでに完成した、という意味ではありません。ここで紹介しているのは、現時点の人数配分とその回帰テストです。

年齢構成の変化を扱った#53の記事とあわせて読むと、人口から仕事へ視点がつながります。ゲームの開発版はDownloadsで確認でき、制作を応援したい方は支援ページをご覧ください。