工場が大きくなるとUPS(Updates Per Second)が低下して、ゲームがスローモーションになることがあります。Factorioには原因を特定するデバッグツールが内蔵されています。使い方を解説します。

FPSとUPSの違い

指標意味依存する要素
FPS画面の描画回数/秒グラフィック性能(GPU)
UPSゲーム内シミュレーションの更新回数/秒工場の規模・複雑さ(CPU)

通常はどちらも60で同期しています。カクつきや遅延の原因はほぼUPS低下です。

デバッグ画面の表示方法

  1. F4キーを押して「Debug settings」を開く
  2. 以下の3つを有効にする:
    • show-fps — 画面右上にFPS/UPSカウンターを表示
    • show-time-usage — 各システムの処理時間を表示
    • show-entity-time-usage — エンティティ別の処理時間を表示

処理時間の読み方

画面右側に表示される数値は、1ティックあたりの処理時間(ミリ秒)です。60UPSを維持するには、全処理の合計が16.67ms以下である必要があります。

注目すべき項目

項目何の処理か重くなる原因
entity_update組立機・インサーター・採掘機等設置数が多い
transport_linesベルト上のアイテム移動長いベルト・大量のアイテム
circuit_network回路ネットワーク大規模・複雑な回路
fluids液体(水・石油・溶岩等)長いパイプ・多数のポンプ
electric_network電力ネットワーク大量のソーラー・蓄電池

数値が大きい項目がボトルネックです。平均時間(1列目)が持続的な遅延、最大時間(3列目)が瞬間的なカクつきに対応します。

項目別の改善策

entity_update が重い場合

  • ビーコン+モジュールで施設数を削減 — 最も効果的。施設が半分になれば処理も半分
  • インサーターの数を減らす — スタックインサーターに置き換え、1本で済むなら1本に
  • 不要な施設を撤去 — 稼働していない組立機は処理を消費している

transport_lines が重い場合

  • 長距離ベルトを列車に置き換え — ベルトは全長に比例して負荷が増加
  • 不要なアイテムがベルトに乗らないようにする
  • ベルトの本数を最適化

circuit_network が重い場合

  • 回路を単純化 — コンビネーターの数を減らす
  • 不要な回路接続を撤去
  • 電柱の回路接続を確認 — 意図せず接続されていることがある

fluids が重い場合

  • パイプを短くする — ポンプで区間を区切る
  • 液体輸送を列車タンクに切り替え
  • 原子力発電を縮小してソーラーに移行 — 蒸気の流体計算が不要に

まとめ

F4show-time-usage が全ての出発点です。「なんとなく重い」で終わらせず、数値で原因を特定してピンポイントに対策しましょう。メガベースの最適化について詳しくはメガベース構築ガイドも参考にしてください。