學習筆記 九 遊戲同步技術

2021-10-24 13:46:24 字數 2206 閱讀 8099

1.網路同步的概念與意義

**概念:**任何一款網路遊戲,為了盡可能的讓不同玩家在同一時刻體驗相同的內容,就必須要讓不同的客戶端看起來「同步」。

**意義:**早期的單機遊戲,所有的遊戲內容都是在玩家自己的機器上執行,不需要給其他的玩家看,也就不存在同步的概念。 但是在網路遊戲中,你必須要保證a玩家走到b玩家面前的時候,b玩家在自己客戶端上也能看到a玩家走來,a玩家攻擊的時候,b玩家能即使看到並躲閃。但是我們知道,網路延遲是不能消除的,我們只能盡可能的減小延遲。對於區域網遊戲由於玩家在物理環境下很近,網路延遲可以控制在很小的範圍。但是對於廣域網,我們無法更改玩家的網路環境,就只能通過各種手段消除/隱藏延遲,讓玩家覺得「不卡」。在網路遊戲中,同步的核心就是這個。

**拓展:**同步的底層機制一般都是一樣的,通過tcp/udp來實現訊息的傳送與接收。但是具體到遊戲裡面,不同的遊戲採用的同步機制與手段是不同的。比如乙個卡牌類的遊戲,玩家對幾百毫秒的延遲是沒什麼感覺的,但是在動作遊戲裡面這是絕對難以接受的,另外有的遊戲同步的資料量很少,有的遊戲需要每幀都同步大量資料,所以「同步」問題一直都是業內比較頭疼同時也在不斷探索的乙個重點。

2.外網的平均網路延遲

120ms以內,基本上玩家都可以接受

3.同步技術的基本常識:

a.同步給誰?

**某個使用者:**如私聊的聊天資訊

**同屏內的所有玩家:**發給同乙個區域內的所有玩家

**同乙個伺服器的所有玩家:**遍歷整個伺服器所有玩家,然後逐個通知,如全服喇叭

b.同步的資料是?

**命令資料:**傳送乙個訊息,通知另一端去執行某個操作,一般通過rpc實現

**狀態資料:**針對某乙個數值,按照一定頻率不斷的傳送給另一端,來讓不同端的該數值保持一致

c.同步的週期?在特定邏輯觸發時執行 一定頻率不間斷的傳送

4.網路遊戲面臨的問題與解決思路

**網路延遲:**由於網路延遲無法避免,所有優化的核心就是如何根據當前環境減少延遲以及如何優化

客戶端的視覺感受。一般對同步資料的暴力校正效果是非常差的,需要用各種手段去平滑的處理。

**網路頻寬:**手遊玩家可能會對流量的消耗比較在意,所以要盡可能的減小同步的資料量。減少方式有

反外掛程式:

5.常見的外掛程式型別

**外掛程式的核心思路:**不斷去檢測本地資料的變化並嘗試去修改,很有可能就找到遊戲邏輯的漏洞。理論上,完全避免外掛程式也是不可能的,不過可以盡量避免同時增加外掛程式實現的難度

6.關於p2p同步與伺服器同步

有過計算機基礎的朋友應該了解p2p,即點對點,就是說兩個遊戲端直接相連,訊息不需要發給其他人。伺服器同步的架構裡面,所有的客戶端都需要鏈結到乙個伺服器上面,然後所有的訊息都需要伺服器先驗證,然後在傳送給其他客戶端。我們常見的網路遊戲都是基於伺服器同步的。

7.p2p同步常見的同步策略——時間軸同步:

** 注:** 該方法肯定也可能會有延遲的,不過一定範圍內可以接收,效果也比常規同步的好一些

8.p2p同步常見的同步策略——幀同步:

幀同步的核心是保證各個端的邏輯幀保持一致。如果a在執行第n+1幀的時候需要b的第n幀資料,那麼必須等到b

的第n幀資料同步過來後才能執行。

9.伺服器常見的同步策略——伺服器時間軸同步:10.伺服器常見的同步策略——伺服器幀同步:11.同步中常見術語

12.位置同步

區域位置同步:給玩家配置乙個範圍,玩家移動超出這個範圍後立刻觸發同步更新中心座標。同時為了防止玩家總在乙個很小的範圍移動,可以設定每隔一段固定時間就進行一次同步。

13.操作同步

客戶端觸發某個操作立刻執行,然後傳送給伺服器,伺服器廣播給其他客戶端執行

14.命中同步

這個不同的遊戲有不同的方式,可以選擇讓客戶端進行判定,把結果傳給伺服器。也可以把玩家操作

發給伺服器,讓伺服器去計算判斷。

15.網路同步除錯手段

遊戲開發入門(九)遊戲同步技術

1.網路同步的概念與意義 2.外網的平均網路延遲 120ms以內,基本上玩家都可以接受 3.同步技術的基本常識 4.網路遊戲面臨的問題與解決思路 網路延遲 由於網路延遲無法避免,所有優化的核心就是如何根據當前環境減少延遲以及如何優化 客戶端的視覺感受。一般對同步資料的暴力校正效果是非常差的,需要用各...

遊戲幀同步學習筆記

三 幀同步 四 狀態同步與幀同步對比 現代多人遊戲中,多個客戶端之間的通訊大多以同步多方狀態為主要目標,為了實現這一目標,主要有兩個技術方向 狀態同步 幀同步。1 什麼是狀態同步 狀態同步簡單來說就是同步遊戲中的各種狀態,當客戶端傳送遊戲動作到伺服器,伺服器接收到之後,通過計算遊戲行為的結果,然後廣...

Soul 學習筆記 資料同步簡單總結(九)

資料同步的幾種方式也看的差不多了,還剩下 http 長輪詢,我準備先擱置下,今天簡單寫個總結貼,明天再分析下 nacos 同步,接下來就重點看閘道器是如何使用呼叫鏈 請求的了。資料同步的處理是在每個 listener 裡面,這些 listener 都實現了介面 datachangedlistener...