目次
およそ半年ぶりくらいに、ふとFactorioがやりたくなりました。
前回の記事↓
Factorioにハマると生活が完全にぶっ壊れるので意識しないようにしていたのですが、ちょっとだけなら……と手を付けたところ、やはり生活がぶっ壊されました。
この4日間で20時間オーバーのセッションを3回やっています。仕事は体調不良として有給を取りました。誰か助けてください。
目標
Aquiloに到達する。
現状
Nauvis, Vulcanus, Fulgora,Gleba 間のクルーズ船、生鮮品のためのNauvis-Gleba専用線を構築済み。
しかしAquiloに向かうには色々と問題があった。
問題1
まずNauvisについて。
Nauvisのメイン工場は、メインバス方式の採用に失敗した完全なカオスとなっている。モンキーパッチ的なボットの大群が常時工場中を飛び交っており、美しくない。

特に問題だったのは、これによってUPSが60を維持できなくなっていたこと。UPSはFactorioで唯一の有限な資産であり、これが尽きることはセーブデータそのものの死を意味する。
それもあって絶望してFactorioから離れていたのだが、PCを新調したことで状況が変わった。UPSは60.0を完璧に維持しており、やらない理由が一つ消滅してしまったのだ。
というわけで、Nauvisに低負荷でスマートな工場を構築する必要がある。
問題2
次にAquiloへ向かうSpace Platformの設計について。
Aquiloへの航路には、これまでに無い大きな小惑星帯を通過する必要がある。試しにGun turretのみの従来の船で突っ込んでみたところ、全く体力を削れずに終わった。
これを解決するには、Space Platform上にRocket Turretを配置する必要がある。そのためにはロケット弾の生産ラインを配置する必要があり、これまでにない大きな規模の宇宙船を構築しなければならない。
宇宙船設計スキルを磨く必要がある。
問題3
最後にGlebaについて。
Glebaの工場はようやく(概ね)軌道に乗り、不運が無い限りラインが停止することは無くなった。しかし、ちょくちょく各モジュールが詰まるので、定期的に監視して、詰まっていたらベルトを削除して再設置する必要がある。
特に研究モジュールが詰まると最悪で、再起動のためには現地に赴いてPentapod Eggを収穫してくる必要があった。
これは進行全体に致命的な影響を与えるものではないものの、定期的に差し込みタスクが挟まるのは精神的にかなり良くない。
Glebaの工場を安定させる必要がある。
問題4
全体的な戦略にも問題があった。
半年前には惑星ごとに得意な科学パックを生産し、それをNauvisに集約させるのが良いと思っていた。
しかし、これを実現するには相当な手間がかかる。風呂敷を広げすぎて、どこから手を付けたらいいか呆然と立ち尽くしている状態だった。
問題5
Nauvisの防衛も完璧とは言い難い。頻度はGlebaのSpoilage詰まりほど高くないものの、Biterが変な場所から侵入して工場を破壊することがあった。しばらく不在にしていても問題ないような防衛ラインを構築せねばならない。
全体的な戦略を修正しよう
ということで、Aquiloに向かうには上記4つの問題を解決しなければならない。
まずは問題4から。これについては、問題自体を無効化することにした。
Mining Productivityの研究レベルを高めたり、高品質なProduction moduleを使えば、Nauvisの鉱床が枯渇することを恐れる必要は無さそうだった。
それに、新たな鉱床を求めて原住民と”交渉”を行い工場を拡張するのはとても楽しい。その楽しみを損ないたくない。
そこで、基本科学パックはNauvisで生産することにした。これによって、やるべきことリストは大幅に減った。
Nauvisに汎用鉄道ネットワークを構築しよう
次にNauvisの工場を、明確な設計思想を持った上で拡張することにした。
色々調べた結果、汎用鉄道ネットワークを構築するのが、UPSへの負担が小さく、スマートで、それでいて独創性を発揮できるほどよい難易度も損なわれなさそうだった。
汎用鉄道ネットワークの設計
いくつかのサーベイを行った結果、以下のような方式でこれを実現した。
汎用鉄道ネットワークの設計思想は以下の通り。
- 各サブ工場は、鉄道網を介して輸出入を行う
- 各サブ工場は、各製品の輸出駅と輸入駅を持つ
- 空の列車は、現在空いている輸出駅に向かう
- 積荷を抱えた列車は、積み込んだ物資に応じた輸入駅駅へ向かう
- 全ての駅が満員で他に行く宛が無い列車は休憩駅へ向かう
- 燃料が枯渇しそうな列車は、燃料補給駅へ向かう
要は、ボットによるLogistic Networkの思想をそのまま鉄道に反映させるということだ。
- Provider駅: Passive Provider Chest
- Requester駅: Requester Chest
- Refuel駅: Roboport
- Relax駅: Roboport
これによって、各サブ工場は、入出力の先を意識せずに設計することができるし、ボットよりも大幅に電力とUPS消費を削減できる。
究極的にはこれは街区スタイルの工場を作るということになるのだろうが、街区スタイルはあまりにも整然としすぎていて、Blueprintをペタペタ貼り付けるだけになり、面白みに欠けそうなのが心配だった。
「機会があればプレイヤーはゲームの楽しみを効率化してしまう」という言葉があるが、この方法であればそれを回避できそうだ。

実装
ということで、以下のように実装した。
この鉄道網に属する全ての貨物列車は、Provider駅のみを目的地として持つ。
ただし、割り込み条件を以下のように設定する。
- もし燃料が枯渇寸前なら、Refuel駅へ向かう。
- もし何らかの貨物が存在しているなら、その貨物を要求しているRequester駅へ向かう。
- もし空いているProvider駅があるなら、そこへ向かう。
- もし行き先が見つからなければRelax駅へ向かい、新たな目的地が見つかるまで待機する。

Aquilo連絡船の設計
Aquiloは下手に向かえば完全に詰んでしまうような惑星だ。資源が限られており、堅牢な定期連絡線による物資輸送が必須となる。
同時に、AquiloはNauvisから最も遠い。単に堅牢にするだけなら低速で向かえばよいが、スループットはある程度確保しておきたい。
しかも、ソーラーパネルの効率は太陽から離れることで大きく低下する。ロケット弾の生産と省スペース化のためにも、原子力発電は必須になる。
Space platformが受ける抗力は、宇宙船の横幅に大きく影響を受けるようだ。そのため、同じ面積を取るのであれば、縦に長いほうが良い。
つまり、Aquilo連絡線には以下の要件が求められる。
- ロケットタレットを大量に積めること
- ロケットの弾切れを起こさないこと
- 原子力発電を行うこと
- できるだけ縦長で、最高速を稼げること
ということで、Aquilo連絡船をデザインした。
Aquilo級クルーズ船 UrbanWulf

この船には、以下のような工夫を設けた。
二重寿司ベルトによる在庫管理
この船には、ざっくり言って2つの寿司ベルトがある。
- 小惑星の欠片用ベルト
- 収集した小惑星の欠片を置き、Crusherにわたすためのベルト。
- メインベルト
- Crusherが処理した結果その他を置き、船全体に行き渡らせるためのベルト。
Asteroid Crusherのレシピの動的調整
Glebaの経験から、回路ネットワークは在庫管理にとても強力であることを学んだ。新たな挑戦として、回路ネットワークによるレシピの変更を試してみることにした。
全てのCrusherは、大まかに言えば以下のような基準でレシピを決定する。
- もし水が規定量を下回ったら
- 全てのレシピを基本的なOxide Asteroid Crushingに変更して、氷を得る
- (水が枯渇すると原子炉による発電ができなくなるので、最優先で行う)
- もしある小惑星の欠片が規定量以上あるなら
- その小惑星の欠片の変換レシピを実行する
- さもなくば
- 各小惑星のAdvanced Crushingレシピをランダムに実行する
これによって、特定の小惑星の欠片が満載になってベルトが詰まるのを回避しつつ、緊急時には必要な小惑星の欠片を優先的に得られるようにした。いくつかの定数の調整の後、このシステムは驚くほど安定するようになった。

Cargo bayによる在庫管理
メインベルトの詰まりを回避するため、Rare Cargo bay をできるだけ多く詰め込んで、船のストレージをバッファとして活用することにした。
メインベルトはループの果てに、Space Plafrom Hubの横を通過する。その際に、ベルト上のアイテムをランダムに収納するインサータ1個と、Hub内の在庫が一定量を上回ったときのみ起動する、各アイテム用の排出インサータを設置した。
これによって、Hubが満杯にならないようにしつつ、この宇宙船自体がCarbon、Sulfer、Calciteの収集船として機能するようにできた。
なお、このバッファでも吸収できなかった分は、船外に投棄する。
目標速度の動的調整
Thrusterに供給する酸化剤の量をPumpでPWM制御することで、状況に応じて宇宙船の速度(=小惑星の飛来量)を調整できるようにした。
- 弾薬が規定量を下回ったら0km/h
- Gleba-AquiloあるいはFlugora-Aquilo間を航行している場合は100km/h
- さもなくば制限なし
これによって、弾薬切れによる宇宙船の破壊を防ぎつつ、比較的安全な航路では全速力で航行できるようになった。
Glebaの改善
数十時間の試行錯誤の後、鮮度を維持しつつ各種アイテムを生産できるモジュールを設計することができた。

Glebaは本当に厳しいのだが、謎の中毒性がある。
Nauvisの防衛ライン改善
上述した汎用鉄道ネットワークに接続可能な、Artilleryを搭載した防衛基地を設計した。遠隔地に鉄道を伸ばし、この防衛基地を配置することで、汚染雲の範囲のBiterを殲滅する。これによって、Biterの襲撃を止めることができた。

いざAquiloへ
そしてついにAquiloへ。
なんだこの小島は。一体どうやって開発したらいいんだ????

一部の情報は古くなっている可能性があります



