遊戲開發中遊戲效能的最佳化

ii_chengzi發表於2020-05-14

大家好,我是優就業小優,又和大家見面了。

這節課我們來聊聊遊戲效能最佳化。大家在玩遊戲的時候可能經常會遇到卡頓,延遲,當機,不流暢等等問題,那麼這些問題是怎麼引起的呢?如何去儘量的減少這些情況的發生呢?這些問題對於遊戲開發者來說是必須要面對的問題, 也是必須要解決的問題!下面就由我來給大家講講在開發中我們應該從哪些方面著手去減少或者解決這些情況的發生。

上面我們例舉在遊戲執行的過程中可能會遇到的一些問題, 每種問題引起的原因有很多多,但是我們可以從大方向對整體遊戲進行最佳化,使遊戲整體效能更優,從而減少這些情況的發生。對於效能最佳化我們大體可以從四個大方向去最佳化,即:CPU,GPU, 記憶體以及網路和IO,下面給大家一一講解:

遊戲開發中遊戲效能的最佳化

CPU最佳化,在遊戲中CPU主要分擔著運算的責任,因此像短時間大量的計算從而導致畫面不流暢,電量消耗大,發熱嚴重等情況都可能是因為CPU導致的。針對這些情況我們就需要對CPU最佳化,那麼CPU的最佳化說白了就是對運算的最佳化,大家應該儘量減少大量運算或者短時間的大量運算,對此大家可以從四方面著手。一是將計算分散到多個邏輯中,減少短時間的大量運算。二是將可以快取的資料儘量快取起來,從而避免那些重複的計算。三是減少CPU對資源的申請、銷燬與調配。四是使用合理的演算法和資料結構,這個也是CPU最佳化中最重要的。

遊戲開發中遊戲效能的最佳化

GPU最佳化,GPU的職責就是負責遊戲中所有的影像、特效的渲染。GPU的消耗過高會導致遊戲畫面卡頓、畫質降低、手機發熱等情況,嚴重影響遊戲體驗。對於遊戲來講這是致命的。關於CPU最佳化大家可以從以下幾方面入手:

1、資源最佳化,比如合理規劃圖集,指定合理的粒子效果,約定模型的三角面數

2、簡化著色器,使用多級紋理與材質貼圖技術相結合

3、使用LOD技術、遮擋剔除等技術,減少GPU繪製的數量

4、針對不同的系統平臺使用對應的壓縮格式。

5、最佳化視訊記憶體頻寬

遊戲渲染可以說是遊戲的心臟,所以GPU的最佳化顯得尤為重要,需要開發者格外的重視

遊戲開發中遊戲效能的最佳化

記憶體最佳化,記憶體的功能我就不多介紹了, 相信大家都瞭解。由於記憶體不足所導致的問題有閃退,卡死等。對於記憶體的最佳化,一是降低資源的大小,比如剔除不需要的資源、對資源進行壓縮等;二是及時動態的載入和解除安裝資源,這樣可以大大的減少瞬時記憶體的壓力,減少因記憶體浪費而給遊戲帶來不必要的消耗。三是降低資源的質量,這是一種有損的最佳化,不到最後一般不用,當然我們也可以根據不同的裝置使用不同質量的資源,將損失降到最低。

網路和IO最佳化, 他們主要負責資源的載入, 可能是網路的或者本地的。網路不好,或者資源載入時間過長會讓大大降低使用者體驗。因此在CPU、GPU、記憶體最佳化後我們同時也不能忽略網路與IO最佳化,對於網路與IO的最佳化,大家可以從以下幾方面入手:

1、限制短時間內的發包率

2、合理最佳化包大小,減少包的冗餘資料,降低網路請求次數

3、對回包進行分幀處理,及時響應

4、使用獨立執行緒、協程等手段最佳化資源載入。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2692131/,如需轉載,請註明出處,否則將追究法律責任。

相關文章