全国オンライン対応受付 平日 9:00-18:00
お問い合わせ

開発記録 / DX経営ゲーム制作記 / Vol.2 ゲームエンジン設計

記事 08

9ステップのターン計算エンジンを設計した話

ターンを進めるたびに何が起きるか。これを「処理の順番」として定義することが、ゲームエンジン設計の核心だ。順番が違えば、計算結果が変わる。最終的に9つのステップに整理した。

2026-06-02 公開

ターンを進めるたびに何が起きるか。これを「処理の順番」として定義することが、ゲームエンジン設計の核心だ。順番が違えば、計算結果が変わる。最終的に9つのステップに整理した。

Step1: イベント値決定 / Step2: 借入・返済反映 / Step3: 原材料仕入 / Step4: 生産(製造原価計算)/ Step5: 販売前費用計算 / Step6: 市場競争力計算・需要配分 / Step7: 売上・原価・保管費計算 / Step8: 資産・自己資本更新 / Step9: 破産判定


「順番」が意味を持つ

Step2で借入を先に処理する理由がある。「このターンで借りたお金を、このターンの仕入れに使える」という現実を再現するためだ。Step4で生産コストを先にキャッシュアウトする設計にも理由がある。製品を作るためには先にコストが発生する。売れるかどうかわからない状態で先にお金を使う——これが製造業のリスクだ。この順序が「生産しすぎたら現金が先になくなる」という体験を生む。


AIとのデバッグで気づいた設計ミス

最初のバージョンに設計ミスがあった。労務費をStep5の「販売前費用」に含めていたが、本来労務費は製造コストの一部でStep4に含めるべきだった。「在庫が残っているのに、製造原価報告書の数字が合わない」という現象でAIとデバッグして発見した。

修正したコードの変更量は50行程度だが、ゲームのバランスは大きく変わった。

ステップ順序の失敗談:「なぜ数字が合わないのか」

9ステップの設計に至るまでに、少なくとも3つの重大な「ステップ順序の失敗」があった。

失敗1:借入処理をStep7(売上計算後)に置いていた

最初の設計では、借入・返済の処理を「売上が確定した後」に行っていた。「今ターンの売上収入が分かってから、追加で借りるかどうか判断する」という直感的な順序だ。しかしこれは「このターンで借りたお金を、このターンの仕入れに使えない」という問題を生んだ。資金が足りないので仕入れを減らす→生産が少ない→売上が落ちる、というサイクルが発生した。借入処理をStep2に移し、「最初に資金調達してから仕入れる」という現実の製造業の資金フローに合わせた。

失敗2:破産判定をStep6(市場競争後)に置いていた

「市場競争の結果、現金がマイナスになったら破産」という判定だった。しかし売上収入を受け取る前に破産判定が走るため、「売上で回収できたはずなのに破産した」というケースが発生した。参加者から「さっきまで現金があったのに、いきなり破産した」という苦情が出た。売上収入を含む全ての計算が終わったStep8の後に移動した。

失敗3:保管費をStep3(仕入れ直後)に計上していた

「仕入れたらすぐに保管費がかかる」という設計だった。しかし実際の会計では、在庫保管費は「期末に残った在庫」に対してかかる。売れた分の保管費を払う必要はない。Step7(売上計算後)に残在庫を確定してから保管費を計算する設計に変えた。これだけでゲームバランスが改善した。

9つのステップはそれぞれが独立しているように見えて、強い依存関係がある。順序を一つ変えると、複数のパラメータが影響を受ける。「なぜこの順序なのか」を説明できない設計は、後から必ず問題を起こす。


*次回は「イベントシステムはこうして生まれた」*

Step5(労務費)の配置ミスの発見から修正まで

最初の設計では、労務費をStep5「販売前費用計算」の中に含めていた。「生産・販売に関わる費用をまとめて処理する」という意図だったが、会計処理として誤りがあった。

問題が発覚したのは「在庫残量と製造原価報告書の数値が合わない」というバグを追っているときだ。在庫が30個残っているのに、製造原価報告書では40個分の労務費が計上されていた。

原因を追うと、Step5で「全製造数分の労務費」を計上していた。しかし実際の製造原価計算では、在庫として残った分の費用は「在庫資産」として残り、売れた分の費用のみを「売上原価」として計上する。労務費がStep5(売上確定前)にあると、在庫分の費用まで全額計上されてしまう。

修正はStep4(生産処理)の中に労務費計算を統合した。製造数×単位労務費として計算し、在庫になった分は棚卸資産として繰り越す。変更したコードは約50行だが、財務諸表の数値が会計として正確になった。この修正後、参加者から「利益計算の根拠が分かった」というフィードバックが増えた。

9ステップの設計で最も時間をかけたのはStep6「市場競争力計算」だ。スコアの二乗配分ロジックが、各社の競争スコアをどの時点で確定するかに依存した。Step3〜Step5が完了して初めて各社のコスト構造が確定し、そこから競争スコアを計算する。「正しい順序」は計算の結果を左右するだけでなく、「経営の因果関係」を正確に再現する。

*シンプルシステム株式会社 代表 伊藤勝彦*