iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
自我挑戰組

遊戲中的冰山一角-網路連線系列 第 11

Day11-遊戲連線基礎(10)-Rollback part 2

  • 分享至 

  • xImage
  •  

Delay-based netcode可以說是較簡單也較多傳統格鬥遊戲所使用的遊戲連線方法,舉凡大家熟知的快打旋風與聖騎士之戰等等在過往都是以這種方法來實現,但是delay-based netcode也存在著諸多嚴重的缺點。

在本地對戰的情況下,雙方玩家的指令與幀是能夠完美的對應上,在對的時間點做出立即的反應,到了網路世界就有了不可避免的網路延遲,因此要在對的時間點讓相隔兩地的玩家畫面能夠有一樣的結果靠的就是第一種方法delay-based netcode。
https://ithelp.ithome.com.tw/upload/images/20220911/20151289NyyXyXz9Wq.png

顧名思義這是一種主動延遲的技術,在玩家輸入指令後自己的畫面在當下並不會有任何的反應,他會一直等到網路將資訊傳到對手的主機上才開始同步呈現在雙方的畫面上,這種方法的好處是成功的讓玩家在同時間能夠看到相同的結果,再者是傳遞的訊息簡單在設計維護上相對容易,對玩家而言不會浪費過多的頻寬。
https://ithelp.ithome.com.tw/upload/images/20220911/20151289EvbACZi3qQ.png

這是理想的方法,會這麼說是因為現實中的網路並不固定,因此這方法的缺點是顯而易見的,畫面的呈現必須要等到玩家的輸入傳到對手的主機時才會開始,如果網路品質不佳導致延遲嚴重,雙方玩家都會難以進行遊戲。

還有一個核心問題,前面有說過這是毫秒之間的勝負,格鬥遊戲玩家基本上都是訓練到肌肉記憶的瞬間反應,一個網路延遲就有可能會大大的影響一個玩家的操作,這在delay-based netcode的方法下是不可避的,無論網路連線的品質再好都會有那細微的延遲影響著遊戲操作。

若指令未到達目的地例如突然網路阻塞讓指令卡在中間可能一秒,這會直接導致遊戲強制停止一秒,因此有些格鬥遊戲會設計讓玩家或遊戲自動依照連線品質去設定delay的時間,退而求其次讓遊戲延遲一點也不願讓遊戲卡住。
https://ithelp.ithome.com.tw/upload/images/20220911/20151289S1XokhklOS.png


上一篇
Day10-遊戲連線基礎(9)-Rollback part 1
下一篇
Day12-遊戲連線基礎(11)-Rollback part 3
系列文
遊戲中的冰山一角-網路連線30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言