大型網(wǎng)絡(luò)游戲同步設(shè)計(jì)策略_第1頁(yè)
大型網(wǎng)絡(luò)游戲同步設(shè)計(jì)策略_第2頁(yè)
大型網(wǎng)絡(luò)游戲同步設(shè)計(jì)策略_第3頁(yè)
大型網(wǎng)絡(luò)游戲同步設(shè)計(jì)策略_第4頁(yè)
大型網(wǎng)絡(luò)游戲同步設(shè)計(jì)策略_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

大型網(wǎng)絡(luò)游戲同步設(shè)計(jì)策略WWWHr)ri2009-5n12.wuu肖聃內(nèi)容提要?網(wǎng)絡(luò)游戲基本架構(gòu)?同步問(wèn)題與解決方案一Hierarchicalmaster-slavesynchronization一Fullplesiochronous一Mutualsynchronization一Colligatesynchronization?DeadReckoning?總結(jié)Client/serverClient/server結(jié)構(gòu)客戶端客戶端客戶端客戶端網(wǎng)絡(luò)游戲基本架構(gòu)游戲局游戲大廳lobbyPeertoPeer浮動(dòng)服務(wù)器,游我建立者將擔(dān)任服務(wù)器角色U有專門的服務(wù)器,其作用是為坯于不同位置的玩家牽線掛轎U網(wǎng)絡(luò)游戲基本架構(gòu)服務(wù)器進(jìn)行關(guān)鍵的數(shù)值計(jì)算和邏輯判斷,服務(wù)器具備完整的游戲世界模世口同步問(wèn)題與解決方案*同步在網(wǎng)絡(luò)游戲中是非常重要的,它保證了每個(gè)玩家在屏幕上看到的東西基本一致。*服務(wù)器的作用是驗(yàn)證玩家行為,廣播玩家狀態(tài),儲(chǔ)存玩家信息。*導(dǎo)致同步問(wèn)題的兩個(gè)基本原因:-廣播時(shí)其它玩家未收到?服務(wù)器廣播范圍?UDP不穩(wěn)定-網(wǎng)絡(luò)延遲*同步問(wèn)題的表現(xiàn)形式-位置、技能使用、物品交換客戶端TO?網(wǎng)絡(luò)延遲與位置同步T2-T0客戶端客戶端TO?網(wǎng)絡(luò)延遲與位置同步T2-T0客戶端2司步問(wèn)題與解決方案Hierarchicalmaster-slavesynchronization*解決方案止層次化主客同步(驗(yàn)證同步)*玩家行為需要在經(jīng)過(guò)服務(wù)器驗(yàn)證通過(guò)了以后再執(zhí)行動(dòng)作。*服務(wù)器端對(duì)每個(gè)玩家連接類型里面定義一個(gè)TimeModified變量,記親每個(gè)客戶端本地時(shí)間與矍務(wù)器時(shí)間的差異。服務(wù)器在驗(yàn)證行為后再?gòu)V播客戶端,讓客戶端在相應(yīng)時(shí)刻執(zhí)行動(dòng)作。*缺點(diǎn):當(dāng)網(wǎng)絡(luò)延遲比較大的時(shí)候,玩家的客戶端的行為會(huì)變得比較不流暢。FullplesiochronousFullplesiochronous*解決方案乙準(zhǔn)同步(預(yù)測(cè)拉扯)*玩家在發(fā)送消息的同時(shí)也可以執(zhí)行動(dòng)作,但是要保存執(zhí)行前的狀態(tài)。消息經(jīng)過(guò)服務(wù)器驗(yàn)證,如果驗(yàn)證失敗,玩家客戶端需恢復(fù)原狀態(tài);驗(yàn)證成功,向其它玩家廣播。*假設(shè)玩家是從P1運(yùn)動(dòng)到P2,其他玩家在收到消息的時(shí)候,根據(jù)TimeMMfiec傳時(shí)間參藪推算出該玩家現(xiàn)在可態(tài)的位置P乳則可以以盡可能快的速度將該玩彖拉到P3與P2中間的一點(diǎn)P4,使得兩方的P4應(yīng)該是同一時(shí)刻到達(dá)的。再以原玩家的正常速度從P4移動(dòng)到P2。Mutualsynchronization*解決方案3:半服務(wù)器同步*建立多張廣播列表,>M*J?localmessage^remotemessage、globalmessage等消息類型。*客戶端維護(hù)一張其它玩家的狀態(tài)表,包括TimeModifiedo&些衾是不應(yīng)時(shí)眉服務(wù)慕進(jìn)行更新的。*客戶端有部分行為的決策權(quán),直接將消息發(fā)送給廣播列表中的玩家,不經(jīng)過(guò)服務(wù)器。*其他客戶端收到消息后采用預(yù)測(cè)拉扯執(zhí)行動(dòng)作。Colligatesynchronization?解決方案4:綜合同步法?將所有消息以約3;4的比例分為重要消息和非重要消息°?對(duì)于非重要消息*

Colligatesynchronization對(duì)于重要消息卞一小執(zhí)行凌ACtlUlL驗(yàn)旺連過(guò)DeadReckon!ng回發(fā)箱駅齊磊駛證速度、除PDUColligatesynchronization對(duì)于重要消息卞一小執(zhí)行凌ACtlUlL驗(yàn)旺連過(guò)DeadReckon!ng回發(fā)箱駅齊磊駛證速度、除PDU外,也基于Mutu日ISynchronization同步方案的導(dǎo)航推測(cè)算法。LatencyHiding&BandwidthReduction每個(gè)客戶端都應(yīng)保存范圍網(wǎng)絡(luò)內(nèi)其他玩家的PDU(協(xié)議數(shù)據(jù)包),包括當(dāng)前位置運(yùn)動(dòng)方向、加速度等一些信息??梢员4嫱婕业腍P、MP等信息保證每個(gè)節(jié)點(diǎn)在最少8秒之內(nèi)要向其它節(jié)點(diǎn)廣播一次PDU信息。最后,設(shè)置一個(gè)極限誤差值。*DeadReckonin呂?玩家A開(kāi)始運(yùn)動(dòng)的時(shí)候,廣播他的PDU消息,所以玩家(包括A)開(kāi)始模擬玩家A的運(yùn)動(dòng),A可以在運(yùn)動(dòng)過(guò)程中改變它的方向和速度,如果A實(shí)際運(yùn)動(dòng)與模擬運(yùn)動(dòng)的坐標(biāo)超過(guò)極限誤差值,則重新計(jì)算A的PDU,將新PDU廣播出去。其他玩家收到后用平滑移動(dòng)拉扯至新位置,并重復(fù)模擬。?如果極限誤差過(guò)大,則精確度會(huì)很低。?如果極限誤差過(guò)小,則需要廣播的PDU次數(shù)增加,帶寬要求提高。DeadReckoning*DeadReckoning中的平滑處理算法:L直接將玩家拉扯到新PDU描述的坐標(biāo)上。2.Linear^性。P2=Pl+vt+%at2王Quadratic—次。4.CubicSplinesit方體抖動(dòng)&需要模擬點(diǎn)和新PDU描述孤和模擬點(diǎn)后一秒的點(diǎn),新點(diǎn)前一秒的點(diǎn)。Posl=OriginBPos2=OriginB+VPos3=_TargetB-VPos4=_TargetB總結(jié)以一個(gè)MMORPG案例分析:行走:如果是肌標(biāo)點(diǎn)擊行走傳目的地加中間尋路接點(diǎn)就行了,服務(wù)器簡(jiǎn)單驗(yàn)證一下。如果是鍵盤控制行走的話,需要做簡(jiǎn)單的預(yù)測(cè)插值。打怪:客戶端不必管服務(wù)端什么時(shí)候傳來(lái)消息,直接演示動(dòng)頑就行了.最好把被砍的過(guò)程動(dòng)顧做長(zhǎng)一點(diǎn),可以在播放動(dòng)畫(huà)的過(guò)程中尊待服務(wù)器傳過(guò)來(lái)的延遲敏感爭(zhēng)件,比如打的對(duì)象已死。這樣處理起來(lái)比較容易,最重要的是客戶端看起來(lái)要流暢。插值:可以妙考DeadReckoning,位置不同的時(shí)候可以做一次線性插值,直接把人拉扯過(guò)去,或者二次線形插值,做一條平滑的曲線修正。旳時(shí)鐘:就是時(shí)鐘同步,所有時(shí)鐘都是以“楨”為單位的,服務(wù)器主邏輯循環(huán)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論