以下黃字為skycat2216版友糾正與補充
為方便版眾閱讀 以及傳達正確資訊 故加入此篇文章
剛好學過資訊
來回一下遊戲運行與優化的原理好了
遊戲優化並不是那麼的容易 尤其在PC上
現在的PC使用的是"複雜指令集"
這代表每個輸入的指令都是長短不一 複雜程度不同
而MOBILE的CPU、RAM都沒有電腦那麼高級 甚至使用的是CPU的內顯
還可以跑很多特效華麗 畫面細緻的遊戲
是因為手機使用的是"精簡指令集"
不管是PC還是MOBILE CPU都使用二進制
複雜指令集就像
0111000
1001010010110
11010100101
010011100111
000101010100111010
而精簡指令集就像
101010
101010
000101
101010
011101
明顯看的出複雜指令集的空間複雜度與時間複雜度遠大於精簡指令集
智障都知道哪一種指令集可以更快速的運行
你可能會好奇 "幹 那為什麼PUBG不要使用精簡指令集就好"
我只能告訴你 不可能 CPU架構不同
PC上的CPU是無法讀取精簡指令集的
當初CPU大廠intel設計出第一顆CPU時 就是採用複雜指令集
而電腦周邊的零組件、作業系統以及程式 就是圍繞著CPU下去製造
若要提升複雜指令集的運算速度 方法只有一種 就是升級硬件規格
升級CPU啊 RAM啊 GPU啊 或是超頻
另一種方法就是硬拆複雜指令集成若干較為精簡的指令再行運算
你在遊戲中看到的每個物件都是一大串的指令
WASD 跳躍 蹲下 趴下 也都是一大串的指令
甚至你看到其他人物在奔跑 也是一大串的指令
若一個遊戲要讀取的動作、場景越多 則指令越複雜
暫停一下 你可能會問 "為什麼動作場景越多,指令會越複雜"
我們做個假設好了
W的指令是001
A的指令是010
S的指令是011
D的指令是100
跳的指令是101
蹲的指令是110
趴的指令是111
那請問跑的指令不就塞不下了嗎
所以場景與動作越多 所需的空間複雜度越大
而PUBG所使用的是開放式場景
也就是超出地圖外的物件 還是有物件渲染
你看海就是一望無際 天空也是一望無際 超出邊界的土地也是一望無際
這些指令就更加的複雜
那指令越複雜 運算就越慢
運算速度的快慢 會反應到你的畫面上 也就是FPS
而遊戲優化指的就是
"將這一大串的指令,用更小的時間與空間複雜度,將其輸入給CPU"
而CPU會再下達指令給其他硬組件
但優化這些指令集就是關於到遊戲引擎 也就是演算法
那你可能會覺得 "幹 說那麼多 以後CPU就用精簡指令集就好啊"
我也只能告訴你 不可能
全世界人口那麼多 全世界的PC那麼多台
使用複雜指令集的程式更多
如果要全部改用精簡指令集的話 又是一次科技革命
別說遊戲喇
連Windows、Office、新接龍、彈珠台 全部都要重做
你覺得有可能嗎
我可以偷偷告訴你
現在intel已經偷偷出了可以同時執行精簡指令集與複雜指令集的CPU
其原理就是將精簡指令集轉換成複雜指令集 故可以同時執行兩種指令
但說到底 他媽的還是複雜指令集啊
那你可能又會說 "幹 那就趕快改演算法啊"
我還是會告訴你 不可能 頂多就是微調
但微調就很容易出BUG
例如:不小心定義到相同的指令集、讓Code符合命名規則,卻得整個除錯
所以每次大更新後 常常出BUG就是此原因
修復BUG也是找出相衝的指令集 加以修改
但一張地圖有多少的指令集 要挑出錯誤有多困難
就好比 你要從一本30萬字的小說中挑出一個錯字
而演算法也不是說改就改
改演算法幾乎等於整個遊戲都要重做 所有指令都要重新定義
所以別在優化優化 藍洞都不做事的喊了
優化不是像網路上的什麼一鍵優化
網路上流傳的Config一鍵優化也只是更改你的電腦設定
將不需要的背景程序先暫停 並更改你的電腦設定
使其有更多的資源 更快速的運行指令而已
如有錯誤 歡迎於推文指正、討論
※ 引述《seal46825 (Vanish)》之銘言:
: 以前我玩吃雞fps大概都30-40
: 經過不斷優化後
: 現在大概有40-50
: 不過玩過高fps的就會覺得真的差滿多
: 不曉得吃雞之後有沒有可能更優化遊戲
: 真希望可以優化到fps可以到60
: 我玩虹彩六號畫質調差不多fps可以到60左右
: 不過pubg物件那麼多可能不能這樣直接比較?
: