星期五週報#416-流體2.0


3樓貓 發佈時間:2024-06-30 00:40:48 作者:Wube Software Language

大家好,
請把你壓箱底的潤滑油取出來,我們現在要講流體了!

運力臨界點

眾所周知,異星工廠的流體系統既不容易量化,也沒法直觀瞭解,甚至某種意義上來說是個痛點。


管道流量會隨著距離增加以非線性方式降低,只有靠wiki上的表格才能知道不同長度管道的實際流量。
而且建造的先後順序也對流量有影響,總的來說,這並不是一個有趣的系統。

我們曾多次嘗試重寫流體系統,但都以失敗告終。現有的算法非常快,適用於標準遊戲,我們已經儘可能地將其單獨使用。然而,在我們對太空時代的遊戲測試中,很明顯現有的系統已經過時。新機器提供的生產規模和質量會使流量算法陷入癱瘓。

星期五週報#416-流體2.0 視頻#01

為了避免完全重寫代碼,我們首先嚐試通過增加管道體積來增加流量。這“解決”了低流量的主要問題,同時還需要大量增加緩衝區大小。儲罐實際上變得毫無用處,配備火焰噴射器炮塔的防禦牆儲存了數萬單位的液體,吸乾了基地。最終,我們未能就如何進行達成協議;重寫被認為過於複雜,但沒有人有更好的想法。這個問題被擱置一邊,以便“稍後再討論”。
我對這個結論極為不滿。增加管道容量是治標不治本。有時候請求原諒比請求許可更容易,所以我冒著風險開始重寫流體系統。

新算法

在一次流體討論中,Rseding提出了一種算法,該算法與他多次使用過的算法非常接近,這是CoFH團隊的我的世界 mod Thermal Expansion中的一種算法:
⚙ 管道、地下管道和儲罐合併為流體“段”。
⚙ 每個分段的體積都繼承自組成它的流體盒,並且可以容納一種流體。
⚙ 機器可以以無限的速率將流體推入一個分段,並可以以與分段的滿度成比例的速率從分段中抽出。換句話說,如果分段是半滿的,則抽出速率是最大值的一半。
⚙ 作為一種特殊情況,如果將泵直接連接到儲罐,則泵可以以更快的速度泵動流體。

管道中不再存在真實的流體“流動”;被推動到分段的流體將在沿著分段的任何點處立即可用。這就是之前FFF中討論過的“核電網絡型解決方案”。結果是管道“正常工作”,幾乎不必擔心吞吐量。

星期五週報#416-流體2.0 視頻#02

演示

請注意看可視化的調試效果:
⚙ 綠色表示實體中的流體量。
⚙ 藍色表示在該刻通過實體的流量。
流體流淌動畫並非最終效果。

長管道

在舊系統中,管道越長,流量就會越低。問題不在於這種狀態的存在,而是它無法量化。

星期五週報#416-流體2.0 視頻#03

在新系統中,管段是一個單元,因此流體不再在管道中傳播。較長的管道具有更高的吞吐量,但需要更長的時間才能完全排空。確切的流量數字可能會根據進一步的測試而變化。

星期五週報#416-流體2.0 視頻#04

節點

舊的系統在直管道的情況下運行相對良好,但一旦形成連接節點,一切都會分崩離析。根據管道的構建順序,流向連接處每一側的流體量都有所不同。

星期五週報#416-流體2.0 視頻#05

在新體系中,交叉節點不會再產生多餘影響;一個分段只關心連接到它的機器。當一臺機器更新時,它的最大拉動率是根據連接分段的填充率來限制的。這讓流體分配更加均勻,雖然仍然不完美,但非常接近。

星期五週報#416-流體2.0 視頻#06

輸入原料短缺

在舊的系統中,當機器缺乏輸入流體時,節點會變得特別糟糕。燃料廠比氧化廠獲得的水流量要大得多。

星期五週報#416-流體2.0 視頻#07

在新的系統中,兩種廠子獲得的液體份額要接近相等得多。

星期五週報#416-流體2.0 視頻#08

在舊的系統中,為了保持更高的流量需要泵。然而,它幾乎從未像大家所期望的那樣奏效:

星期五週報#416-流體2.0 視頻#09

在新系統中,不再需要為了增大流量使用泵。泵仍然可以用來強制流體定向流動,充當具有電路網絡的條件閥,以及裝載/卸載列車,但大家將不需要像以前那樣放置太多泵。

星期五週報#416-流體2.0 視頻#10

大後期工廠佈置

最後,我們回到我們最喜歡的化工廠佈置。這種佈置會讓工廠無法正常運作,因為石油被困在了輸出管道中。

星期五週報#416-流體2.0 視頻#11

在新系統中,產能將會到達理論水平,所有化工廠都能輸出其生產的石油。

星期五週報#416-流體2.0 視頻#12

遊戲性壓過了真實性

就Factorio中流體模擬的“真實性”而言,新系統做出了很大的讓步。但作為遊戲設計師,你總是必須在真實性和遊戲性做出權衡。組裝機器將大量的工作抽象出來,以自動化的形式將其放在一個整潔的小盒子裡。同樣,新的流體系統為您提供了大家期望的管道行為,同時提取了真實流體流動的所有細節。
這是一個非常有趣的系統。這個系統有很多我們沒有預測到的有趣的可能性,我們將在未來的FFF中分享我們的一些故事。我還可以詳細介紹這個新系統的體系結構,以及我在其他時候是如何進行重構的。
有一些細節仍在處理中,但新系統作為一個整體運行得很好。我們等不及大家動手嘗試了!


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com