優(yōu)化相關(guān)mod簡介與實(shí)測
測試的mod: DSPOptimizations, BulletTime, SampleAndHoldSim
測試存檔: 9k白糖, 藍(lán)巨戴森球每分鐘發(fā)射3w太陽帆+2k火箭

在游戲中可以按shift+F12顯示渲染幀率(FPS)和邏輯幀率(UPS)
當(dāng)渲染幀率過低時(shí)(<30),邏輯幀率會降低。反之亦然。
在測試之前的渲染幀率=11,邏輯幀率=22。
分析面板主要邏輯=42.8ms,全部生產(chǎn)線=29.0ms,戴森球系統(tǒng)=11.1ms。

DSPOptimizations
- 增加物流塔入庫/出庫運(yùn)算的多線程
- 可以在設(shè)置檔關(guān)閉影子及關(guān)閉發(fā)射中太陽帆
- 改進(jìn)戴森球運(yùn)算邏輯
純優(yōu)化mod, 美中不足的地方是和聯(lián)機(jī)mod沖突
細(xì)節(jié):
記錄每層戴森球的結(jié)構(gòu)點(diǎn)數(shù)和細(xì)胞點(diǎn)數(shù), 只在變動時(shí)更新值。每幀用這個(gè)值計(jì)算發(fā)電量。
只在使用編輯器著色筆刷或細(xì)胞點(diǎn)數(shù)變動時(shí)更新戴森球殼的材質(zhì)。
只有在太陽帆子彈或建設(shè)中戴森球可見時(shí)才會同步ComputerBuffer。
測試效果:
> 倉儲? ? ? 2.53ms -> 0.97ms (-1.56ms)
戴森球系統(tǒng) 11.12ms -> 1.45ms (-9.67ms)
> 彈射軌道? 7.18ms -> 0.52ms (-6.66ms)

BulletTime
1. 調(diào)整游戲速度
將邏輯幀中除了機(jī)甲和操控的部分隔離出來
讓使用者自行調(diào)整它們(工廠,戴森球等)的運(yùn)算速度
如此一來可以犧牲速度來換取畫面的流暢度
2. 背景自動保存
自動保存的期間讓游戲進(jìn)入時(shí)停狀態(tài)避免數(shù)據(jù)更動。
玩家可以在時(shí)停狀態(tài)中移動或著查看建筑情報(bào)。
(因?yàn)樾乔虻臄?shù)據(jù)獨(dú)立性, 也許只要阻止玩家更動全域資料就好?)
3. 加快載入主選單
跳過封面存檔的星球模型載入
測試效果:
滑桿設(shè)置33% FPS:30|60 (實(shí)質(zhì)邏輯幀20)
總計(jì)? ? ? ?43.44ms -> 14.48ms (可承受61邏輯幀)? ??
滑桿設(shè)置25% FPS:60|60 (實(shí)質(zhì)邏輯幀15)
總計(jì)? ? ? ?43.44ms -> 11.86ms (可承受72邏輯幀)??

SampleAndHoldSim
將緩速的概念延伸, 并試圖維持平均產(chǎn)量不變。
以取巧的方式,藉由犧牲遠(yuǎn)端星球的模擬精度來提升邏輯幀率。
細(xì)節(jié):
把星球上整個(gè)工廠看做是一個(gè)黑盒, 黑盒內(nèi)元件運(yùn)作速度1/x倍, 黑盒的輸入輸出放大x倍。
如果工廠是穩(wěn)定的, 則長期下來平均產(chǎn)量會和原本的工廠相同。如果不是穩(wěn)定的,則會拉長反應(yīng)時(shí)間x倍。
戴森球和運(yùn)輸船仍保持原本速度。 https://b23.tv/BV1oB4y1X78J
測試效果:
設(shè)置factory:21 Cycle:3 ticks?
全部生產(chǎn)線 29.07ms -> 11.18ms (-17.89ms)
> 彈射軌道? 7.18ms -> 8.29ms (+1.11ms)
設(shè)置factory:7 Cycle:9 ticks?
全部生產(chǎn)線 29.07ms -> 5.22ms (-23.85ms)
> 彈射軌道? 7.18ms -> 8.41ms (+1.23ms)

綜合DSPOptimizations +?SampleAndHoldSim達(dá)到60FPS

設(shè)置factory:12 Cycle:6 ticks?
總計(jì)? ? ? ?43.44ms -> 11.07ms (可承受78邏輯幀)??
全部生產(chǎn)線 29.07ms -> 6.45ms (-22.62ms)
戴森球系統(tǒng) 11.12ms -> 1.95ms (-9.17ms)

其他優(yōu)化相關(guān)MOD
輔助多功能mod Auxilaryfunction
渲染幀率: 不渲染系列
邏輯幀率: 停止工廠, 停止戴森球
可以用橙欞九月的戴森球工具箱安裝
https://b23.tv/BV1SS4y1X75n
更多圖形選項(xiàng)Mod MoreGraphicsOptions
渲染幀率: 設(shè)置全局貼圖分辨率, 各向異性過濾, 全局陰影模式
https://www.bilibili.com/read/cv10006415
ReBuffer
設(shè)置工廠建筑物中物品緩沖倉儲的大小
作者說有優(yōu)化運(yùn)算, 但實(shí)際測試效果不明顯
CompressSave (已不相容,尚未更新)
用LZ4壓縮存檔,優(yōu)化寫入速度
測試效果(使用自己適配游戲的版本):
存檔大小 956MB -> 722MB
存檔耗時(shí) 19.9s -> 4.4s
可惜原作者已經(jīng)很久沒更新了
https://www.bilibili.com/read/cv10201163
Blackbox
將黑盒打包成一個(gè)整體運(yùn)算
需要先花時(shí)間分析物流塔和工廠的結(jié)構(gòu)
還沒有完全成熟, 比較復(fù)雜也較容易出錯(cuò)

以上的Mod都可以在https://dsp.thunderstore.io/找到
推薦使用r2modman模組管理器安裝
如果要手動安裝記得也要安裝前置
例如DSPOptimizations需要安裝前置DSPModSave
并且要將zip資料夾里的
patchers\DSPOptimizationsPreloader.dll放到BepInEx\patchers
plugins\DSPOptimizations.dll放到BepInEx\plugins