要約:Fluids 2.0の続報。LANパーティーで「万能パイプ」が強すぎて設計に頭を使わない問題が判明。対策として250×250タイルの範囲制限を導入し、ポンプでの分割が必要に。ポンプの流量を1200/sに10倍ナーフ、流体貨車を50,000に2倍バフ、水→蒸気の変換比を1:10に変更。パイプラインの可視化機能やマップ表示も追加。


以下は2024年9月27日に公開されたFriday Facts #430 – Drowning in Fluids(著者:raiguard)の日本語訳です。


こんにちは、

今日はもう一度、流体の世界に頭から飛び込みます。

前回からの変化

6月にFluids 2.0を公開した(FFF-416)まさにその週、社内LANパーティーでテストプレイをしていました。遊んでいるうちに、新システムが少し簡単すぎることが見えてきました。ナウヴィスの工場には、設計も構造もほとんど考えずにあちこちにくねくねと這う途方もなく巨大なパイプラインがありました。特に遠い前哨基地には流体列車も使いましたが、これもほとんど習慣からで、パイプラインの方が優れていたでしょう。

万能パイプライン
無限スループットの大陸横断パイプライン

この「万能パイプ」(omni-pipe)はポンプがスループットを増やすことはなく、常に制限するだけという状況を生みました。直感に反するだけでなく、回路接続で特定のセクションを無効化する以外にポンプを使う理由がなくなりました。さらに長いパイプを推奨することは流体混合の巨大な罠になり、異なるパイプラインを誤って接続する確率が大幅に上がりました。別の惑星にいる間にボットが何かを建設してこれが起きたら、広大なエリアからたった1本の誤配置パイプを見つけるのは至難の業です。

解決策を探す時でした。

視覚的フィードバックの重要性

搬送ベルトが楽しいのは、極めてビジュアルでインタラクティブだからです。アイテムがどこから来てどこへ行くのか、ボトルネックがどこにあるのか、一目で分かります。対照的に、パイプはほぼ完全に不透明で、小さな覗き窓では十分な視覚的フィードバックが得られません。「何も考えなくていい」流体フローの解決策を選んだのは、これが一因でした。

流体システムに制限を加えるなら、その制限は極めて簡単で、明確で、インタラクティブでなければなりません。しばらく議論した結果、こうなりました。

パイプラインの範囲制限

パイプラインは250×250タイルの範囲に制約され、この制限を超えるとパイプラインのすべての流れが停止します。パイプラインはポンプで分割できます。ゲームはパイプが壊れていることを示すビジュアライゼーションを表示し、ポンプを配置すべき場所にアラートを生成します。問題の診断も修正も簡単です。

範囲超過時のビジュアライゼーションとアラート

流体関連のエンティティを手に持っている時、見えているパイプラインに中の流体の色に合わせた接続ビジュアライゼーションが表示されます。マウスでホバーすれば個別のパイプラインを可視化でき、パイプラインの大きさを示す矢印も表示されます。

パイプライン可視化
Pipe Visualizer Modのユーザーには見覚えがあるかもしれません

仕上げとして、マップ上でパイプラインを表示するトグルも有効にできます!

マップ上のパイプライン
マップでパイプラインを確認できる

個別のセットアップを作る時はパイプのスループットをあまり気にする必要はありません。パイプをつなげば「そのまま動く」のは変わりません。しかしセットアップ同士をつなげるには少し考える必要があり、方向性やポンピングステーションのスループットが問題になります。ポンプで分離されたセクションは、誤って流体を混ぜてしまった場合の被害も小さくなります。

バランス調整

範囲制限に加えて、流体コンポーネントのバランスもいくつか調整しました:

  • ポンプ:1200/sにナーフ(10倍の減少)。品質で向上可能
  • 流体貨車:50,000にバフ(2倍の増加)
  • 水→蒸気変換比:ボイラーと熱交換器で水1が蒸気10に

1両あたりポンプ3台で3600/s、流体貨車の中身を完全に汲み出すのに約14秒。1.1では0.7秒で済んだことと比べるとずっと合理的です。バニラのメガベースにはまだ十分な速さで、Space Ageではレジェンダリーの鋳造炉にさらなるスループットが必要なら品質を上げられます。

水→蒸気の変換比変更で、流体貨車や水バレルでの電力・原子力セットアップへの供給がより現実的になりました。機械の消費/出力は変わらず、同じ量の蒸気を作るのに消費する水が10分の1になるだけです。

範囲制限とこれらの変更により、流体列車と長距離パイプラインの選択がずっと多様になりました。万能パイプはもはやすべての唯一の解決策ではありません。まだ作れますが回路が必要で、以前ほど魔法的ではありません。パイプラインのほぼ即時の輸送を選びますか?それとも流体列車の柔軟性を選びますか?

アルゴリズムの調整

初回導入以降、アルゴリズムにいくつかの変更がありました:

  • 出力レートは以前は無制限だったが、シンクの充填率に反比例するようになった
  • 貯蔵タンクのフローの特別例外を削除
  • 入力レート制限は以前はパイプラインからの引き出し時のみ適用されたが、現在は新しい出力レート制限とともにすべての流体フロー操作に適用(流体貨車は例外)

前回十分に説明できなかった点として、1ティックあたりのパイプラインの総フローには制限がありませんが、フロー操作あたり100流体(6000/s)のハードコードされた上限があります。この上限にソースとシンクの充填率を乗じて実際のフロー値を算出します。この比例性により、機械がより均等に流体を共有できます。

出力レート制限は特に興味深く、流体がより流体らしく感じられるようになりました。以前はパイプラインが100%満タンになるまで最大6000/sで押し込めましたが、今はパイプラインが満たされるにつれて減速します。

デバッグビューで表示したパイプの充填率

完了にはまだ遠い

パイプライン範囲制限システムとバランス調整はLANパーティーの時点で実装済みで、反応はかなり好意的でした!ここに至るまで長い長い道のりでしたが、まだやるべきことも伝えるべきこともたくさんあります。2.0ローンチ時のシステムはこの形ですが、今後も調整とイテレーションを続けます。

前回の投稿への皆さんの徹底的なフィードバックに感謝します。すべてのコメントを確実に読んでいます、大半に返信はしないとしても。皆さんの情熱がFactorioを素晴らしいゲームにしている大きな要因です。

📖 原文を読む(英語)