《戴森球計劃》物流塔及生產線設計指南 - 遊戲狂
廣告

《戴森球計劃》物流塔及生產線設計指南

請拿手機掃描此QRCODE

傳到手機看

2021-07-06

廣告

廠內物流規劃設計

所謂廠內物流如果去掉工作人員,那麼我認為就有以下幾點:

生產線平衡。

工作地佈置規劃。

物料存儲區規劃。

廣告

那麼在遊戲裡,有展現的就比如:小小大工廠(Little Big Workshop),這個遊戲如果你要真以用最快的速度完成的話,你就必須要考慮到上述三點。否則,你的員工就會滑水摸魚。

再比如異星工廠(Factorio),這個遊戲的火車,本質上就可以理解成「物料存儲區規劃」。在物流規劃裡,這部分有幾個要素:

對於大價值的零件,要有最小臨時庫存。對於小價值零件,要根據包裝的收容數確定。

具體到遊戲裡,對於大價值零件。比如藍板,衛星等。都是現場製作,現場使用。對於小價值零件,比如銅鐵礦,直接集中擺上若干個廠就完事。

包裝形式根據具體情況制訂。

具體到遊戲裡,根據生產區的實際流量大小和生產要求。選用正確的包裝形式,要麼選傳送帶上貨品,要麼選無人機一次多個。

再者,需要考慮到工位(也就是每一個工廠)需要從包裝中取勝貨物的方法(比如人運,分揀器和機械爪)。那麼這樣,一個工廠的基本結構就出來了

考慮物流成本,物流成本在要綜合考慮廠區自身資金和供應商運輸壓力

具體到遊戲裡,所謂工廠本身的資金就是你的肝。玩這遊戲,你的生產成本有兩個:一就是你的肝,二就是遊戲裡的地皮。而供應商的運輸壓力其實是不存在的。遊戲裡不存在供應商壓貨的需求。

在了解以上理論以後,再去掉遊戲中根據不需要考慮的合理性要求。那麼,設計一個工廠最簡單,最好想的形式就出來了:總線。

從這個角度考慮,物流塔的存在,使得物流成本大幅度降低。在物流成本極大降低增加的情況下,「物料存儲區規劃」就不存在問題。那麼,玩家所說的遊戲體驗降低就是一個客觀存在。

廠內物流規劃設計-方法論

根據上述觀點,限制物流塔是必須的。那麼,假定持有這種觀點,物流塔應當如何限制,才能保證遊戲樂趣呢?同樣,也要從上述理論考慮:

1. 限制物流塔的數目是不足夠的,物流塔的存在就是一種技術突破。而對於任何一種理論,只要技術突破了就一定不能隻從舊的理論的出發。比如,當相對論出現以後,雖然經典物理體系一樣能用,但是用的時候就一定要注意使用範圍。

那麼,對於這裡也是一樣的。比如限制為:一星一塔三本地(即一個星球一個星際物流塔,三個本地物流塔),這個不能完全解決問題。一塔三本地就是5個物料輸入。那麼我只要有兩個星球,就是二塔六本地。經過簡單的設計,就可以避開限制。

具體到遊戲裡:最麻煩的綠糖,其實可以分成兩部分,引力透鏡和量子晶片。你給他溯源一下,就發現,這兩種材料都可以在有三個星球的星系裡,使用一星一塔三本地的限制,完成大規模生產。

2. 在不限制物流塔的情況下,可以考慮增加物流塔的成本壓力。對於現有的物流塔來說,他降低了運輸成本。那麼,可以給他加回去,讓你用的時候要更加小心。雖然說,這遊戲的主要成本是肝。但是實際上,在遊戲裡,運輸成本其實是電,飛船和曲鞘。因為運輸船每次外派都要消耗電,飛船和曲鞘。不過,這裡飛船是可回收的。

那麼,在這種情況下,增加運輸成本就有兩種思路:

* 增加消耗器的消耗,這個不可取。消耗器用肝就能補齊,而用肝補的東西都是惡心玩家。

* 增加飛船的消耗,這個可取,遊戲裡現在的飛船非常簡單無腦。那麼,如果將星際飛船變為《X4:基石》的那種呢?即:星際飛船是一種需要玩家自行製作的,可以搭乘的,可以配置的中型產品。玩家生產每一架飛船都需要消耗巨量的物資,以此限制飛船數目。

同時,每一架飛船不再隻服務於一個物流塔,而是可以服務於多個物流塔。那麼這時,就需要設計星際間物流。這樣的修改是增加遊戲內容。

綜上,有如下建議:

1. 將星際物流塔的工作範圍限制在本星系

2. 在星系間,增加一個比如名為「貨棧」的巨構。玩家需要首先建設「貨棧」才能開啟跨星際運輸,物流塔把所有的星球資源送入「貨棧」

3. 在「貨棧」裡,玩家可以消耗大量資源建設星際運輸船。星際運輸船在建設以後,擁有超大量的空間,可以在貨棧之間運輸貨物。

那麼這樣,看上去就比原來更加費肝。但是,這一些就不再建立在惡心玩家的基礎上了。好用的東西一樣好用,要你設計的東西還是要設計。而且,理論高度更上一層樓。異星工廠,你只是在一個星球上搞三搞四。

而這個方法,則是考慮在整個宇宙裡遨遊四方。

面向過程程式設計

我玩遊戲有幾個層次和目的,一來是享受遊戲本身的樂趣。二來是理解遊戲的實現方式。三來是思考遊戲對現實世界的啟發。那麼具體到本遊戲裡,就是這樣的:

在沒有物流塔之前,生產線的設計是「自頂向下,逐步細化」這是一種面向過程的程式設計思路。在這種思想的指導下,就會有一個必然的產物:函數。人們總是期望復用已經寫好的內容和模塊。所以,在面向過程階段,使用了函數做為復用單元。什麼是函數?函數就是根據指定輸入,輸出指定內容。具體到遊戲裡,就是一個大家耳熟能詳的詞:黑盒。

所謂「黑盒」,在異星工廠那裡,就是有設計過的生產線,用最低的成本設計一個生產效率最高的模塊。這個要求與函數何其的相像?在每一個程式裡,程式設計師對於函數的設計都是無止境的,任何一個函數都需要進行優化。這是我認為黑盒的理論來源。那麼,如何優化「黑盒」?如何優化「函數」?優化函數不過就是兩個指標「時間復雜度」,「空間復雜度」,那麼優化黑盒也是一樣。

具體到遊戲裡,你需要對黑盒的生產時間進行調整,選用合適的配方,可以讓黑盒在同樣的時間生產更多的內容。選用合適的傳送帶佈局,就可以讓你的黑盒更加緊湊。這對於每一個程式設計師而言,都是老本行。

我在公司教育訓練的時候,對於完全無基礎的員工,有要求他們去玩一下 異星工廠。我的作業很簡單,設計一個藍板的黑盒,不許抄別人的作業,要從 「時間」和「空間」 兩個維度分析我為什麼要這麼設計。

面向對象程式設計

但是,物流塔的出現讓設計思想有了進一步的升華。物流塔出現以後,玩家可以使用模塊為單位對工廠進行設計。那麼,這時指導理論就變成了面向對象程式設計。在面向對象程式設計中,需要考慮的問題就不再是某個函數的效率,而是整個系統的復用性。

那麼,這時就會發現,最優解變成了面水黨。如果不知道怎麼弄的可以參考我之前的文章。這也是為什麼我瘋狂的吹物流塔。我同樣給我的學生留了一個作業:

在戴森球計劃裡,如何展現「高內聚,低耦合」的程式設計思想

那麼,答案就很顯而易見,並且非常簡單了。面水黨通過把每種產物都分解開來,每個產物增加了不同的物流塔進行生產,生產線之間沒有互相影響的情況。更換一個生產線,只要生產速度相同對整體沒有影響。這個就是「低耦合」。而生產線之間的生產過程使用工廠進行,修改時也隻針對本工廠和本物流塔,這個就是「高內聚」

那麼,試問對於一個已經進入面向對象階段的程式設計師。你要給他多少好處,才能讓他重回面向過程呢?我認為,現實裡很簡單,你加點錢,不要說面向過程,面向二進位我也做。但是,遊戲裡我認為是給不起的。

領域驅動設計

在面向對象的程式設計裡,有一個重要的概念就是「最小知識原則」對於一個類而言,他要認識最少的內容。所以,才會有設計模式。比如工廠模式,就是通過「封裝性」隱藏掉了「具體的產品」,隻向外界暴露出工廠類,產品抽象類 兩個知識。

那麼,所謂「最小知識」就可以理解為一個概念的邊界。這就引出了現在最熱門的程式設計思想,領域驅動設計(DDD)。

具體到遊戲裡,每一個物流塔都可以感知到整個宇宙裡所有其它的物流塔,那麼就相當於他認識了全宇宙所有的知識,這顯然不符合一部分玩家的理解。那麼,詬病他也是應該的,同樣,修改他的方法也不應該是限制他的數目。因為,一個類被實例化以後,你限制他在函數裡的實例個數,就相當逼迫程式多開幾個函數。這是完全搞人肝的做法,完全沒有意義。同樣,還是我剛才的建議:

1. 將星際物流塔的工作範圍限制在本星系

2. 在星系間,增加一個比如名為「貨棧」的巨構。玩家需要首先建設「貨棧」才能開啟跨星際運輸,物流塔把所有的星球資源送入「貨棧」

3. 在「貨棧」裡,玩家可以消耗大量資源建設星際運輸船。星際運輸船在建設以後,擁有超大量的空間,可以在貨棧之間運輸貨物。

從程式設計思想的角度來看他,所謂「貨棧」就是一個模塊的邊界(接口)。只有「貨棧」才能開啟星際運輸,意味著只有「邊界」才能與其它模塊進行資料交換。

所謂星際物流塔只能在本星系工作,就是將領域的邊界明確化。本星系就是一個領域,他隻負責生產一種/一些產品,而通過「邊界」與外界進行資料交互

所謂的「復雜星際運輸船」指的是領域間資料交換的成本。在DDD使用的場合裡,資料的交換成本有些是很高的。所以用這個進行模擬。

同樣在的,在DDD裡,「微服務」是一個很火熱的概念。那麼,我的建議就可以理解為每一個星系都是微服務中一個模塊。星系運輸船相當於在微服務之間有帶寬限制的網路環境。那麼,如何設計就是一個可以研究和討論的問題。

《戴森球計劃》物流塔及生產線設計指南

來源:戴森球計劃吧
作者:巨龍之息《戴森球計劃》物流塔及生產線設計指南

廣告

廣告

遊戲資訊

戴森球計劃 (Dyson Sphere Program)

類別: 模擬
平台: PC
開發: 重慶柚子貓遊戲/Youthcat Studio
發行: Gamera Game
上市: 2021-01-21
浩瀚無垠的宇宙,未知的征程,作為戴森球計劃的一名工程師,你將前往陌生的星係,建造戴森球。從一無所有白手起家,採集資源,規劃設計生產線,逐步實現全自動化,將你的工廠從一個小作坊,發展成為龐大的跨星係工業帝國。探索未知的星球,發現珍奇,讓你的足跡遍布星辰大海。

更多 戴森球計劃 攻略|新聞

廣告
目錄 https://gamemad.com/guide/76550 廠內物流規劃設計廠內物流規劃設計-方法論面向過程程式設計面向對象程式設計領域驅動設計廠內物流規劃設計所謂廠內物流如果去掉工作人員,那麼我認為就有以下幾點: 生產線平衡。 工作地佈置規劃。 物料存儲區規劃。 那麼在遊戲裡,有展現的就比如:小小大工廠(Little Big Workshop),這個遊戲如果你要真以用最快的速度完成的話,你就必須要考慮到上述三點。否則,你的員工就會滑水摸魚。 再比如異星工廠(Factorio),這個遊戲的火車,本質上就可以理解成「物料存儲區規劃」。在物流規劃裡,這部分有幾個要素: 對於大價值的零件,要有最小臨時庫存。對於小價值零件,要根據包裝的收容數確定。 具體到遊戲裡,對於大價值零件。比如藍板,衛星等。都是現場製作,現場使用。對於小價值零件,比如銅鐵礦,直接集中擺上若干個廠就完事。 包裝形式根據具體情況制訂。 具體到遊戲裡,根據生產區的實際流量大小和生產要求。選用正確的包裝形式,要麼選傳送帶上貨品,要麼選無人機一次多個。 再者,需要考慮到工位(也就是每一個工廠)需要從包裝中取勝貨物的方法(比如人運,分揀器和機械爪)。那麼這樣,一個工廠的基本結構就出來了 考慮物流成本,物流成本在要綜合考慮廠區自身資金和供應商運輸壓力 具體到遊戲裡,所謂工廠本身的資金就是你的肝。玩這遊戲,你的生產成本有兩個:一就是你的肝,二就是遊戲裡的地皮。而供應商的運輸壓力其實是不存在的。遊戲裡不存在供應商壓貨的需求。 在了解以上理論以後,再去掉遊戲中根據不需要考慮的合理性要求。那麼,設計一個工廠最簡單,最好想的形式就出來了:總線。 從這個角度考慮,物流塔的存在,使得物流成本大幅度降低。在物流成本極大降低增加的情況下,「物料存儲區規劃」就不存在問題。那麼,玩家所說的遊戲體驗降低就是一個客觀存在。 廠內物流規劃設計-方法論根據上述觀點,限制物流塔是必須的。那麼,假定持有這種觀點,物流塔應當如何限制,才能保證遊戲樂趣呢?同樣,也要從上述理論考慮: 1. 限制物流塔的數目是不足夠的,物流塔的存在就是一種技術突破。而對於任何一種理論,只要技術突破了就一定不能隻從舊的理論的出發。比如,當相對論出現以後,雖然經典物理體系一樣能用,但是用的時候就一定要注意使用範圍。 那麼,對於這裡也是一樣的。比如限制為:一星一塔三本地(即一個星球一個星際物流塔,三個本地物流塔),這個不能完全解決問題。一塔三本地就是5個物料輸入。那麼我只要有兩個星球,就是二塔六本地。經過簡單的設計,就可以避開限制。 具體到遊戲裡:最麻煩的綠糖,其實可以分成兩部分,引力透鏡和量子晶片。你給他溯源一下,就發現,這兩種材料都可以在有三個星球的星系裡,使用一星一塔三本地的限制,完成大規模生產。 2. 在不限制物流塔的情況下,可以考慮增加物流塔的成本壓力。對於現有的物流塔來說,他降低了運輸成本。那麼,可以給他加回去,讓你用的時候要更加小心。雖然說,這遊戲的主要成本是肝。但是實際上,在遊戲裡,運輸成本其實是電,飛船和曲鞘。因為運輸船每次外派都要消耗電,飛船和曲鞘。不過,這裡飛船是可回收的。 那麼,在這種情況下,增加運輸成本就有兩種思路: * 增加消耗器的消耗,這個不可取。消耗器用肝就能補齊,而用肝補的東西都是惡心玩家。 * 增加飛船的消耗,這個可取,遊戲裡現在的飛船非常簡單無腦。那麼,如果將星際飛船變為《X4:基石》的那種呢?即:星際飛船是一種需要玩家自行製作的,可以搭乘的,可以配置的中型產品。玩家生產每一架飛船都需要消耗巨量的物資,以此限制飛船數目。 同時,每一架飛船不再隻服務於一個物流塔,而是可以服務於多個物流塔。那麼這時,就需要設計星際間物流。這樣的修改是增加遊戲內容。 綜上,有如下建議: 1. 將星際物流塔的工作範圍限制在本星系 2. 在星系間,增加一個比如名為「貨棧」的巨構。玩家需要首先建設「貨棧」才能開啟跨星際運輸,物流塔把所有的星球資源送入「貨棧」 3. 在「貨棧」裡,玩家可以消耗大量資源建設星際運輸船。星際運輸船在建設以後,擁有超大量的空間,可以在貨棧之間運輸貨物。 那麼這樣,看上去就比原來更加費肝。但是,這一些就不再建立在惡心玩家的基礎上了。好用的東西一樣好用,要你設計的東西還是要設計。而且,理論高度更上一層樓。異星工廠,你只是在一個星球上搞三搞四。 而這個方法,則是考慮在整個宇宙裡遨遊四方。 面向過程程式設計我玩遊戲有幾個層次和目的,一來是享受遊戲本身的樂趣。二來是理解遊戲的實現方式。三來是思考遊戲對現實世界的啟發。那麼具體到本遊戲裡,就是這樣的: 在沒有物流塔之前,生產線的設計是「自頂向下,逐步細化」這是一種面向過程的程式設計思路。在這種思想的指導下,就會有一個必然的產物:函數。人們總是期望復用已經寫好的內容和模塊。所以,在面向過程階段,使用了函數做為復用單元。什麼是函數?函數就是根據指定輸入,輸出指定內容。具體到遊戲裡,就是一個大家耳熟能詳的詞:黑盒。 所謂「黑盒」,在異星工廠那裡,就是有設計過的生產線,用最低的成本設計一個生產效率最高的模塊。這個要求與函數何其的相像?在每一個程式裡,程式設計師對於函數的設計都是無止境的,任何一個函數都需要進行優化。這是我認為黑盒的理論來源。那麼,如何優化「黑盒」?如何優化「函數」?優化函數不過就是兩個指標「時間復雜度」,「空間復雜度」,那麼優化黑盒也是一樣。 具體到遊戲裡,你需要對黑盒的生產時間進行調整,選用合適的配方,可以讓黑盒在同樣的時間生產更多的內容。選用合適的傳送帶佈局,就可以讓你的黑盒更加緊湊。這對於每一個程式設計師而言,都是老本行。 我在公司教育訓練的時候,對於完全無基礎的員工,有要求他們去玩一下 異星工廠。我的作業很簡單,設計一個藍板的黑盒,不許抄別人的作業,要從 「時間」和「空間」 兩個維度分析我為什麼要這麼設計。 面向對象程式設計但是,物流塔的出現讓設計思想有了進一步的升華。物流塔出現以後,玩家可以使用模塊為單位對工廠進行設計。那麼,這時指導理論就變成了面向對象程式設計。在面向對象程式設計中,需要考慮的問題就不再是某個函數的效率,而是整個系統的復用性。 那麼,這時就會發現,最優解變成了面水黨。如果不知道怎麼弄的可以參考我之前的文章。這也是為什麼我瘋狂的吹物流塔。我同樣給我的學生留了一個作業: 在戴森球計劃裡,如何展現「高內聚,低耦合」的程式設計思想 那麼,答案就很顯而易見,並且非常簡單了。面水黨通過把每種產物都分解開來,每個產物增加了不同的物流塔進行生產,生產線之間沒有互相影響的情況。更換一個生產線,只要生產速度相同對整體沒有影響。這個就是「低耦合」。而生產線之間的生產過程使用工廠進行,修改時也隻針對本工廠和本物流塔,這個就是「高內聚」 那麼,試問對於一個已經進入面向對象階段的程式設計師。你要給他多少好處,才能讓他重回面向過程呢?我認為,現實裡很簡單,你加點錢,不要說面向過程,面向二進位我也做。但是,遊戲裡我認為是給不起的。 領域驅動設計在面向對象的程式設計裡,有一個重要的概念就是「最小知識原則」對於一個類而言,他要認識最少的內容。所以,才會有設計模式。比如工廠模式,就是通過「封裝性」隱藏掉了「具體的產品」,隻向外界暴露出工廠類,產品抽象類 兩個知識。 那麼,所謂「最小知識」就可以理解為一個概念的邊界。這就引出了現在最熱門的程式設計思想,領域驅動設計(DDD)。 具體到遊戲裡,每一個物流塔都可以感知到整個宇宙裡所有其它的物流塔,那麼就相當於他認識了全宇宙所有的知識,這顯然不符合一部分玩家的理解。那麼,詬病他也是應該的,同樣,修改他的方法也不應該是限制他的數目。因為,一個類被實例化以後,你限制他在函數裡的實例個數,就相當逼迫程式多開幾個函數。這是完全搞人肝的做法,完全沒有意義。同樣,還是我剛才的建議: 1. 將星際物流塔的工作範圍限制在本星系 2. 在星系間,增加一個比如名為「貨棧」的巨構。玩家需要首先建設「貨棧」才能開啟跨星際運輸,物流塔把所有的星球資源送入「貨棧」 3. 在「貨棧」裡,玩家可以消耗大量資源建設星際運輸船。星際運輸船在建設以後,擁有超大量的空間,可以在貨棧之間運輸貨物。 從程式設計思想的角度來看他,所謂「貨棧」就是一個模塊的邊界(接口)。只有「貨棧」才能開啟星際運輸,意味著只有「邊界」才能與其它模塊進行資料交換。 所謂星際物流塔只能在本星系工作,就是將領域的邊界明確化。本星系就是一個領域,他隻負責生產一種/一些產品,而通過「邊界」與外界進行資料交互 所謂的「復雜星際運輸船」指的是領域間資料交換的成本。在DDD使用的場合裡,資料的交換成本有些是很高的。所以用這個進行模擬。 同樣在的,在DDD裡,「微服務」是一個很火熱的概念。那麼,我的建議就可以理解為每一個星系都是微服務中一個模塊。星系運輸船相當於在微服務之間有帶寬限制的網路環境。那麼,如何設計就是一個可以研究和討論的問題。 https://gamemad.com/upload/images/2021/07/06/60e34f044c71e.jpg 來源:戴森球計劃吧 作者:巨龍之息《戴森球計劃》物流塔及生產線設計指南
https://gamemad.com/guide/76550
0