討論區快速選單
知識庫快速選單
傑米的攝影旅遊筆記 網路投保旅行平安險 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
網路遊戲如何精確同步?
更改我的閱讀文章字型大小
作者 : lionstudio(阿邦) 人氣指數超過10000點
[ 貼文 181 | 人氣 18300 | 評價 240 | 評價/貼文 1.33 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/9 上午 12:04:50
目前下班後研究撰寫網路程式有一些時間,
一直有同步問題中間分析過魔獸世界封包發送頻率,
已經把程式改到發封包及同步方式和一般MMORPG類似,
目前問題是做成動作類型遊戲如何更精確同步?

請問高手們有誰知道那裡有這方面可參考技術文件或資料?

目前問題
1. 當兩個玩家網路延遲 C1=100ms C2=500ms 兩人打同一個東西,
怎麼想 C1 都比較有利它先到伺服器就先處理它,
當 C2 到時和 C1 動作已經有一段差距,
如何讓 C2 和 C1 之間差距縮短?
2. 玩家控制端每樣動作都一定要先模擬嗎?
一想到當玩家網路延遲很高時它需矯正頻率就高了.

以下為目前測試程式擷取畫面動畫 (0.99MB)
http://crazylion168.myweb.hinet.net/sb.exe
右下程式為主控制者未加入模擬,左上為其它人接收到動作,
目前看到問題是主控制跑到左下已按放炸彈,
伺服器處理完左上程式看起來動作才是正確,
問題是右下程式及左上程式畫面物件產生呈現不太同步.
作者 : dorkas(aming) VC++優秀好手遊戲程式設計卓越專家DirectX頂尖高手C++優秀好手貼文超過2000則
[ 貼文 2624 | 人氣 4536 | 評價 11810 | 評價/貼文 4.5 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人lionstudio註記此篇回應為很有道理 2008/5/9 上午 02:10:56
不可能會同步
只能依照公式去模擬推算去然後校正
有一個預估行動法則會去模擬將發生的行為

而且兩個客端畫面絕對有落差..
作者 : lionstudio(阿邦) 人氣指數超過10000點
[ 貼文 181 | 人氣 18300 | 評價 240 | 評價/貼文 1.33 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/9 下午 08:24:50
瞭解
我比較有問題點在當玩者之網路延遲之間差距很大
模擬推算然後校正使畫面呈現順一點
而它們之間對戰碰撞時如何能比較公平

最近玩真•三國無雙 Online對戰時看其它人
因有些人網路速度問題人物都是間隔跳著方式移動
明明人物在前面我按攻擊沒打到下一秒已經離我一段距離
玩起來真是不太公平
作者 : asoedarren(阿西德倫) 貼文超過200則
[ 貼文 266 | 人氣 8612 | 評價 1280 | 評價/貼文 4.81 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/10 上午 09:33:32
兩邊網路頻寬有落差 兩邊畫面不同步很正常 硬要校正就會變成瞬移 不過除非你是在網咖
兩台電腦在一起 仔細看才看得出來 不然一般玩家不會知道對手的畫面是什麼
依照這個前提 很多東西都可以偷 反正判斷一律由server決定 兩方結果一定是一致的

許多同步的方法可參考massively multiplayer game development系列
但無論用什麼演算法 兩邊要完全同步是不可能的 只能近似。
作者 : lionstudio(阿邦) 人氣指數超過10000點
[ 貼文 181 | 人氣 18300 | 評價 240 | 評價/貼文 1.33 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/10 上午 11:46:02
謝謝瞭解

Massively Multiplayer Game Development
http://www.amazon.com/Massively-Multiplayer-Game-Development/dp/1584502436

Massively Multiplayer Game Development 2
http://www.amazon.com/Massively-Multiplayer-Game-Development/dp/1584503904
作者 : akira32(Akira) VC++優秀好手DirectX優秀好手貼文超過2000則人氣指數超過350000點
[ 貼文 2527 | 人氣 384134 | 評價 3430 | 評價/貼文 1.36 | 送出評價 243 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/14 上午 12:24:44
這兩本書的內容一樣嗎?我是說是第一版與第二版,還是第一集與第二集的關係.
書的內容是MMORPG相關的所有東西嗎?包含engine的source code,有網路的程式碼嗎?
作者 : asoedarren(阿西德倫) 貼文超過200則
[ 貼文 266 | 人氣 8612 | 評價 1280 | 評價/貼文 4.81 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/14 上午 08:58:35

>這兩本書的內容一樣嗎?我是說是第一版與第二版,還是第一集與第二集的關係.
>書的內容是MMORPG相關的所有東西嗎?包含engine的source code,有網路的程式碼嗎?

no 是類似game gems系列匯集眾多人的文章
作者 : player(PLAYER) 貼文超過1000則人氣指數超過100000點
[ 貼文 1595 | 人氣 138661 | 評價 2840 | 評價/貼文 1.78 | 送出評價 104 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/5/23 下午 03:08:32
你可以參考MUD的心跳系統
也就是用戶端的操作
並不影響伺服器的時間基準

也就是不論各User做什麼動作
皆以伺服器上的計算
為準
這樣就應該會精確同步了

如果怕會讓人有Lag的感覺的話
可在用戶端上加上修正延遲的預測判斷
例如從Server端收到A角色從座標B移動到座標C的通知(含移動速率)
在得到A角色目前的實際座標前
用戶端可以現有的資料
做預測
 板主 : 小呆 , 冷眼
 > 遊戲程式設計 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 遊戲程式設計 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
遊戲程式設計
1 aming 2280 
2 冷眼 1450 
3 阿西德倫 510 
4 PLAYER 390 
5 garf 340 
6 Akira 330 
7 白老鼠(Gary) 290 
8 BlueTulip 270 
9 東昇 250 
10 CCL 240 
遊戲程式設計
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875