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

DEVELOPMENT SNAPSHOT #59 — 暦は計算待ちで止まらない:確定前の今日の天気を読む

日付は進んだのに、暦の天気だけがまだ前の日を指している——そんな一瞬をなくすため、Ashwind Chronicle の暦は、最後に確定した天候履歴がある場合、今日の天候データが確定する前でも最後の確定日から今日までを読み取り専用の作業データで計算して表示します。表示を先回りさせても、保存中の世界を勝手に進めない、小さな読み取り機能です。

以下は実際のDebugビルドから撮影したQA用画面例です。天候の表示例は検証用に設定した状態で、通常セーブの現在値を示すものではありません。

暦が先に「今日」へ着くとき

天候の確定を含む日次処理はバックグラウンドで計算され、あとからゲーム状態へ反映されます。そのため、処理中にはゲーム時計の日付に対して、保存済みの天候状態が一日以上遅れていることがあります。確定済みの今日の天候があれば、暦はもちろんその値をそのまま使います。問題は、まだ今日の分がない時間帯です。

暦を空欄にしたり、季節だけの表示へ戻したりするのではなく、最後に確定した天候から今日までをたどって、その日の表示を求めます。

Debug画面の晴天表示例。暦の右上に日付、時刻、天候が並びます。

同じ日次ルールを、別の作業データで

CalendarWeatherReader は、最後に確定した日から今日まで、通常の日次処理と同じ DailyWeatherService.Advance を一日ずつ呼び出します。世界の種、地域、日付、前日の状態を使うので、別の天気ルールを作るのではなく、確定時に使われるルールを表示用に再生します。発生中の嵐など、イベントによる割り込みもこの読み取りの対象です。

大事なのは「別の作業データ」で行うこと。確定済みの天候状態を複製して作業用のビューを組み立て、そのビューを進めます。セーブ対象の文書そのものは変更しません。予測表示を見ただけで天候や日次経済を確定させることはありません。

Debug画面の雨天表示例。天候の種類と強さに応じた暦の表示を確認できます。

今日の結果が後から確定したら、次の読み取りでは確定済みの状態が優先されます。未確定の間に作った表示用結果は、文書・天候状態の参照、状態数、日付、世界の種を使ってキャッシュし、これらの入力が変われば作り直します。

予報ではなく、今日の表示をつなぐ

この仕組みは数日先の天気を予報する機能ではありません。バックグラウンド処理の完了を待つ短い時間にも、暦で「今日」を読めるようにするためのつなぎです。晴れ・雨・嵐の画面例は、実際のDebugビルドで表示経路を確認するために設定したQA状態です。

Debug画面の嵐表示例。表示確認用の状態であり、通常セーブで発生中の嵐を示すものではありません。

資源の受給傾向を日々の揺れから読みやすくする表示については、DEVELOPMENT SNAPSHOT #57 もご覧ください。どちらも、世界の計算結果そのものを水増しするのではなく、確定した情報をプレイヤーが読み取りやすく届ける工夫です。

次に暦を開いたとき、天気は単なる飾りではなく、日次処理が進む世界の小さな窓になっています。