青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

教父的告白
一切都是紙老虎
posts - 82,  comments - 7,  trackbacks - 0

大多數實時網絡游戲,將 server 的時間和 client 的時間校對一致是可以帶來許多其他系統設計上的便利的。這里說的對時,并非去調整 client 的 os 中的時鐘,而是把 game client 內部的邏輯時間調整跟 server 一致即可。

一個粗略的對時方案可以是這樣的,client 發一個數據包給 server,里面記錄下發送時刻。server 收到后,立刻給這個數據包添加一個server 當前時刻信息,并發還給 client 。因為大部分情況下,game server 不會立刻處理這個包,所以,可以在處理時再加一個時刻。兩者相減,client 可以算得包在 server 內部耽擱時間。

client 收到 server 發還的對時包時,因為他可以取出當初發送時自己附加的時刻信息,并知道當前時刻,也就可以算出這個數據包來回的行程時間。這里,我們假定數據包來回時間想同,那么把 server 通知的時間,加上行程時間的一半,則可以將 client 時間和 server 時間校對一致。

這個過程用 udp 協議做比用 tcp 協議來的好。因為 tcp 協議可能因為丟包重發引起教大誤差,而 udp 則是自己控制,這個誤差要小的多。只是,現在網絡游戲用 tcp 協議實現要比 udp 有優勢的多,我們也不必為對時另起一套協議走 udp 。

一般的解決方法用多次校對就可以了。因為,如果雙方時鐘快慢一致的情況下,對時包在網絡上行程時間越短,就一定表明誤差越小。這個誤差是不會超過包來回時間的一半的。我們一旦在對時過程中得到一個很小的行程時間,并在我們游戲邏輯的時間誤差允許范圍內,就不需要再校對了。

或者校對多次,發現網絡比較穩定(雖然網速很慢),也可以認為校對準確。這種情況下,潛在的時間誤差可能比較大。好在,一般,我們在時間敏感的包上都會攜帶時間戳。當雙方時間校對誤差很小的時候,client 發過來的時間戳是不應該早于 server 真實時刻的。(當時間校對準確后,server 收到的包上的時間戳加上數據包單行時間,應該等于 server 當前時刻)

一旦 server 發現 client 的包“提前”收到了,只有一種解釋:當初校對時間時糟糕的網絡狀態帶來了很多的時間誤差,而現在的網絡狀態要明顯優于那個時候。這時,server 應該勒令 client 重新對時。同理,client 發現 server 的數據包“提前”到達,也可以主動向 server 重新對時。

一個良好的對時協議的設定,在協議上避免 client 時間作弊(比如加速器,或者減速器)是可行的。這里不討論也不分析更高級的利用游戲邏輯去時間作弊的方式,我們給數據包打上時間戳的主要目的也非防止時間作弊。

校對時間的一般通途是用來實現更流暢的戰斗系統和位置同步。因為不依賴網絡傳輸的統一時間參照標準可以使游戲看起來更為實時。

首先談談位置同步。

好的位置同步一定要考慮網絡延遲的影響,所以,簡單把 entity 的坐標廣播到 clients 不是一個好的方案。我們應該同步的是一個運動矢量以及時間信息。既,無論是 client 還是 server ,發出和收到的信息都應該是每個 entity 在某個時刻的位置和運動方向。這樣,接收方可以根據收到的時刻,估算出 entity 的真實位置。對于 server 一方的處理,只要要求 client 按一個頻率(一般來說戰斗時 10Hz 即可,而非戰斗狀態或 player 不改變運動狀態時可以更低) 給它發送位置信息。server 可以在網絡狀態不好的情況下依據最近收到的包估算出現在 player 位置。而 client 發出的每次 player 位置信息,都應該被 server 信任,用來去修正上次的估算值。而 server 要做的只是抽查,或交給另一個模塊去校驗數據包的合法性(防止作弊)。

在 server 端,每個 entity 的位置按 10Hz 的頻率做離散運動即可。

client 因為涉及顯示問題,玩家希望看到的是 entity 的連續運動,所以處理起來麻煩一點。server 發過來的位置同步信息也可能因為網絡延遲晚收到。client 同樣根據最近收到的包做估算,但是再收到的包和之前已經收到的信息估算結果不同的時候,應該做的是運動方向和速度的修正,盡可能的讓下次的估算更準確。

關于戰斗指令同步,我希望是給所有戰斗指令都加上冷卻時間和引導時間,這正是 wow 的設計。這樣,信任 client 的時間戳,就可以得到 client 準確的指令下達時間。引導時間(或者是公共冷卻時間)可以充當網絡延遲時間的緩沖。當然我們現在的設計會更復雜一些,這里不再列出。對于距離敏感的技能,例如遠程攻擊和范圍魔法,我們的設計是有一個模糊的 miss 判定公式,解決距離邊界的判定問題。

這里, server 對攻擊目標的位置做估算的時候,可以不按上次發出包的運動方向去做位置估計,而選擇用最有利于被攻擊者的運動方向來做。這樣,可以減少網絡狀況差的玩家的劣勢。

對于 PVE 的戰斗,甚至可以做更多的取舍,達到游戲流暢的效果。比如一個網絡狀態差的玩家去打 npc,他攻擊 npc 的時刻,npc 是處于攻擊范圍之內的。但是由于網絡延遲,數據包被 server 收到的時候,npc 已經離開。這個時候 server 可以以 client 的邏輯來將 npc 拉會原來的坐標。

雖然,這樣做,可能會引起其他玩家(旁觀者) client 上表現的不同。但是,網絡游戲很多情況下是不需要嚴格同步的。在不影響主要游戲邏輯的情況下,player 的手感更為重要。

posted on 2009-09-10 19:27 暗夜教父 閱讀(598) 評論(0)  編輯 收藏 引用 所屬分類: Game Development

<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩精品| 亚洲欧美中文另类| 欧美日本中文字幕| 麻豆精品在线视频| 免费观看日韩av| 久热精品视频在线免费观看 | 亚洲美女免费精品视频在线观看| 国产一区二区三区四区在线观看| 欧美日韩精品在线观看| 欧美私人网站| 国内精品模特av私拍在线观看| 樱桃视频在线观看一区| 在线国产亚洲欧美| 亚洲免费中文字幕| 欧美高清视频在线播放| 日韩一级成人av| 免费的成人av| 国产精品区二区三区日本 | 美女爽到呻吟久久久久| 欧美猛交免费看| 狠狠色丁香婷婷综合影院| 亚洲免费av片| 久久夜色精品| 欧美一区二区成人6969| 国产精品九九久久久久久久| 亚洲第一主播视频| 欧美一区二区三区视频免费播放| 欧美大片免费| 久久手机免费观看| 国产精品一区视频网站| 亚洲国产一区二区三区青草影视 | 国产性做久久久久久| 亚洲电影专区| 老司机午夜免费精品视频| 午夜国产精品视频免费体验区| 欧美精品在线一区二区三区| 一区二区三区不卡视频在线观看| 欧美国产综合视频| 欧美大片一区二区三区| 99精品福利视频| 亚洲国产精品一区二区www| 久久噜噜亚洲综合| 亚洲欧洲精品天堂一级| 欧美不卡三区| 欧美日本亚洲韩国国产| 亚洲国产综合91精品麻豆| 亚洲大胆av| 欧美日韩在线观看一区二区| 亚洲一区二区三区高清不卡| 亚洲伊人一本大道中文字幕| 国产一区二区丝袜高跟鞋图片| 久久国产精品99国产精| 麻豆成人91精品二区三区| 日韩一级视频免费观看在线| 亚洲视频播放| 亚洲美女黄色片| 久久久久久91香蕉国产| 在线视频欧美日韩| 麻豆精品在线视频| 欧美一区二视频| 国产精品国产三级国产专播品爱网| 欧美一区视频| 久久不射中文字幕| 亚洲国产美女精品久久久久∴| 欧美日韩人人澡狠狠躁视频| 麻豆精品一区二区综合av| 国产精品久久二区二区| 亚洲国产精品一区| 亚洲高清视频在线| 久久精品国产一区二区三区| 欧美在线日韩| 国内精品久久久久久久果冻传媒 | 伊人伊人伊人久久| 亚洲欧美日本伦理| 欧美一级二级三级蜜桃| 国产麻豆精品视频| 久久精品国产亚洲精品| 美女诱惑黄网站一区| 最新69国产成人精品视频免费| 久久精品2019中文字幕| 免费观看久久久4p| 亚洲人成在线影院| 国产精品久久99| 欧美影院久久久| 欧美高清视频一区| 午夜精品福利视频| 亚洲丁香婷深爱综合| 欧美视频一区二| 久久激情久久| 亚洲一区不卡| 欧美高清一区二区| 亚洲女同性videos| 亚洲东热激情| 国产精品日日摸夜夜摸av| 亚洲欧美在线观看| 亚洲国产精品久久久久| 欧美在线一二三四区| 卡一卡二国产精品| 一本到12不卡视频在线dvd| 久久爱www久久做| 夜夜嗨av一区二区三区| 欧美激情精品久久久久久久变态| 在线性视频日韩欧美| 亚洲成色www8888| 国产视频一区在线观看| 欧美另类在线播放| 久久视频免费观看| 欧美在线视屏| 欧美不卡视频| 久久一区二区视频| 午夜精品福利一区二区蜜股av| 亚洲视频观看| 亚洲国产成人在线播放| 国产一区二区主播在线| 国产欧美一区视频| 国产精品一区久久| 国产在线欧美日韩| 国产香蕉久久精品综合网| 国自产拍偷拍福利精品免费一| 国产精品羞羞答答| 国产日韩高清一区二区三区在线| 国产伦精品一区二区三区视频黑人| 国产欧美一区二区三区沐欲| 韩国一区电影| 亚洲激情偷拍| 午夜在线成人av| 久久综合九色九九| 亚洲精品乱码久久久久| 久久精视频免费在线久久完整在线看| 欧美在线地址| 亚洲福利视频网| 亚洲夜晚福利在线观看| 久久夜色精品一区| 国产精品色网| 亚洲欧洲日产国码二区| 午夜在线观看欧美| 亚洲国产毛片完整版| 亚洲永久免费观看| 99精品欧美一区二区三区综合在线 | 亚洲黄色在线观看| 一区二区三区四区国产精品| 久久九九精品| 亚洲手机视频| 欧美激情精品久久久久久免费印度| 国产香蕉久久精品综合网| 一区二区三区四区五区精品| 亚洲高清在线精品| 久久精品午夜| 模特精品裸拍一区| 国内成+人亚洲| 久久超碰97人人做人人爱| 日韩写真在线| 欧美日韩国产不卡| 一本大道久久a久久精二百| 亚洲成人资源| 亚洲尤物在线视频观看| 欧美国产日产韩国视频| 欧美激情bt| 亚洲一级在线| 亚洲一区黄色| 一区在线播放视频| 欧美韩日高清| 欧美日韩国产色站一区二区三区| 亚洲全黄一级网站| 亚洲视频在线二区| 国产精品视频自拍| 久久综合伊人77777| 欧美xxx成人| 久久精品一区二区国产| 欧美freesex交免费视频| 亚洲一区二区黄| 老司机午夜免费精品视频| 一区二区三区高清在线 | 欧美一区久久| 欧美电影在线免费观看网站| 欧美一区二区三区婷婷月色| 久热这里只精品99re8久| 一区二区不卡在线视频 午夜欧美不卡在 | 久久九九免费视频| 亚洲精品影视| 久久久久久久一区二区三区| 亚洲一区黄色| 欧美日韩三级电影在线| 亚洲肉体裸体xxxx137| 国产日韩精品一区二区| 在线亚洲伦理| 亚洲视频电影在线| 久久免费黄色| 欧美大色视频| 亚洲激情欧美| 欧美欧美天天天天操| 亚洲大胆女人| 一区二区日韩免费看| 欧美日本亚洲韩国国产| 日韩视频在线免费| 亚洲一区二区精品| 国产精品亚洲产品| 欧美伊人久久| 欧美激情精品久久久久久| 亚洲巨乳在线|