Factorioで工場が巨大化すると、ある時点でゲームが「重く」なり始めます。画面上のFPSではなく、UPS(Updates Per Second)が低下しているのです。UPSはFactorioのゲームロジックが1秒間に何回更新されるかを示す指標で、通常は60UPSを維持することが目標です。この記事では、UPS低下の原因を体系的に理解し、60UPSを維持するための具体的な設計術を解説します。
なお、UPSの低下原因をデバッグメニューで特定する基本的な方法については、Factorioパフォーマンス診断ガイド:UPS低下の原因をF4デバッグで特定する方法を先にご覧ください。本記事はその応用編として、具体的な最適化戦略に踏み込みます。
UPSとは何か?基本概念の整理
Factorioのゲームエンジンは、ゲームロジック(UPS)と描画(FPS)を独立して処理します。FPSはグラフィックカードの性能に依存しますが、UPSはCPUのシングルスレッド性能に完全に依存します。Factorioのゲームロジックは基本的にシングルスレッドで動作するため、どれほど多コアのCPUでも、1コアの処理速度がボトルネックになります。
UPSが60を下回ると、ゲーム内の時間の進みが実際の時間より遅くなります。つまり、UPSが30なら、ゲーム世界の1秒が現実の2秒かかることになります。これはマルチプレイでは特に深刻で、全プレイヤーが最も遅いプレイヤーのUPSに合わせることになります。
F4デバッグメニューでのプロファイリング
UPS最適化の第一歩は、何がUPSを消費しているかを正確に把握することです。F4キーを押すとデバッグオプションメニューが開きます。ここで最も重要なのが「show-time-usage」です。
show-time-usageを有効にすると、画面上部にゲーム更新の各フェーズにかかっている時間がミリ秒単位で表示されます。60UPSを維持するには、1フレームあたりの処理が16.67ms以内に収まる必要があります。この表示を見ることで、どのシステムがボトルネックになっているかを即座に特定できます。
主要なプロファイル項目
- Entity Update:組立機、炉、インサータなどの全エンティティの更新処理
- Electric Network:電力ネットワークの計算
- Transport Lines:ベルトコンベアのアイテム移動計算
- Fluid Manager:パイプと流体の計算
- Heat Manager:熱エネルギーの伝導計算
- Train Path Finder:列車の経路探索
- Pollution:汚染の拡散計算
- Chart Update:マップの更新
UPSを消費する主要因のランキング
メガベース規模(1000SPM以上)において、一般的にUPSを消費する要因を影響度順に並べると以下のようになります。ただし、工場の設計によって順位は変動します。
第1位:エンティティ数(Entity Count)
最も根本的なUPS消費要因は、マップ上に存在するエンティティの総数です。組立機、インサータ、電柱、パイプ、チェスト――すべてがゲームティックごとに何らかの更新処理を必要とします。エンティティ数を減らすことが、UPS最適化の最も効果的なアプローチです。
第2位:バイター AI
バイター(敵)のAI処理は、特に大規模な巣が多数存在する場合に非常に重いです。バイターは群れとしての行動判定、攻撃対象の選定、経路探索など複雑な処理を毎ティック行います。汚染が広範囲に拡散したメガベースでは、バイターAIだけでUPSの30%以上を消費することも珍しくありません。
第3位:流体計算(Fluid Simulation)
Factorioの流体シミュレーションは、パイプの各セグメントで流量と圧力を計算する必要があるため、長いパイプラインは大きなUPSコストになります。特に石油精製や原子力発電所の冷却水回路は、パイプエンティティの数が膨大になりがちです。
第4位:ベルトコンベアのアイテム
ベルト上のアイテムは物理的な位置を持ち、毎ティック移動処理が必要です。ただし、Factorioのベルト最適化は非常に優秀で、アイテムが「圧縮」(隙間なく詰まった状態)されていると、個別のアイテム移動ではなくベルト全体としてまとめて処理されるため、大幅に軽くなります。ベルトは常にフル圧縮で運用することがUPS的にも重要です。
第5位:ロジスティクスボット
大量のロジスティクスボットが飛び回る工場は、各ボットが毎ティック目的地計算と移動処理を行うため、UPSに大きな負荷がかかります。特にボットが渋滞している状態(チャージ待ちで大量に滞留)は最悪のパターンです。
最適化戦略1:ベルト vs ボット vs 直接挿入
アイテム輸送方法の選択は、UPS最適化において最も議論されるテーマの一つです。
ベルトコンベア
圧縮されたベルトは非常にUPS効率が良いです。Factorio開発チームはベルトの最適化に多大な労力を費やしており、圧縮ベルトはほぼゼロコストに近い処理で動作します。ただし、ベルトの合流・分岐が多いとアイテムの圧縮が崩れ、効率が落ちます。長距離の一直線輸送ではベルトが最もUPS効率が良い選択肢です。
ロジスティクスボット
ボットは柔軟性が高い反面、大量に使用するとUPSコストが高くなります。ただし、短距離・少量輸送ではベルトよりもエンティティ数が少なくなるケースもあります。ボットは「便利だが大量使用は避ける」が基本方針です。
直接挿入(Direct Insertion)
UPS最適化の究極形が直接挿入です。これは、ベルトやボットを一切使わず、インサータで機械から機械へ直接アイテムを受け渡す設計です。例えば、鉄板を作る炉の出力を、インサータで直接歯車を作る組立機に入れる、という具合です。
直接挿入のメリットは圧倒的です:
- ベルトエンティティがゼロ
- ベルト上のアイテム処理がゼロ
- 中間チェストも不要
- 必要なインサータの数も最小限
デメリットは、レイアウトの柔軟性が極端に低くなることと、レシピの材料数に応じて設計難度が跳ね上がることです。Green Circuit(電子基板)→Red Circuit(発展基板)→Blue Circuit(制御基板)のような直線的なチェーンでは非常に効果的ですが、複雑なレシピには向きません。
最適化戦略2:ビーコンとモジュールによるエンティティ削減
UPS最適化の核心は「同じ生産量をより少ないエンティティで実現する」ことです。ビーコンと速度モジュールはまさにこの目的に合致します。
ビーコンサンドイッチ設計
典型的なメガベース設計では、組立機の列をビーコンの列で挟む「サンドイッチ」レイアウトを使用します。ビーコンに速度モジュール3を入れ、組立機には生産性モジュール3を入れます。
この組み合わせにより:
- 生産性モジュール:同じ入力からより多くの出力を得るため、必要な原材料の採掘・精錬エンティティが減る
- 速度モジュール(ビーコン経由):各マシンの処理速度が上がるため、必要なマシン数自体が減る
- 結果として、同じSPMを達成するのに必要な総エンティティ数が大幅に削減される
例えば、ビーコンなしで100台の組立機が必要な生産ラインが、フルビーコン設計では20〜30台で済むことがあります。ビーコン自体のエンティティコストを差し引いても、総エンティティ数は大幅に減少します。
Quality(品質)モジュールとUPS(Space Age)
Space Age DLCの品質システムを活用すると、レジェンダリー品質のマシンやモジュールにより、さらに少ないエンティティで同等の生産量を達成できます。レジェンダリー速度モジュール3をビーコンに搭載すると、通常品質と比較して圧倒的な性能差になります。品質厳選のためのリサイクルループ自体にUPSコストがかかる点には注意が必要ですが、最終的な定常状態では大きなUPS改善が見込めます。
最適化戦略3:電力源の選択
電力生成方法の選択は、意外なほどUPSに影響します。
ソーラーパネル:UPSコストほぼゼロ
ソーラーパネルは設置後のUPSコストが実質ゼロです。ソーラーパネルは個別にエネルギー生産を計算するのではなく、電力ネットワーク全体でソーラーパネルの総数から一括して発電量を算出します。蓄電池も同様に、ネットワーク全体で一括管理されるため、数千枚のパネルと蓄電池を置いてもUPSへの影響はほぼありません。
メガベースでは、広大な面積が必要というデメリットを除けば、ソーラーが圧倒的にUPS最適です。
原子力発電:中程度のUPSコスト
原子力発電は、原子炉の隣接ボーナス計算、蒸気タービンのエンティティ、そして最も重いのが冷却水パイプの流体計算です。大規模な原子力発電所は数百のパイプエンティティを含むことがあり、流体計算のコストが無視できなくなります。
蒸気機関(石炭/固形燃料):高いUPSコスト
蒸気機関はエンティティ数あたりの発電量が低いため、大量に必要になります。さらにボイラーへの燃料供給インサータ、水のパイプラインなど、付随するエンティティも多くなります。メガベースでは避けるべき選択肢です。
最適化戦略4:バイター対策とピースフルモード
バイターAIはメガベースにおいて最大級のUPS消費源の一つです。対策にはいくつかの段階があります。
汚染の最小化
バイターが攻撃してくるのは汚染に反応するためです。効率モジュールを使って汚染を減らす、ソーラー発電で汚染をゼロにする、などの対策で攻撃頻度を下げられます。ただし、バイターの巣自体が存在する限り、群れの管理処理は継続します。
バイターの巣の殲滅
砲撃(Artillery)で広範囲のバイターの巣を殲滅し、汚染圏外まで排除するのは効果的な戦略です。巣がなければバイターは湧かず、AI処理もなくなります。ただし、新しい巣が汚染圏の境界付近に発生する可能性があるため、定期的な掃討が必要です。
ピースフルモード
最も劇的なのはピースフルモード(もしくはマップ設定でバイターなし)です。バイターが完全にいなくなることで、AI処理、経路探索、群れ管理、汚染への反応処理がすべて消滅します。純粋にUPS最適化を追求するメガベースでは、ピースフルモードの選択は合理的です。コンソールコマンド /c game.surfaces[1].peaceful_mode = true で途中からでも切り替えられます。
最適化戦略5:長距離輸送 ─ 列車 vs ベルト
メガベースでは、採掘前哨地から本拠地への長距離輸送が不可欠です。
列車輸送
列車はUPS的に非常に優秀です。1編成の列車(機関車+貨物車両数両)は、わずか数エンティティで大量のアイテムを輸送できます。同じ量をベルトで運ぶには、何千ものベルトエンティティが必要です。
ただし、列車の経路探索(Train Path Finder)は列車の数が増えると重くなります。最適化のポイント:
- シンプルな線路レイアウト:複雑な交差点は経路探索コストを増大させる
- チェーン信号の適切な使用:デッドロック防止と経路探索の効率化
- 列車の台数を最小限に:長い編成で1回に大量輸送する方が、短い編成を多数走らせるよりUPS効率が良い
- LTN的な動的割り当てよりも固定ルート:経路探索の頻度を減らす
ベルト長距離輸送
ベルトは短距離では効率的ですが、長距離ではエンティティ数が膨大になります。1000タイル先の鉱脈からベルトで運ぶと、4000個のベルトエンティティ(片道1000×2レーン×往復)が必要です。列車なら線路エンティティだけで済みます。長距離輸送では列車が圧倒的に有利です。
最適化戦略6:流体(Fluid)の最適化
流体計算はUPSの隠れた大消費者です。以下のテクニックで大幅に改善できます。
パイプの長さを最小限に
パイプ1個がそれぞれ1エンティティとしてカウントされ、各セグメントで流量計算が行われます。生産設備を流体源(油井、ケミカルプラントなど)のすぐ近くに配置することで、パイプの総数を劇的に削減できます。
地下パイプの活用
地下パイプは、見た目上は地下を通っていますが、内部的には入口と出口の2エンティティだけで計算されます。つまり、10タイルの地上パイプ(10エンティティ)を地下パイプ(2エンティティ)に置き換えるだけで、流体計算コストが1/5になります。これは最も手軽で効果的な最適化の一つです。
液体のバレル化
極端なUPS最適化では、液体をバレルに詰めてベルトやインサータで運ぶ方法もあります。流体計算を完全に排除できる反面、バレル詰め・開封の組立機とインサータが追加で必要になるため、短距離では逆効果です。長距離の液体輸送ではバレル化が有効なケースがあります。
最適化戦略7:エンティティ数の削減テクニック集
個々のテクニックは小さくても、メガベース規模では積み重ねが大きな差になります。
電柱の最適化
電柱はエンティティです。大型電柱を最大間隔で配置し、余分な小型電柱を撤去するだけでもエンティティ数を削減できます。基板(Substation)は18×18の範囲をカバーするため、最も効率的です。
不要なインサータの排除
スタックインサータは1回の動作で多くのアイテムを運べるため、通常のインサータを複数使うより効率的です。また、生産ラインの設計を見直して、不要なインサータ(バッファチェストへの出し入れなど)を排除しましょう。
未使用の設備の撤去
使われていない古い生産ラインや、稼働率が極端に低い設備は撤去しましょう。たとえ何も生産していなくても、エンティティとして存在するだけでUPSコストがかかります(電力ネットワークへの登録、各種チェック処理など)。
レーダーの最小化
レーダーはマップチャンクのスキャン処理を行うため、大量に配置するとChart Updateのコストが増加します。必要最小限の数に絞りましょう。
ロボットポートの集約
ロボットポートが多すぎると、ロジスティクスネットワークの管理コストが増加します。必要な範囲だけカバーするようにしましょう。また、巨大な単一ネットワークよりも、目的別に分離された小さなネットワークの方がボットの移動距離が短くなり、効率的です。
Space Age DLC固有の最適化
Space Age DLCでは新しい惑星とメカニクスが追加され、UPS最適化に新たな考慮事項が生まれました。
ヴルカヌス:デモリッシャーのシミュレーションカリング
ヴルカヌスの巨大ワーム「デモリッシャー」は、プレイヤーや建造物の近くにいないときはシミュレーションがカリング(間引き)されます。つまり、デモリッシャーの活動範囲から離れた場所に工場を建設すれば、デモリッシャーのAI処理コストを大幅に削減できます。
実用的な対策としては:
- 溶岩湖の向こう側にメイン工場を配置(デモリッシャーは溶岩を渡れない)
- タレットラインでデモリッシャーの接近を阻止し、シミュレーション範囲外を維持
- 必要な資源採掘だけデモリッシャー圏内で行い、列車で安全圏に輸送
アクイロ:加熱計算のコスト
アクイロ(極寒惑星)では、建造物が凍結しないように加熱(Heating)が必要です。Heat Manager(熱管理システム)は、熱の伝導と散逸を各エンティティで計算するため、広大な加熱ネットワークはUPSコストになります。
最適化のポイント:
- 加熱範囲を最小限に:必要な建物だけを加熱範囲内に収める
- ヒートパイプの長さを短く:パイプと同様、各セグメントで計算が行われる
- コンパクトな設計:アクイロでは特に、工場をコンパクトにまとめることがUPS的にも暖房効率的にも有利
惑星間アイテム輸送
Space Ageでは複数の惑星にまたがる工場運営が必要ですが、各惑星はアクティブなサーフェスとしてそれぞれUPSを消費します。使用していない惑星のサーフェスは自動的に軽量化されますが、アクティブな生産ラインがある惑星はすべて計算対象です。惑星の数を最小限に抑え、各惑星の工場を効率的に設計することが重要です。
いつUPSを気にすべきか?
重要な前提として、UPS最適化はメガベース規模(概ね500SPM以上)でのみ意味を持ちます。
通常のゲームプレイ、ロケット打ち上げまでの攻略、100〜200SPM程度の工場では、現代のCPUであればUPSが60を下回ることはまずありません。この段階でUPS最適化を意識すると、ゲームの楽しさを犠牲にして無意味な制約を自分に課すことになります。
まずは自由に工場を作り、楽しむこと。UPSが実際に低下し始めたら、そこで初めて最適化を考えれば十分です。show-time-usageでボトルネックを特定し、最もコストの高い部分から順に改善していく――それが最も効率的なアプローチです。
よくある誤解(Myths)を打破する
誤解1:「ボットはベルトより常にUPSが悪い」
現実:場合によります。少量のアイテムを近距離で運ぶ場合、数台のボットの方が長いベルトラインよりエンティティ数が少なく、UPS効率が良いことがあります。問題になるのは、数千台のボットが飛び回る大規模ボット工場です。一概に「ベルト最強」とは言えません。
誤解2:「アイテムが地面に落ちるとUPSに影響する」
現実:地面に落ちたアイテムはエンティティとして存在しますが、移動や判定処理がないため、UPSへの影響はごくわずかです。もちろん何十万個も落ちていれば別ですが、通常の範囲では気にする必要はありません。
誤解3:「MODを入れるとUPSが悪くなる」
現実:MODの内容によります。グラフィック変更MODはUPSに影響しません(FPSには影響する可能性あり)。新しいエンティティやスクリプト処理を追加するMODはUPSに影響しますが、単純なレシピ変更やUI改善MODの影響はゼロに近いです。
誤解4:「GPUをアップグレードすればUPSが改善する」
現実:絶対にNoです。UPSはCPUのシングルスレッド性能のみに依存します。GPUはFPS(描画フレームレート)にのみ影響します。UPS改善にはシングルスレッド性能の高いCPU(例:高クロックのIntel Core i9やAMD Ryzen 9の最新世代)が必要です。
誤解5:「信号(回路ネットワーク)はUPSを大幅に消費する」
現実:回路ネットワークの処理は非常に軽量です。数千の回路接続があっても、UPSへの影響は微小です。ただし、毎ティック大量の計算を行う非常に複雑なコンビネータ回路(例:ゲーム内でDOOMを再現するような極端なケース)は例外です。通常の工場制御用回路は気にする必要はありません。
UPS最適化チェックリスト
メガベースを構築する際の、UPS最適化の優先順位をまとめます:
- F4 → show-time-usageでボトルネックを特定する(推測ではなく計測!)
- ピースフルモードまたはバイター殲滅を検討する
- ソーラー発電に移行する
- ビーコン+モジュールで必要マシン数を削減する
- 直接挿入を可能な箇所に適用する
- 長距離輸送は列車を使う
- 地下パイプを多用して流体エンティティを削減する
- 不要エンティティを撤去する
- ベルトを圧縮状態で運用する
- 最後に、設計全体を見直してエンティティ数を最小化する
まとめ
UPS最適化は、Factorioの最も深いメタゲームの一つです。「限られたCPU資源という制約の中で、いかに効率的な工場を設計するか」という問いは、まさにFactorioが掲げる「工場を成長させろ(The factory must grow)」のテーマそのものです。
ただし、忘れないでください――最も重要なのはゲームを楽しむことです。UPSが59でも世界は終わりません。最適化は手段であって目的ではありません。自分の工場に誇りを持ち、必要になったときに少しずつ改善していく。それがFactorioの醍醐味です。
UPS低下のデバッグ方法の詳細は、Factorioパフォーマンス診断ガイドもあわせてご確認ください。