/post_assets/Factorio.jpg)
[Factorio] FFF #374 - 無人機 & 調度站優化 | 異星工廠 | Space Age
[Factorio] FFF #374 - 無人機 & 調度站優化 | 異星工廠 | Space Age #
喂 早晨我是hfok
又到了周末了 代表異星工廠又出了一個新的Blog
這次是FFF #374
這次的主題是一些比以前更高智能的機械人
而且是圍繞著飛行的機械人(無人機)
在過往裡面他們收到無數次都有人投訴 飛行機械人有問題的
所以希望大家會懂得欣賞這篇Blog
然後就來到第一個大題目 遊戲體驗和新內容的對比
在這裡他們就說
我們知道大部分的人都是希望在這個Blog裡面
看到有什麼新的內容
而不是純粹就是一些遊戲體驗的改善
因為始終只有遊戲體驗的改善
是吸引不到人去買遊戲的
看到的也不會特別興奮
但是他們就絕對相信
如果你想加一些新的內容
一些新的機制
一些新的系統進去一款遊戲的話
特別是如果那個系統或者機制等等的東西並不是那麼簡單的話
在很多時候都會給人感覺就是加了太多東西進去遊戲裡面了
所以他們覺得先改善遊戲體驗就會減少了這堆的煩惱
除此之外 藉由這些遊戲體驗上的改善
會讓你的腦裡面騰空一些位置出來
去接受一些新的事物
在這裡他們就給了一個很有趣的例子
就好像當你買了一件新玩具回來的時候
回到房間裡你都會特意收拾一個位置
然後把才打開新買的玩具
這就是他們先用遊戲體驗的東西打頭陣的原因
他們也想再一次很清楚地告訴大家
他們並不是不想展示一些新的內容給大家
他們也知道大家是很想看這些東西的
但是他們覺得這一步是必須要做的
這樣就可以讓大家看到新的東西的時候
已經沒有了這堆煩惱
完完全全去感受一下一個新的內容是多麼美好的
所以大家是不需要擔心的 下個星期一定會有新的東西給大家看
下一部分他們就解釋到底怎樣可以改善
機械或者無人機的智能
想知道他們改善了什麼 就需要知道本身的問題在哪裡
由最基本的說起
無人機其實已經在異星工廠很多年歷史了
他們的指令其實一直都非常簡單
就是去一個地方
撿起一件東西
把那件東西放在另一個地方
就是這麼簡單的
當這個指令只需要移動一件東西的話
是絕對沒有問題的
問題正正就是玩異星工廠時
你要撿起的東西永遠都不會只有一件東西
這裡他又舉了一個例子給我們
例如現在有500件東西由一個箱子移到另一個箱子
系統會怎樣做呢
話說系統裡面其實就是一個清單
知道每一隻在閒置的無人機
而到底系統怎樣才可以識別到一隻無人機是否在閒置呢
當一個無人機做完一個任務
從一個地方拿起一件東西放在另一個地方 然後回到調度站
充電之後就會收回到調度站裡面
收回到調度站之後 系統才會確認他是在閒置
在中間的那段時間裡面
系統是沒有辦法再叫這個無人機去做任何其他事情的
當系統接到一個任務
例如剛剛所說的要將500件東西由一個位置搬到另一個位置
系統就會找最接近的無人機 叫他們過來幫忙搬東西
這樣就一直找 找到終於500件東西都有無人機搬運
這樣就完成了整個任務
聽到這裡 你可能就已經發現
很多時候都未必會有500隻無人機在你想要的位置
通常他們都會四散在你的基地不同的地方
如果你突然要叫500個無人機
通常去到了最後 只剩下在最遠的那些無人機
要過來的時間是非常非常之長的
剛剛所說是一個物流機械人的例子
如果是建設機械人又怎樣呢
例如你想剷除你眼前的森林
以前的做法是你身上的無人機會飛出來
身上最多能夠控制25個來幫忙
拆掉25棵樹後 還剩下的大量範圍
都是由一些在基地比較遠的建設機械人飛過來幫你拆走
要等的時間是非常長的
他們現在解決的方法就是讓無人機
即使它不是在完全限制的情況下
它也可以再增加一些新的工作量
又或者用他們的說法就是
無人機現在可以有一個工作的排程
無人機雖然是可以排程
但也代表不可以再用原用閒置無人機的方法了
所以取而代之的就是透過計算無人機到達時間
然後最短的到達時間就會有一個優先度
這個到達時間就會計算那一隻無人機
究竟由它現在手上做的工作
又或者它是閒置也好
飛過來這個位置是需要多久的時間
當然在當中是有一些預計的情況
例如當無人機還沒到達調度站之前
其實是沒辦法預測在那個調度站要排多久才能充電
這一類型的東西他們只不過是給了一個估算的方法
當然這種估算絕對不是100%正確的
假如你可以手動控制每一隻無人機的話
你一定會比估算出來做得更快
但長遠來說這種估算基本上是不會留意到它實際上有多大的分別
接著就可以用兩個版本做個比對
左邊是現在 右邊是Space Age的版本
你可以看到物流無人無人機連充電都不用便可以不停來回
效率也明顯比以前好
然後下一個對比就是拆樹的測試
你可以看到右邊Space Age主要是靠我們身上的建設無人機清理了這些樹
說到這裡Space Age的版本已經拆完了
但左邊還在等一些來自遠方的建設無人機把剩下的樹給拆了
無人機的效率明顯有所改善
但這個效率會不會伴隨著很大的效能影響呢
如果用原有的方法 一個清單上有所有無人無人機的行程的話
的確對效能影響非常大
所以他們改用了另一個方法
遊戲地圖裡面是以一格一格的形式去分區
每一次無人機接到新的任務之後
他們就會根據他們的排程最後會在哪一個格完成
把這個記錄記錄在那一個格的清單上面
當有一個新的任務 系統就會先檢查發出任務的那一個格裡面
清單上面會不會有無人機 如果沒有的話又或者不夠的話
才會以螺旋形式向外找其他的無人機
也都是因為這樣 不需要再檢查所有無人機 所以效能影響並不大
在這個情況下
即使你有幾千個無人機也好 對遊戲的效能影響不大
有效地分配工作固然好
但有時候你也想有一些無人機長駐在某一個位置
在這裡他們舉了一個例子
例如你在你的機地裡面設計了一個補給站
放了一大堆中轉箱在那裡 但他附近的調度站連一個無人機也沒有
結果也得等 於是開發者在調度站加了一個新的功能
你可以設定這個調度站裡面應該有多少個無人機留守在那裡
只要有閒置的無人機 他們就會盡量滿足這個要求
在這條影片就可以看到 跟剛才不同的
因為這些無人機調度站已經有一些留守在那裡 你要補給就即時補給完
他們也會立刻離開這裡
但也很快會有一批新的無人機 再次留守在這個調度站裡面
最後 無人機充電有時候也有些問題 這個可以分拆成兩部分
首先說有時候太多無人機需要充電
他們只會圍住最接近的幾個調度站去排隊
最後無人機就好像塞車一樣 卡在那裡
原本無人機決定用哪一個調度站去充電 只在意兩件事
1.調度站和無人機的距離有多遠 2.有多少隻無人機在那裡充電
這兩件事 判斷他們應該用哪一個調度站
導致無人機會無視一個很接近但沒有人用的調度站
所以他們就加入了兩個關鍵的決定因素
讓無人機去決定使用哪一個調度站
這兩個因素就是
1.到底有多少個無人機準備到該調度站充電
2.這個調度站有多少個閒置的充電位置
純粹多加了兩件事讓無人機需要留意
整個充電站塞車的問題就得以解決
而另一個充電的問題就是渡海泳的問題
簡單形容一下這是什麼問題
有時候無人機要從A點送東西到B點的時候
中間要跨過一個很大的海域
無人機飛到海中心的時候就發現自己沒有電
回到最接近的調度站充電
充完電之後就再向前飛
飛到同一個位置 又發現自己沒有電
回頭到同一個調度站充電
不停地無限輪迴 最後什麼都做不到
就好像畫面裡白色方格的無人機
為了解決這個充電的問題
他們就決定在Space Age裡面
無人機每一次如果要找調度站的話
他們都盡可能找一個距離終點接近一點的調度站去充電
即使所需時間長一點也好 盡量往前飛 不要回頭
這樣就可以確保無人機永遠都是向著目標進發
而不會再像現在這樣鎖在一個無限輪迴裡面
這個做法雖然並不是最好的解決方法
更好的解決方法可能就是讓無人機有一個聰明一點的
讓他們自己找一條最適合的路線
去確保自己的沿途可以充電
但是如果這樣做的話 遊戲的效能就會受到一個非常大的影響
基於這個限制之下 他們希望這個已經是一個最好的解決方法
以上就是第374篇FFF的內容了
看完這篇影片之後 完全不明白
為什麼他們一開始要這麼害怕被人家責備
只要你玩過異星工廠到發射火箭的階段
我相信你們起碼都會遇到一個甚至全部他們所說的問題
而且這些問題 即使現在透過模組也無法解決的
這些是必須要靠開發者本身在程式上作出改動才能改善的東西
我相信會留意他們的Blog的人都是已經玩過異星工廠的人
所以這次的Blog對我們玩家來說
是一個非常大的喜訊
不知道你們又覺得怎樣
不妨在留言告訴我
如果你喜歡這類型的片
請訂閱我的頻道和點讚支持我! 謝謝!
歡迎加入我的Telegram或Discord一起討論
(連結在資訊欄內)
有興趣緊貼POE消息的朋友們可以訂閱相關頻道!
YouTube: hfok
YouTube: Snakie002
Twitch: Snakie002
Blog: Snakie002hosifu
FB Page: Snakie002
IG Page: Snakie002