PTT推薦

Re: [閒聊] Vampire survivors 性能問題

看板C_Chat標題Re: [閒聊] Vampire survivors 性能問題作者
dklassic
(DK)
時間推噓 7 推:7 噓:0 →:4

※ 引述《Senkanseiki (戦艦棲姫)》之銘言:
: 如題,明明不是說什麼繪圖多精美的遊戲,為什麼那麼吃效能阿
: 印象中會比較吃效能的通常是那種3D很精美的遊戲,但這款顯然不是
: 有玩的就知道後期敵人一多,電腦性能不夠好就很容易卡
: 但那種90年代風格的遊戲放到現在的電腦竟然還會卡老實說有點令人意外
: 他是程式寫得很冗嗎?

Vampire Survivor 效能需求應該是從兩個要素來的:

1. CPU 單核效能需求
雖然 GPU 性能日益大增,但是 CPU 的效能就沒有顯著的提升。
舉個差不多十年前頂標的例子跟現代頂標 CPU 比較(參考資料來自 Geek Bench):
CPU |Intel i7-2700K(2011)|AMD 5950X(2020)
單核|797|1686
多核|3022|16565
也就是這十年的時間雖然在最大效能(多核)上變成了五倍以上,但是單核效能也不過就到了兩倍多。大多數程式都還是很仰賴單核效能,所以現代電腦對單一程式處理能力也
不過是十年前的兩倍多。

作者有提到說 Vampire Surivor 現行版本是使用 Electron、Chromium 製作的,所以他應該是用很吃單核性能的方式在寫 Javascript。


2. 現代 GPU 成長特化 3D 渲染
雖然純粹看計算能力來說現代 GPU 似乎大增許多(參考資料來自 Geek Bench):
GPU |NVIDIA GTX580(2010)|NVIDIA GTX3080(2020)
分數|14796|180997
基本上是十幾倍的增加。
但是現代 GPU 架構並不是為了 2D 圖像顯示而設計的,是為了上百萬多邊形的 3D 模型計算而設計的。所以雖然可以顯示的多邊形數確實增加了十倍以上,但對於 2D 圖像顯示就沒有真的獲得這麼大的優勢了。這個問題在 Ori and the Will of the Wisp 團隊就有遭遇到,雖然是個 2D 遊戲,但是為了推出在 Switch 上還是得花很多努力。
參考影片: https://youtu.be/HxOUpb5UrRk (英文)


簡而言之,雖然是個普通的 2D 遊戲,但是可能:
-遊戲邏輯計算單核需求過高+沒有善用多核
-畫面計算需求龐大不適合現代 GPU 處理
基本上也是為什麼還是有一堆看起來畫面很簡陋的現代遊戲效能需求卻很誇張。


但要說能不能做得更好,答案是非常肯定的。
回頭去看 RollerCoaster Tycoon(1999)的資料處理規模遠大於現代很多遊戲,當時的電腦硬體更爛,卻可以匪夷所思地順暢執行。
Vampire Survivor 的作者看起來有公告會平行在其他架構、引擎上重製這款遊戲,讓遊戲可以跑得更順。
作者至少還是可以做努力改變資料結構最佳化單核表現,甚至進一步改寫成適合多核心平行計算的版本,就有望讓遊戲跑得更順暢。


大概這樣參考參考。

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.223.159 (臺灣)
PTT 網址

a383103803/04 18:47但我看使用率每個核心都有平均使用欸

如果你看到的是平均使用,而且使用率都很高的話,那才代表寫得夠好。 如果你看到的是平均使用但是沒有用到滿的話,其實只是代表那個情境下 GPU 先卡住 XD

justwedave03/04 18:48js 就 single threaded

理論上 JS 現在可以過 Web Worker 發工作,不過使用情境是很特定。

spfy03/04 18:50我說那個JavaScript就是遜啦

有點不太適合那個超大量物件、判定的遊戲而已啦 XD 不要這樣 diss 人家

henry12188tw03/04 18:54我用文書機玩都不會卡欸

horazon03/04 18:57碰撞可能也有差 不確定各種碰撞是照圖片或簡單方塊/圓形

horazon03/04 18:58引擎實作方式也有差 Unity新的ECS應該蠻適合這遊戲

其實資料結構能做更好的最佳化應該就可以單核跑得很順了,再來是想辦法計算能省就省 ,像 Noita 雖然是個像素遊戲,但物理模擬也是得做很多省略才能順利跑。 ECS 很像最終的萬用解,不過姑且還是可以在遊戲設計上妥協出夠合理的省法 XD 就像你 說的碰撞可以省到只用方塊。

daidaidai0203/04 19:26把2d遊戲做成3d遊戲就能得到那個進化的效能嗎? fgo

daidaidai0203/04 19:27也是為此才做成假2d的嗎?

啊,並不是這個意思。 很粗略的解釋可以說(僅供參考理解用,遠不夠代表實際狀況): 一個非常精細的 2D 遊戲,通常主要包含著大量、高解析度的圖像 一個非常精細的 3D 遊戲,通常主要包含著超大量多邊形數的模型 由於現代顯示卡是對後者強化,設計都是在協助加快(或省略)多邊形的計算,對於要怎 樣處理前者就沒有花很多努力強化。 所以像 Ori and The Will of the Wisp 這種誇張漂亮的作品,就得自己花很多努力去處 理資料的進出,才能讓不足以暴力解的 Switch 這樣的硬體能正常跑。 FGO 做成了假 3D 的表現方式,但他依然是個「大量、高解析度的圖像」為主的遊戲,所 以並不會因此受惠於 GPU 3D 表現能力的進化。

※ 編輯: dklassic (111.240.223.159 臺灣), 03/04/2022 20:13:14

a383103803/04 20:14平均都20%左右而已,可能就是你說的那樣

tsubasawolfy03/04 20:51就吃單核頻率而已

※ 編輯: dklassic (111.240.223.159 臺灣), 03/04/2022 21:07:41

daidaidai0203/04 22:01感謝長文解析