作者f111222003 (lai1003)
看板GameDesign
標題[請益] real-time遊戲延遲問題
時間Sun Mar 22 00:38:15 2015
如題
小弟想做個兩人對戰的遊戲
內容類似桌球對打 雛形做出來了
但是碰到些問題,如 因網路延遲 造成兩方對球的判斷不一
可能甲方把球回擊後 藉伺服器把資料傳給乙方
但是因為有時間差 乙方的球已經顯示出界了,
是需要再同步球的位置嗎? 可是感覺顯示起來又會很突兀
剛剛在play商店發現一款對戰桌球,
感覺大致上解決了我上面問的問題,
想請問是如何做到的
手機排版 不好意思 謝謝各位
--
Sent from my Android
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.90.105
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1426955897.A.C9F.html
1F:推 cjcat2266: 整場遊戲在伺服器上進行,伺服器推送遊戲現況給雙方?03/22 01:03
這樣變成甲做回球動作>資料傳給伺服器>更新球 容易讓能打到的球變成沒打到
2F:推 scars: 複雜一點就根據延遲狀況調整球速 球過去比較慢 過來比較快03/22 07:26
不太懂 是指讓兩方裝置看起來位置不同?(我這邊看比較快時,你看起來比較慢)
※ 編輯: f111222003 (42.67.31.105), 03/22/2015 08:36:41
3F:→ KanoLoa: 意思是擊球的時候加個緩衝,另一端準備好接球了再給他03/22 09:10
4F:→ KanoLoa: 再加個平滑預處理就會很順暢的感覺了03/22 09:10
5F:→ KanoLoa: 缺點為網路不順時會整體變慢動作03/22 09:11
6F:推 cowbaying: 你可以把球的動態用向量方程式來顯示03/22 11:42
7F:→ cowbaying: 或者每個loop就送一次座標03/22 11:42
8F:→ cowbaying: 更甚者 由伺服端統一sync球的位置也可以03/22 11:43
那能請問PC版大型線上遊戲 不知都是如何解決這種問題的呢?
※ 編輯: f111222003 (42.70.55.183), 03/23/2015 18:56:13
9F:推 akilight: 簡單一點的作法就是server送向量方程+定期sync位置03/23 21:03
10F:→ akilight: 玩家客戶端自己這邊判定複雜的碰撞等,server簡單判定03/23 21:04
11F:→ akilight: 以上這種作法是WOW類型wsad移動會採取的方式03/23 21:04
12F:→ akilight: 如果是滑鼠點擊移動,那通常都是用a*簡單判定路徑03/23 21:05
13F:→ akilight: 再由server送路徑資料回來,這方法還會搭配區域切分03/23 21:05
14F:→ akilight: 來減輕server的負擔03/23 21:05
謝謝各位大大的解說 多認識很多東西 我會在努力試試的!
※ 編輯: f111222003 (1.164.90.105), 03/24/2015 02:01:52
15F:推 akilight: 不過以上MMO的作法其實不一定適合你現在做的東西 03/24 09:52
16F:→ akilight: 主要是對於位子的容錯性、補償機制,MMO比較不在意即時 03/24 09:53
17F:→ akilight: 的精準程度,其他客戶端看到的誤差容忍度比較大 03/24 09:54
18F:推 akilight: 你比較需要的應該是找類似FPS之類的連線機制來看 03/24 10:00