日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络游戏同步基础

發(fā)布時(shí)間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络游戏同步基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://www.zhust.com/index.php/2014/02/%E7%BD%91%E7%BB%9C%E6%B8%B8%E6%88%8F%E7%9A%84%E7%A7%BB%E5%8A%A8%E5%90%8C%E6%AD%A5%EF%BC%88%E4%B8%80%EF%BC%89%E7%BD%91%E7%BB%9C%E5%90%8C%E6%AD%A5%E6%BC%94%E7%A4%BA/#comment-4847

關(guān)鍵詞

  • 幀同步
  • 狀態(tài)同步
  • LockStep
  • Timebucket
  • Timewarp
  • Dead Reckoning
  • Client-side Prediction
  • Server-side Latency Compensation
  • 延時(shí)、抖動、丟包率
  • UDP vs. TCP

主流的網(wǎng)絡(luò)游戲同步方式一覽

  • MOBA
    ? ??王者榮耀:幀同步
    ? ??WAR3:幀同步
    ? ??全民超神:狀態(tài)同步
    ? ??亂斗西游:狀態(tài)同步
    ? ??LOL:狀態(tài)同步
    ? ??Dota2:狀態(tài)同步
  • MMO
    ? ??MMO均采用狀態(tài)同步,如魔獸世界
  • FPS
    ? ??FPS類游戲大多采用狀態(tài)同步
  • 動作格斗類游戲
    ? ??街機(jī)三國:幀同步
  • 體育競技類游戲
    ? ??NBA2K OL:幀同步

網(wǎng)絡(luò)游戲同步“大”分類

  • Peer-to-Peer Lockstep
    ? ??早期的網(wǎng)絡(luò)拓?fù)淠P?/span>
  • Client/Server
    ? ??The Server is the Man
  • Client-Side Prediction
    ? ??客戶端預(yù)測和延遲補(bǔ)償,“消除”網(wǎng)絡(luò)延遲

什么是幀同步?

War3/星際等采用,基于指令驅(qū)動各個客戶端自計(jì)算邏輯。服務(wù)端只管分發(fā)指令,每個客戶端根據(jù)完整的規(guī)則運(yùn)算整個戰(zhàn)場。 每個客戶端播放效果就像是看視頻。 對視覺同步要求較高。

核心

保證所有客戶端每幀的輸入都一樣--同步性 相同的輸入下要有相同的輸出--確定性

優(yōu)點(diǎn)

  • 因?yàn)橹恍枰街噶?#xff0c;所以流量消耗非常小

缺點(diǎn)

  • 斷線需要補(bǔ)幀,即一旦你的戰(zhàn)場狀態(tài)沒有了,必須從頭開始,從第一個指令運(yùn)算到連回去的戰(zhàn)場狀態(tài)。

什么是LockStep?

典型的一種幀同步算法,最早用于P2P。Lockstep把游戲過程劃分成了一個個turn,只有當(dāng)每個turn集齊了所有玩家的操作指令,也就是輸入確定了之后,才可以進(jìn)行計(jì)算,進(jìn)入下一個turn,否則就要等待最慢的玩家。 使用Lockstep的游戲是嚴(yán)格按照turn向前推進(jìn)的,如果有人延遲比較高,其他玩家必須等待該玩家跟上之后再繼續(xù)計(jì)算,不存在某個玩家領(lǐng)先或落后其他玩家若干個turn的情況。使用Lockstep同步機(jī)制的游戲中,每個玩家的延遲都等于延遲最高的那個人。

什么是Timebucket?

設(shè)置了 bucket的概念, 執(zhí)行每一幀的時(shí)間是固定的 bucket 時(shí)間節(jié)點(diǎn), 而不必等到收到所有的 client step 指令, 從而網(wǎng)絡(luò)不再受最差的 client 限制.

什么是狀態(tài)同步?

MMORPG的主要實(shí)現(xiàn)方式,服務(wù)器負(fù)責(zé)計(jì)算全部的游戲邏輯,并且廣播這些計(jì)算的結(jié)果,客戶端僅僅負(fù)責(zé)發(fā)送玩家的操作,以及表現(xiàn)收到的游戲結(jié)果。一般來說,玩家發(fā)送一個操作到服務(wù)器上,服務(wù)器根據(jù)玩家操作去修改內(nèi)存中的游戲世界模型,同時(shí)運(yùn)算游戲世界對這個操作的反應(yīng),然后把這些反應(yīng)都廣播給相關(guān)的多個客戶端,每個客戶端負(fù)責(zé)把這些數(shù)據(jù)表現(xiàn)出來給玩家看。 一句話,The Server is the Man!

什么是DR?

Dead Reckoning,導(dǎo)航推測算法,即客戶端模擬運(yùn)動軌跡和路線,如果真實(shí)坐標(biāo)和模擬坐標(biāo)的差值大于某個極限誤差的時(shí)候則廣播,收到消息后進(jìn)行平緩的拉扯處理。 屬于客戶端預(yù)測。

什么是Timewarp?

客戶端先行,發(fā)現(xiàn)邏輯不一致的時(shí)候,進(jìn)行回滾。

什么是延遲補(bǔ)償?

服務(wù)器端考慮了客戶端的網(wǎng)絡(luò)延遲,將服務(wù)器狀態(tài)回滾到延遲前,再進(jìn)行運(yùn)算。

什么是延時(shí)、抖動、丟包率?

ping kingsoft.cn 正在 Ping kingsoft.cn [192.168.12.19] 具有 32 字節(jié)的數(shù)據(jù): 來自 192.168.12.19 的回復(fù): 字節(jié)=32 時(shí)間=5ms TTL=123 來自 192.168.12.19 的回復(fù): 字節(jié)=32 時(shí)間=6ms TTL=123 來自 192.168.12.19 的回復(fù): 字節(jié)=32 時(shí)間=5ms TTL=123 請求超時(shí)。 192.168.12.19 的 Ping 統(tǒng)計(jì)信息: 數(shù)據(jù)包: 已發(fā)送 = 4,已接收 = 3,丟失 = 1 (25% 丟失), 往返行程的估計(jì)時(shí)間(以毫秒為單位): 最短 = 4ms,最長 = 6ms,平均 = 5ms ______________________________________ 注:延時(shí)5ms 抖動:(4ms-5ms)~(6ms-5ms),即-1ms~+1ms,[最短延時(shí)-平均延時(shí)] ~ [最長延時(shí)-平均延時(shí)] 丟包率:25%

如何選擇協(xié)議?

TCP vs. UDP 亂斗西游采用的是UDP NBA2K OL存在用的是UDP 補(bǔ)充一句:使用哪種同步方式和協(xié)議方式?jīng)]有必然聯(lián)系;比如亂斗西游是UDP+狀態(tài)同步,而街機(jī)三國是TCP(TCP_NODELAY) + 幀同步注:可參考本人的上一篇文章:Networking Basics:TCP and UDP Basics

幀同步如何防外掛?

如果初始狀態(tài)一樣和隨機(jī)種子一樣,那么只要每幀的輸入高度一樣(因?yàn)槭怯煞?wù)器切幀分發(fā)的,可以保持每個客戶端的輸入序列是一樣的),那么每幀的運(yùn)算結(jié)果也是一樣的。為此讓每個客戶端驗(yàn)證每幀的結(jié)果是不是與其它幾個客戶端是一模一樣的,我們就可以拿來做為校驗(yàn)原因。只要有不一樣的結(jié)果,即有人做弊。

為什么MMO不能用幀同步?

幀同步的[所有人]的輸入必須在[所有客戶端]進(jìn)行計(jì)算,這樣大家運(yùn)算出來的結(jié)果才能一樣,才能保證幀同步.注意是【所有人】.所以常見用于rts,moba、2k等房間游戲.因?yàn)槿藬?shù)固定.但是mmo中玩家不定,如果同步所有人。。這個帶寬(即傳輸問題)。。所以mmo中用狀態(tài)同步+aoi視野管理.

References

  • what-every-programmer-needs-to-know-about-game-networking/
  • lockstep
  • 1500 Archers on a 28.8
  • understanding fighting game networking
  • 亂斗西游技術(shù)演講
  • 騰訊如何打造一款實(shí)時(shí)對戰(zhàn)手游
  • 自研游戲幀同步方案
  • NBA2KOnline如何網(wǎng)絡(luò)同步優(yōu)
  • 前網(wǎng)易林偉同步文章系列
  • 知乎關(guān)于moba類游戲同步的探討

總結(jié)

以上是生活随笔為你收集整理的网络游戏同步基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。