WarCraft 板


LINE

再仔細地偷看一次 Warcraft III 的封包發現, LAN mode 會比較順是必然的。 特別是在網路好的時候差距會更加明顯,因為網路不好同樣會頓到爆炸。 若是遊戲當中有任何指令, Host 會馬上傳給其它 Client , 告訴它們發生什麼是,理論上會付上一個 timestamp (時間郵戳), 告訴 Client 這件事是什麼時候發生的,因此 Client 就知道, 現在的遊戲時間已經到了這裡,在這裡之前所有發生的事都知道了。 就把遊戲的狀態更新到該時間點。 在 Bnet mode 底下, Host 每 0.25 秒會送一個同步化封包出去。 告訴 Client 在接下來(沒錯,接下來) 0.25 秒之內沒其它別的事了 因為如果所有的使用者都沒有做任何事,那麼 Host 就不會送動作給 Client , 就沒有 timestamp 讓 Client 更新遊戲的狀態,為了讓遊戲順利進行, Host 在沒事的時候也會週期性地送封包給 Client 說「沒事」。 我們現在來看看兩種不同情況的 lag 。首先若是 Client 都有送出封包, 但是 Host 很慢才收到,假設 Client 送出 A 封包是在 T[0] (第零秒), 但是 Host 在 T[2] 才收到封包,因此在 T[0] 到 T[2] 之間, Host 都說沒事, 因此 Client 收到也只能照做,在這段時間不論做什麼動作都不會有反應, 直到兩秒以後動作才被 Host 收到, Host 收到動作後馬上傳回給 Client , 因此在遊戲時間中 T[2] 該動作就被做出來了,這就是延遲兩秒的情況。 若是 Client 都有送出封包,但是根本收不到 Host 送來的封包, 連「沒事」也聽不到的話, Client 就無法更新遊戲狀態(免得狀態不一致), 此時遊戲當中的角色都會卡在原位,動也不動,直到收到 Host 的封包。 這種情況大致上就是「突然很頓」的情況,一時間人物完全都沒有動作。 這麼來看,即使真的「完全都沒事」 Client 也得要等 0.25 秒才能更新狀態, 在這 0.25 秒之內做的動作就算做了,等到 Host 送回來也會比現在的「沒事」封包晚, 因此 0.25 秒左右的 delay 在 Bnet mode 恐怕是免不了的。 0.25 秒也是電話通話品質當中可以接受的上限,單程 delay 超過這個大小, 人就會很有感覺,講國際電話有時候話常打架,就是因為這個原因。 然而對於比講話更細密的撐線遊戲, 0.25 秒的感受其實滿明顯的。 那為什麼 LAN mode 會比較順呢? 因為在 LAN mode 下 Warcraft III 預設更好的網路, 在 LAN 裡面比較不用擔心流量過大(尤其是 Bnet 的 ladder 是 server 在撐), 因此對於「沒事」封包更加大方,它每 0.1 秒就會送一次, 也就是 delay 可以壓到 0.1 秒左右。這個量已經符合多數人神經敏感度的極限, 和一般人作尺反應測定的時間差不多,因此這個量是可以接受的。 若是網路狀況良好,讓 Bnet mode 跟 LAN mode 都可以正常運行, 其 delay 的狀況大致就是 0.25~0.5 秒之間與 0.1~0.2 秒之間, 當然越好的網路越接近最佳值,只不過即使都在最佳值,還是有 2.5 倍的差距。 知道這件事以後我曾嘗試要把 Bnet mode 的同步化封包量提高, 不過限於無法直接修改 Warcraft III 的程式,所以經過一個晚上的努力完全失敗。 所以還是好好修改 ULan 把帳密系統、部族系統、黑名單系統弄出來比較實際。 (因為我昨天睡覺前想到一個好方法,其實這篇文章重點只有最後一行) -- --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.31.132
1F:推 Wayne7878:推,謝謝你的認真回應...我走錯版了...歹事... :) 04/19 10:19
2F:推 jack0204:剛好最近學到....又上了一課 04/19 10:33
3F:→ chigi:樓上在上計網概? 04/19 10:36
4F:推 YouCantGetME:就叫你先做該做的事喔- -+ 軟工沒學好XD 04/19 10:37
5F:推 kikijuice:感謝你的認真回硬 糟 透露出我是西斯洨眾了 04/19 10:43
6F:推 sitos:YCGM 要是有做出來就造福所有 Bnet 的使用者ㄟ... 04/19 10:56
7F:推 YouCantGetME:不能再架pvpgn了啦T___T 不然GGC早就被我自己out掉了 04/19 11:01
8F:推 YouCantGetME:ㄟ...sorry我想太深了 我懂你怎麼做了 XD 04/19 11:03
9F:→ YouCantGetME:把已完成跟未完成的計劃加在一起 就變超級外掛= =... 04/19 11:06
10F:推 Lushou:高手 淺顯易懂 04/19 12:01
11F:推 FrostMaiden:推一個 :P 04/19 12:11
12F:推 jhunfong:太專業 看不懂XD 04/19 12:20
13F:推 Achillean:推認真文,真研究生無雙 04/19 13:09
14F:推 snowpoint:呃...Warcraft不是p2p嗎@@? 04/19 13:39
15F:推 sitos:是 p2p ,那只是指玩的時候不經過 server 04/19 14:38
16F:→ sitos:但是還是有 host 來確保指令的順序沒錯 04/19 14:38
17F:推 AriesJ1M:source code!!(伸) XDDDDD 04/19 15:18
18F:推 sitos:什麼東西的 source code? 04/19 15:41
19F:→ sitos:對了 因為要寫新東西 ULan 這邊我暫時關掉 04/19 15:42
20F:推 AriesJ1M:隨便喊喊 dont mind XDDDD 04/19 16:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP