作者yoco315 (眠月)
看板GameDesign
標題[請益]OLG人物走路的同步化問題
時間Thu Oct 12 20:20:26 2006
目前研究室在進行的一個專案,
是要把智慧型代理人系統放進 RPG/MMORPG,
設計具有高度自主性跟自我決策能力的 NPC。
因為現有的遊戲平台都不太合用,
我們現在是在融合一些系統打造一個遊戲平台,
目前實做上遇到一個困難,
就是人物走動的時候,關於人物座標的同步化問題。
以前在玩 OLG 的時候都沒有注意到原來光是走路就有學問 orz
一個 server 有很多 client,
其中一個 client(玩家A) 移動的時候,
其他的玩家要能很流暢的顯示他所看到的玩家A在移動。
我想這個問題想了頗久,
想到最簡單的方法就是玩家A狂送封包給server,
server收到以後也馬上broadcast給其他所有的玩家來進行同步化,
網路能送多快就送多快,例如每秒50~100次的同步化,
這樣其它的玩家就能很即時看到玩家A在動。
當然,這是個爛方法,網路會炸。
後來當然想的就是降低同步化的頻率,
例如每秒10次,就是0.1秒做一次同步化,
可是這樣在別的玩家眼裡看起來,玩家A的動作就像是卡卡的瞬移,
我想現在市面上的OLG都不會允許這種情況發生,
所以他們肯定有個方法克服這個問題。
不過我就是想不到怎麼樣不讓網路炸掉又能夠維持其他客端觀看我運動的流暢性的方法。
特地上來請教,
有沒有前輩有過開發OLG的經驗,
能不能指點一下在運動座標同步化這個地方是怎麼克服的?
萬分感謝。
--
To iterate is human, to recurse is divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.32
推 StubbornLin:依具我的印相 有航海法 內插法之類的方式 10/12 20:30
→ StubbornLin:就是先預測將走的位置 然後如果下次更新發現有誤 10/12 20:30
推 IJS: 你那個作法 然後加上插補 不就好了? @@ 10/12 20:30
→ StubbornLin:就修正錯誤 應該說是多修一點回來之類的 10/12 20:31
→ StubbornLin:我是覺得整個網路遊戲 同步化是很麻煩的問題 10/12 20:31
→ StubbornLin:要完全同步 不出錯是不太可能的事情 10/12 20:53
→ StubbornLin:我玩WOW有時就有看到好像是網路過度Lag的人 10/12 20:54
→ StubbornLin:不停的重覆走一段路 一直跳回去 10/12 20:54
→ StubbornLin:連WOW都沒辦法做到了 所以.. 10/12 20:54
→ StubbornLin:同步化都有誤差的 但在可接受範圍內就可以 10/12 20:55
推 asoedarren:大多是路徑預測 同步上發生瞬移修正是難免的 10/12 21:29
推 GKy:好羨慕你們的研究~ orz 可以請問是哪個學校的嗎? 10/12 22:35
→ GKy:提供我的經驗, 就是不用 Trace Client 座標的方法,而改用 10/12 22:37
推 doomleika:ID的放的Quake有原始碼,要不要參考看看? 10/13 04:11