網絡編碼質素決定電競遊戲成敗(一)
電競的核心就是對戰,而最方便的方法當然是透過網上連線,但完美的連線質素以目前的科技水平仍未做到,所以現場比賽的認受性一向都是最高的,除了考驗選手面對現場觀眾的壓力,更重要是把連線的影響降到最低。但很多電競賽事都是在網上舉行的,除了因近年疫情的因素,還有成本的考慮,再加上選手練習也是在網上最方便,所以網上連線質素絕對會影響電競的發展。故此遊戲為了更容易擴大玩家數量,必然會推出各種補償機制(Compensation Methods)去處理玩家不穩定的網上連線,而不同遊戲亦有不同的方法,這就造成不同遊戲都會有不同的連線質素,今期筆者簡單介紹一下不同的網絡編碼(Netcode)。
首先,以格鬥遊戲為例,因為它們最受網絡延遲和網絡不穩定的影響,同時因為只有兩人連線,所以機制上會比較簡單。第一個也是比較古老的補償機制,就是加入人為的延遲去配合對方的網絡延遲,也就是所謂的Delay-based Netcode,簡單來說就是如果對方要50ms(毫秒,千分之一秒)才把指令送到,只要自己的輸入也有相同的50ms延遲,畫面上的顯示就一定是同步的。
但有兩大問題,第一是太大的延遲會令玩家觀感非常不和諧,手指輸入指令之後要等一段時間才有效果,對於節奏極快一局可能只有不足一分鐘的格鬥遊戲影響非常大,所以這方法不能延遲太多。第二個問題,是處理不了網絡不穩定,因為網絡會經過多個節點,而其他人的網絡使用會影響該節點的速度,所以連線延遲不是固定的,而是時高時低,簡單的輸入延遲絕對處理不了這種不穩定。
另一種處理方法是所謂的Rollback Netcode,遊戲會根據對方最後到達的指令估計對方接下來短時間內的動作,玩家可以據此判斷,當對方的實際動作指令送到,畫面會即時修正,務求減少對線質素對玩家的影響,實際上極短時間的修正普通人根本看不出來。但這個方法面對較大的固定延遲時很容易不停觸發修正,令對方的動作變成一格格的中距離瞬移。所以所有遊戲都不會使用單純的Rollback Netcode,而是兩者混合,再加上不同的自家修正。
十分可惜的是,早期不重視網絡質素的格鬥遊戲,都沒有採用Rollback netcode,令他們的連線質素極差,所以出現了格鬥遊戲連網對戰平台GGPO(Good Game Peace Out),一個舊格鬥遊戲的模擬器平台,加入了Rollback Netcode
,令玩家可以享受網上對戰。同一時間GGPO的Rollback Netcode也是MIT授權條款下的開源軟件,不少遊戲都用它來提供良好的網上對戰經驗。
之前說到不同遊戲都有不同的自家Netcode,例如最近推出的《拳皇15》的Netcode就備受讚譽。而老牌的《街霸5》的自家Netcode,在改進後還是有不少問題,例如部分動作會因為修正而缺失,另一個問題是當玩家使用突進技能時,遊戲會有更多動作缺失。這明顯是預測指令的系統性不準確問題,這都是造成玩家遊戲體驗不佳的問題,但Capcom似乎未夠重視,希望這個問題可以在新的《街霸6》解決。
文:薩力斯、龍流星