2009年6月6日 星期六

FPS真的很重要嗎?

http://files.filefront.com/20090529+Doomfist+Craterwmv/;13829890;/fileinfo.html

很多人在下載完上面的影片,都會說:「哇!你的電腦真好!怎麼這麼順!」
但是在這裡必須要告訴各位一件有趣的事實,那就是其實在錄影的時候,旁邊顯示出來的FPS也常常只有十位數甚至個位數。

那為什麼影片畫面看起來還是這麼順?
在這之前各位務必要了解到何謂FPS以及《戰鎚》對於很多問題的處理手法與優化設定方式

首先是FPS,以下連結是Wiki的定義與解釋
http://zh.wikipedia.org/w/index.php?title=%E5%B8%A7%E7%8E%87&variant=zh-tw

在此只節錄重點的解釋句子:

幀率(Frame rate)是用於測量顯示幀數的量度。所謂的測量單位為每秒顯示幀數(Frames per Second,縮寫:FPS)或「赫茲」(Hz)。此詞多用於影視製作和電子遊戲。

那麼重點來了,很多玩家會反應一個問題:「為什麼我的角色有時候動作看起來連貫性有點不足?」原因就在這裡。

因為《戰鎚》程式要運算和處理的東西比起許多遊戲來得多,尤其是在導入大量物理特性,如碰撞系統等,每次中大型規模會戰不管是伺服器端或者玩家程式端要互相傳送的封包量(尤其是在台灣這個上下傳速度不對稱的網路環境中)與系統資源消耗量都十分巨大,那如果說《戰鎚》還要非常講究來計算人物動作模組的連貫性的話,勢必會導致伺服器與玩家程式端無法承受,因此他們在Patch1.1到1.2之間做了兩件事情來調整,避免伺服器掛掉和玩家對戰的完整性。

1.大幅削減人物動作模組的幀數,比方說一個施法動作原本要用5張圖連貫才能夠跑完,現在可能只用2~3張圖就搞定了。這會產生的負面效果就是玩家很敏銳的話就會覺得有些動作連慣性較差,但是在上面的影片中應該是還可以接受的範圍。

2.原本是玩家施放技能時,伺服器端與玩家程式端同步進行運算,這樣子的好處是絕對不會有施法延遲誤差的情況,但是壞處就是大規模會戰時,伺服器端與網路頻寬能否承受如此巨額的運算,因此早期很多要塞戰會導致伺服器直接崩潰

現在的作法則改成玩家看到的是結果,當你送出一個指令的時候,其實伺服器會先進行運算,並且不與玩家程式端同步,之後把結果送回玩家端呈現,這在早期《魔獸世界》也有過相同的做法來處理,舉個簡單例子,當你放個法術時,你不要等讀2秒的讀秒條讀完,可能讀到1.8秒的時候就開始移動,你看看法術是否會成功施放,就可以明白我的意思。

那要如何讓玩家不要有明顯的施法延遲感問題,就是程式要優化的部份,這部份包括目前最當紅的《魔獸世界》都花了一兩年的時間才完全消除掉。

結論
綜合以上兩點,相信聰明的玩家應該可以理解,玩《戰鎚》時請不用去特別在意FPS的問題,因為要完成《戰鎚》內人物動作幀數本來就不高,重點應該是在於大規模會戰時,是否會有完全停頓的問題,假如大規模交戰時,你常常會在根本動彈不得,然後起來時候已經結束(不管是你這方全滅或者是把人家全滅)的狀況,那要考慮去升級的應該是CPU(或超頻)和增加記憶體,來處理大量丟回來的封包,才能夠在混戰中順暢的移動與攻擊哦!

1 則留言:

  1. 很多人都會搞混,以前是維基人跟你說

    wiki不是維基百科的縮寫,請去維基百科搜尋wiki了解

    回覆刪除