状态同步 和 帧同步
有幸參與一個rpg格斗類型的游戲,在聯(lián)網(wǎng)匹配成功的情況下,玩家可以進行1v1或者2v2對戰(zhàn)。
在戰(zhàn)斗中玩家之間的同步方式使用到的就是幀同步。這里說的幀同步的意思就是玩家的每一次操作,例如移動,攻擊,防御等。
幀同步
在幀同步中的服務(wù)器更多的是扮演一個消息轉(zhuǎn)發(fā)的中間者的身份。客戶端發(fā)送游戲動作到服務(wù)器,服務(wù)器每隔一段時間(30ms)廣播轉(zhuǎn)發(fā)所有客戶端的動作。
網(wǎng)絡(luò)延遲的情況下,如果CSA的幀數(shù)據(jù)延遲到達服務(wù)器,服務(wù)器會在第 N+1 幀把數(shù)據(jù)廣播給每一個客戶端,那么CSB收到的CSA的數(shù)據(jù)就不是實時的了,這個時候在CSB看來CSA的表現(xiàn)很奇怪,例如在那里亂跑,對著空氣放技能等。針對這種情況,客戶端可以提前預(yù)測每個玩家可能的操作,等到服務(wù)器等數(shù)據(jù)下發(fā)下來之后再做對比,具體操作可以參考rollback方案。
狀態(tài)同步
狀態(tài)同步主要是指客戶端發(fā)送游戲動作到服務(wù)器,服務(wù)器收到后對游戲行為結(jié)果進行計算,然后通過廣播下發(fā)游戲各種狀態(tài)到客戶端,客戶端收到狀態(tài)信息后進行UI層展示或處理。
這種方式類似于核心邏輯計算都在服務(wù)器端進行,客戶端主要負責(zé)上傳操作動作等請求數(shù)據(jù),一般回合制游戲主要采用這種方式
圖片和部分內(nèi)容參考:https://blog.csdn.net/SilenceCoder/article/details/86234480
總結(jié)
以上是生活随笔為你收集整理的状态同步 和 帧同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XMind使用卡顿,不流畅!一招解决!
- 下一篇: ros怎么跑小车_如何搭建ROS小车底盘