0795-3555660
發布時間:2021-9-16 10:31:58瀏覽人數:1641作者:管理員
最近筆者肝了 500 多個小時在玩兒《戴森球計劃》,雖然這款游戲依舊在搶先體驗階段,但在完成度上實際還是非常高的,擋不住它真的好玩兒,這樣的“期貨”游戲吊足了玩家的胃口,即便是“期貨”如今也收獲了一大批的玩家。
通過《戴森球計劃》這款現象級的游戲我們看到,開發期的游戲往往面臨著諸多的困難和挑戰,工作室人手不足、游戲中 bug 太多、貼圖鬼畜、一核有難多核圍觀…… 這些問題《戴森球計劃》在初期開發的時候都有遇到,游戲雖然好玩,但不少玩家也在吐槽“一幀不卡,兩幀流暢,三幀電競”,當然,游戲優化問題不是一朝一夕能立馬解決的,這需要大量的時間和精力進行錯誤定位、算法優化、代碼重構等操作以此降低游戲整體對資源的損耗,最大化的利用系統資源。
好在《戴森球計劃》團隊花了大把的時間已經完成了對游戲的初步優化,包括多線程支持、代碼重構、各種 bug 修復、新功能的增加,這些優化極大的提高了游戲的可玩性。
此前《戴森球計劃》的開發方柚子貓工作室也解答過這款游戲不單單是多核游戲也是一款 GPU 游戲,隨著處理器和顯卡分工越來越明晰,這類擁有大量的高度自由化素材游戲對 CPU 和 GPU 要求越來越高。
比如在《戴森球計劃》游戲后期有數萬架運輸機在不同星系之間來回穿梭,數萬個設施同時運作,還有幾萬乃至幾十萬的太陽帆在恒星周圍環繞,幾百萬的產物同時生產,這些必須全面通過 CPU+GPU 協同處理進一步提升游戲的體驗?!洞魃蛴媱潯饭俜揭脖硎?,凡是可以并行計算的那部分計算工作,全部交給了 GPU,剩下的那部分計算量,只要 GPU 能在 16ms 之內按時渲染出來,CPU 就絕不會掉鏈子。
相比于一些大的工作室,小的開發團隊不像大型游戲公司有著豐富的工程師團隊和專業的技術設備,他們在進行游戲開發的時候更加注重效率,利用現有的工具進行高效敏捷開發也成為了開發過程中常見的一種方法。
圖片來源于網絡
畢竟自己花一大把時間去設計一個游戲引擎,或者寫一個自認為高效的算法,并不比直接去調用現成的開發引擎和算法更加節省時間。
說起大團隊也有些比較例外的,比如 R 星開發的《GTA 5》聯機版此前就有一個存在了 7 年的史詩級“屎山”代碼,一條需要運行 19.8 億次的 if 語句嚴重影響游戲的加載速度。大團隊如果人員迭代非??斓脑?,很多祖傳的代碼可能連注釋都沒有,新來的人不敢進行維護優化,老員工不愿意接手,這樣的陳年“屎山”越堆越大,導致整個程序運行效率越來越低,畢竟碼農眼里,既然它能運行起來,就不要管它怎么運行的了。
圖片來源于網絡
不過,玩家扒出這個驚天“屎山”后,對 R 星嚴重的不滿,《GTA 5》聯機版這個祖傳“屎山”代碼終于在玩家的強烈吐槽下被優化了,這其中也進行了大量的工作去重構代碼。當然,R 星這樣的“甩手掌柜”在游戲的開發過程中還是少的,更多的開發者都在盡力發揮軟硬件調度的效率保證游戲的高效流暢運行,在游戲優化過程中我們也看到類似《英雄聯盟》這樣的網游不管是在什么硬件條件下都能進行流暢的游玩,這些歸根結底還是通過工具快速定位問題,并進行專門的優化和調試以此適應不同硬件場景。
圖片來源于網絡
其實在游戲優化這件事情上,軟件和硬件都需要共同努力才可以達到最好的運行效果,對于開發者而言,完全吃透硬件而進行優化是一件非常難的事情,特別是小團隊的游戲開發商,他們更多的是依托現有的游戲引擎進行開發。
《戴森球計劃》就是一個例子,它基于 Unity 引擎進行開發,而很多優化引擎方和大型游戲開發商已經和硬件提供方進行了深度的合作進行聯合調優。最典型的例子就是英特爾,英特爾目前在處理器的性能表現上已經有著非常不錯的表現,在此之前,英特爾就早早的成立游戲合作技術部門,希望游戲整個生態可以做的更好。
英特爾游戲合作技術經理盧卷彬在今年 ChinaJoy 期間向我們介紹了現階段在游戲優化領域英特爾做的一些工作。對于游戲生態來講,硬件是基礎,軟件優化則是非常重要的,通過這幾年硬件市場的觀察來看,存儲系統是處理器計算能力的一個瓶頸,這里主要是 L1、L2、L3 緩存以及系統內存,CPU 架構上提升這些模塊都可以帶來不錯的性能提升,就以 11 代酷睿高性能移動處理器來說,英特爾提升了 L2 和 L3 緩存的大小,以此帶來了更大的數據吞吐能力。
前面我們提到,很多小的游戲開發公司都不會重復發明新的工具或者引擎,針對游戲開發者,“工欲善其事,必先利其器”這一點非常重要,工具是提升開發效率的關鍵也是幫助開發者進行錯誤定位、軟件優化的重要組成部分。在游戲發發過程中,游戲性能是非常復雜的,特別是一些元素特別多、每個元素都有自己對應的動作、每個元素之間都有碰撞,這要求游戲開發者進行高度的性能優化,才能保證在絕大部分的硬件設備上都能流暢的進行游戲。
實際上,這些復雜的場景首先會有專門的游戲引擎公司進行開發,前幾年虛幻引擎宣布引入 Chaos 物理破壞引擎,通過 Chaos 引擎,游戲中的各種元素都可以破壞,破壞出來的粒子和石塊之間也可以互相碰撞,有了這些專業的游戲引擎,小的游戲工作室也可以快速的利用這些現有的開發工具進行游戲制作。如今虛幻、Unity、Cry Engine 等游戲開發引擎已經覆蓋了 PC 和移動端的游戲制作,這些游戲開發引擎非常復雜,每個當中都有上百萬條代碼,涵蓋的模塊也非常多,包括資源管理、內存管理、角色行為、AI、圖形渲染、聲音、網絡、物理、UI、特效、動畫等等,極大的方便游戲開發者進行開發。即便是一些大的游戲開發公司,他們也會利用現有的游戲引擎進行二次開發,大的游戲開發商以及游戲開發引擎需要從底層進行優化,因為他們直接面對的是硬件,小的游戲開發商雖然在游戲引擎基礎上進行開發,但代碼的簡潔性和效率等問題同樣也要進行優化,只要開發就一定會涉及到優化問題。
這里,英特爾在幫助游戲開發者和游戲引擎開發商提供了 Intel Vtune Profiler、Intel Graphics Performance Analyzers 等工具實現快速的問題定位。
Intel Vtune Profiler 是一款業內名氣比較大的分析工具,無論是服務器還是客戶端,它可以幫助開發者分析每個 DLL、每個函數、每條代碼、每個線程,甚至每條匯編語言都可以清楚的進行分析。從高層到底層,都可以通過 Vtune Profiler 進行全面、直觀的分析。
通過 Vtune Profiler 我們可以了解到游戲的執行在哪里出現了問題,每個線程在不同的時間節點活動是什么樣的,線程之間是否有同步或者競爭關系,對于開發者來講,他們通過 Vtune Profiler 就可以對游戲有一個整體的了解,知道哪個模塊是瓶頸、哪個代碼有問題,知道在哪里修改會得到最好的優化,開發者和引擎廠商有的放矢,這樣才能更高效的進行產品提升。
我們看到 Vtune Profiler 為游戲開發者和引擎廠商提供了翔實的性能分析信息,以上這些都是基于處理器和存儲體系,針對 GPU 調優,英特爾還推出了 Graphics Performance Analyzers 工具,預計明年英特爾的 DG2 顯卡上市后,估計也會增加對自家獨顯的支持。
這一工具通過高度可視化的 UI 幫助開發者從高層到底層定位每一幀,查看每一幀實時渲染的參數,通過分析每一幀的參數信息,以此定向的進行優化。當然,以上工具只是幫助開發者快速定位問題,還有一些游戲開發的初期,英特爾的技術工程師團隊也會加入其中,另外在新的硬件平臺發布的時候,英特爾也會為一些游戲開發者提供測試版的機器以便他們可以快速支持新設備。
通過工具的快速定位問題,接下來就是進行落實到具體優化上。這里通常有四種辦法進行優化。第一種方法就是修正明顯的問題代碼,由于游戲開發涉及的代碼量比較龐大,并且也非常復雜,特別是一個團隊既有程序開發又有美工,這時候二者可能不會互相考慮,因此修正問題代碼就可以很好的解決這些問題。
其次就是并行優化,目前不少的處理器都是多核多線程的設計,但“一核有難,多核圍觀”這樣的情況非常常見,明明可以多個車道一起跑,但由于優化的問題導致線程都是在擠一個車道。
就拿《戴森球計劃》來說,這款游戲在初期對多線程的優化支持并不好,很多邏輯計算全都擠在一兩個線程中,在優化后,游戲中的部分資源由 CPU 處理轉到 GPU 處理,CPU 所處理的內容也都通過多線程方式進行高效處理,保證硬件時刻都在高效的處理數據,這就是并行計算的好處。當然,《戴森球計劃》使用的 Unity 引擎對多線程支持本身就很好,Unity 引擎支持 ECS 和 Job System,可以快速的利用分配多個線程以此提高執行的效率。另外,指令集并行也是重要的優化手段,這里主要還是英特爾和引擎開發商之間的配合,以虛幻引擎為例,在虛幻 4 和虛幻 5 中,虛幻引擎通過修改算法代碼使得諸如 Chaos 這樣的物理破壞引擎可以實現指令集并行,開發者通過調用這些工具進行簡單的設置就可以在高效性能的基礎上實現更加豐富的游戲畫面展現。
第三點優化方法就是算法優化,算法這個問題要具體情況具體分析,不同的游戲所遇到的瓶頸時不同的,利用更好的數據算法或是數據結構進行針對性的調整這些需要游戲開發者進與英特爾這類硬件廠商深入去探討。最后一點優化方法則是從底層架構進行優化,這一點是英特爾這類硬件廠商和開發者共同來完成,游戲開發者前面的工作如果都做好了但仍然覺得性能不夠好,他們有能力和余力可以進行底層架構的優化,英特爾的工程師也會提供相關建議給他們,讓他們自己評估這對 CPU 代碼架構改變會有多大,是否影響維護針對這些問題由開發者做取舍。
在過去兩三年中,英特爾和一些我們熟知的游戲都進行了深入的技術合作,比如《自走棋》、《逆水寒》、《仙俠情緣 3》、《新倩女幽魂》、《天涯明月刀》、《PUBG》等,通過游戲的優化,這些游戲能夠更大范圍的覆蓋各種類型的硬件設備,以此降低玩家的硬件成本,帶來更好的游戲體驗。就拿《英雄聯盟》這類主流網游來講,現在無論是獨顯還是核顯都可以進行實時暢玩,降低了游戲的硬件門檻,這其中優化帶來的性能提升非常的關鍵。英特爾也表示,也將通過與開發者和游戲引擎開發商進一步深入合作,不論是先有的硬件產品還是未來即將發布的新架構處理器產品,英特爾都將持續支持。
在出色的游戲引擎和諸如英特爾這樣的硬件提供商的扶持下,現在我們國產游戲開發者開發新游戲的門檻越來越低,我們樂見類似《戴森球計劃》這樣優秀的國產獨立游戲能越來越度多的在游戲市場上有著更多的話語權,隨著更好的工具的出現,國產獨立游戲也有著更加高效的開發環境,讓更好的游戲概念加速落地以呈現在玩家面前。
宜春智能家居-科維鏈接:http://www.lovingsagereiki.com 科維網絡IT運維部,致力于IT外包領域多年,服務網點遍及宜春各區,十年來已為數百家企業提供過IT技術服務。 歡迎您來電咨詢,我們將竭誠為您服務!0795-3555660
IT運維中心服務項目:電腦維修、網絡維護、智能家居、監控安裝、無線覆蓋、系統集成、辦公設備耗材供應、IT外包服務等業務。 |