《Measuring Responsiveness in Video Games》:測量與分析遊戲的回應性

stopwatch原文出處:Measuring Responsiveness in Video Games

本文接續前篇文章「《Programming Responsiveness》:遊戲程式設計中的回應性」的遊戲回應性 (Responsiveness) 以及遊戲回應延遲 (Response Lag) 議題,進一步提出能夠實際測量反應時間的方法,同時對各款遊戲作品的回應性表現進行測試與分析。

(圖片來源:http://www.geardiary.com/)

在前文中,提到了遊戲開發者易於忽略的遊戲回應性問題,但是並沒有提出實際的測量方法;如果我們只使用人眼去觀察遊戲是否產生延遲情形,是相當主觀而且不準確的測量方法。身為遊戲開發者,我們需要更加精確的方法以及更為客觀的數據,才能夠證明遊戲的回應性緊密或者遲緩。在 PC 平台的遊戲上,通常比較少對於 FPS(遊戲每秒畫格)做出限制,強制鎖在 30 FPS 或者 60 FPS 的數值;但是在 Console 的平台上,遊戲需要從 30 FPS 或 60 FPS 中做出選擇。如果能夠取得客觀的延遲時間數據,遊戲開發者就能夠更明智地在兩個數值之間做出抉擇,進一步強化遊戲畫面以及遊戲操控性的表現。

想要測量遊戲中的延遲時間並不困難,只需要準備一台具備攝影功能的數位相機,對準遊戲中的電視螢幕與操縱手把進行錄影。作者使用的是便宜且常見的 Canon Powershot SD800IS 相機(我不清楚這台相機的價格算不算是便宜 XD);將相機設定調整至「運動模式」或「快速畫格取樣率模式」,然後把取樣數調整至「60 FPS」後,使用腳架置放於電視螢幕前面;如圖所示,使相機能夠清楚地拍攝到電視螢幕畫面以及手上的遊戲手把,就可以開始拍攝遊戲中的各種操縱動作與結果反應。拍攝完畢後,可以使用 QuickTime 或其他播放軟體,以鍵盤的方向鍵每次移動一個畫格播放,計算出由按下按鈕到畫面呈現結果所花費的畫格數,也就是遊戲中的回應延遲時間。

由於目前市面上廣為流行的電漿電視與液晶電視,會在顯示畫面之前經過一些數位訊號的處理程序,因此無可避免地會導致一些額外的延遲時間;而傳統的映像管電視,反而能夠呈現出較高的回應時間值。瞭解如何進行測量,以及各種電視螢幕之間的延遲因素之後,就可以開始對各款遊戲進行實地測量。首先,我們需要一個校準數據,做為與各款遊戲的比較基準數值。在此作者選擇最單純應該也是最快速的「PlayStation 3 選單系統」操作,做為基準測量數值。

根據作者在傳統電視上使用 PS3 的選單系統所進行的測試,按下遊戲手把的方向鍵之後,直到第三個畫格,電視螢幕才顯示出選單項目。由結果可知,PS3 選單系統的反應時間為 3/60 秒,也就是 50 毫秒,是一個相當優秀的測試數據,同時也是理想上能夠在 PS3 平台上所達到的最快反應時間。另外,PS3 選單系統於電漿電視上的測試結果為 5/60 秒,與傳統電視之間存在著 2 個畫格,也就是 100 毫秒的差距。既然 PS3 選單系統能夠達到 3/60 秒的反應時間,所以對於以 60 FPS 為執行標準的遊戲來說,理想上也應該要達到 3/60 秒的反應時間值。

有了基準測量數值之後,就能夠開始測量各款遊戲中的動作反應時間了。作者所做的第一項測試,是在 PS3 與電漿電視上測試《俠盜獵車手 4》的開槍動作。由這張連續圖片可以清楚地觀察到,當玩家按下 R2 鈕擊發時,從第 0 個畫格開始計算,直到第 12 個畫格才出現相對應的槍火特效反應;也就是說,開槍動作的反應時間是 12/60 秒,即使是在延遲較低的傳統電視螢幕上,也會產生 10/60 秒的回應延遲時間!而這項測試結果,也反映出了許多玩家對於《俠盜獵車手 4》某些動作反應不流暢的抱怨,的確是其來有自。

除了《俠盜獵車手 4》以外,後續進行測量程序的各款遊戲裡,其中以 60 FPS 進行的遊戲反應時間數據為:

  • PS3 選單系統:3/60 秒
  • 《吉他英雄 3》(XBox 360 版):3/60 秒
  • 《實感賽車 7》:4/60 秒
  • 《虛擬網球 3》:4/60 秒
  • 《忍者外傳 SIGMA》:4/60 秒
  • 《PixelJunk Racers》:4/60 秒

30 FPS 進行的遊戲反應時間數據為:

  • 《源氏:神威奏亂》:6/60 秒
  • 《托尼霍克極限滑板:練習場》:8/60 秒
  • 《黑暗地帶:51區》:8/60 秒
  • 《最後一戰 3》:8-10/60 秒
  • 《極限滑板》:10/60 秒
  • 《俠盜獵車手 4》:10/60 秒
  • 《哈利波特 5:鳳凰會的密令》:10-14/60 秒
  • 《玄天神劍》:7-18/60 秒

heavenly-sword在這份列表中,可以看到《吉他英雄 3》的表現非常突出,能夠達到 3/60 秒的反應時間,這也正好是音樂節奏類型的遊戲,所必須具備的基本需求。另外,在上列的數個 PS3 遊戲中,沒有任何能夠達到 3/60 秒基準數值的遊戲,其中最佳的反應時間是 4/60 秒。而有幾個遊戲的數值範圍呈現出相當不穩定的狀態,其中又以《玄天神劍》最為嚴重;攻擊動作花費了 7/60 秒,而轉動方向的動作竟然需要花費兩倍以上的 18/60 秒!很顯然地,在這款遊戲的程式碼或者設計架構裡,必然隱藏著某種未解的臭蟲。

(圖片來源:http://scifipulse.net/)

另外一個值得注意的遊戲是《源氏:神威奏亂》;這是一個與《忍者外傳 SIGMA》玩法類型很相似的遊戲,不過《忍者外傳 SIGMA》是以 60 FPS 進行,而《源氏:神威奏亂》則以 30 FPS 進行。雖然以較低的 30 FPS 進行遊戲,但是《源氏:神威奏亂》讓人感覺不出延遲的問題存在;因為遊戲攝影機比較少快速地轉動,加上低對比度的圖像設計,以及遊戲所使用的動態模糊 (Motion Blur) 技術,全都成功地減少了遊戲的遲緩感。由於設計與實作層面的用心,雖然《源氏:神威奏亂》只有達到 6/60 的低反應時間,但是卻沒有對遊戲的操縱反應造成顯著的影響。這樣一來,程式設計者不必把遊戲硬撐上 60 FPS 的執行速度,反而使企畫設計者能夠放入更多的圖像、特效或者敵人,讓遊戲的內容更加豐富多樣化。

最後,根據各款遊戲的實地測量數據以及實際操縱體驗的比對,可以做出以下幾點結論:

  • 雖然理論上 3/60 秒應該是可能達成的目標,但是根據測試的結果來看,4/60 秒的反應時間已經算是非常優秀的執行成果
  • 《源氏:神威奏亂》讓我們看到以 30 FPS 執行、反應時間 6/60 秒的遊戲,仍然能夠有很不錯的執行表現。
  • 有些遊戲,例如《玄天神劍》,反應時間缺乏一致性與穩定性。既然某些動作反應能夠達到 7/60 秒的最佳數值,就應該使每一項動作的反應時間都達到 7/60 秒才是良好的遊戲設計與實踐。
  • 遊戲開發者應該使用本文所述的方法,測量自己遊戲中各項動作的反應時間。由於越來越多的玩家,甚至是遊戲評論者,都開始使用平面顯示器進行遊戲,所以延遲的因素也越來越明顯可察覺;因此,遊戲開發者必須要努力解決遊戲的回應延遲問題,才不會使得嘔心瀝血製作的遊戲,因為操縱反應不順的小缺陷而招致負面的觀感與評價。
  • 遊戲評論者也應該開始測量遊戲的反應時間數據,才能夠對遊戲做出更為客觀的評價

除了節奏迅速的動作類型遊戲以外,我認為回應性與回應延遲的觀念也可以延伸應用於其他遊戲類型中。以我們常見的 MMORPG 類型遊戲來說,遊戲介面以及角色動作的反應性,都有進一步改善的空間。你是否曾經抱怨過遊戲介面的開啟速度過於緩慢?你是否覺得遊戲角色的攻擊動作與傷害特效看起來沒有同步?身為遊戲開發者,我們如何在網路的延遲因素影響之下,達到理想的回應性表現?針對遊戲的回應性,以下列出幾點我認為可以嘗試改進的方向:

  • 視覺提示:在無法立即反應的介面中提供視覺上的提示,例如進度條、小動畫或提示訊息等等,清楚地讓玩家知道遊戲系統正在進行處理程序,而不是發生了網路延遲、系統當機或者是斷線的情形。
  • 資料快取:將已知的歷史資料儲存在快取區中,就能夠很快地顯示沒有更動過的內容,同時只需要更新少部分有所變動的內容,因此可以減少資料處理與網路傳送的反應時間。
  • 分層傳送:如果有大量的資料需要傳送,可以先傳送相關的綱要項目,再接著傳送細節內容;例如在任務介面的任務歷史列表功能裡,可以先傳送任務列表中的名稱、等級與需求,再接著傳送每一項任務的細節內容。
  • 先斬後奏:在玩家按下輸入指令後,直接由 Client 端程式系統進行動作回應的「演出」,同時傳出訊息給 Server 端,再由 Server 處理資料邏輯面的判斷,並且視實際情況進行必要的校正。

另外,我們同樣能夠運用本文中所使用的測量方法,檢測開啟各項遊戲介面的延遲時間,以及各項角色動作的同步性來相互比較,藉此找出反應遲緩的介面與動作。乍看之下,遊戲反應性與延遲時間似乎是非常微不足道而旁枝末節的問題,但是對於玩家來說,往往就是這些細節決定了「這個遊戲很爛」或者「這個遊戲很好玩」之間的分別。身為遊戲開發者最重要的任務之一,就是使遊戲呈現出來的結果能夠符合玩家心裡的期待感,盡最大可能達到同步化的目標,使玩家全心全意地投入遊戲世界並且樂在其中。

2 thoughts on “《Measuring Responsiveness in Video Games》:測量與分析遊戲的回應性”

Leave a Reply