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