天天看點

unity同步——幀同步和狀态同步筆記(1)

主流方法:幀同步和狀态同步

(1)狀态同步

基本認知:狹義的了解,就是所有用戶端将動作資訊全部發給服務端,由服務端計算遊戲行為,再将所有狀态資料通過廣播的方式發給用戶端。(比喻:相當于所有用戶端都在遠端操控服務端)

狀态同步流程:

  • 用戶端上傳資訊到伺服器
  • 伺服器收到資訊後計算行為結果(計算,邏輯處理)
  • 伺服器廣播各種資訊到用戶端
  • 用戶端接收後,更新本地狀态

總結:重視邏輯計算的結果一緻性,對用戶端的視訊是否是否一緻沒有要求。(即,甲、乙計算結果相同,甲先加載出,乙可能因為自身網速問題過一段時間加載出)

(2)幀同步

基本認知:用戶端将資訊發給服務端,服務端彙總後直接發給所有用戶端,讓他們自己處理資訊;又或者直接不用服務端,直接P2P,用戶端發給用戶端,互相處理自己的資料。這樣所有用戶端隻接受對方的行為資料,進行自己的資料計算,由此減少了資料量,又因為資料均一緻,結果也一樣,最大限度保持用戶端之間畫面的一緻性。

擴充功能:①服務端接收資訊的特性,可以記錄資訊,完成回放功能。②服務端記錄僅僅隻有雙方的計算結果和行為邏輯,由此對比防止作弊。③多人實時對戰。

總結:重視畫面一緻性,通過相同時機的相同計算得到一緻的結果,但是是以當一個用戶端出現問題,所有用戶端都會為保持一緻性而停止等待,造成卡頓。

繼續閱讀