[請益] real-time遊戲延遲問題

看板GameDesign (遊戲設計)作者 (lai1003)時間10年前 (2015/03/22 00:38), 10年前編輯推噓6(6013)
留言19則, 5人參與, 最新討論串1/1
如題 小弟想做個兩人對戰的遊戲 內容類似桌球對打 雛形做出來了 但是碰到些問題,如 因網路延遲 造成兩方對球的判斷不一 可能甲方把球回擊後 藉伺服器把資料傳給乙方 但是因為有時間差 乙方的球已經顯示出界了, 是需要再同步球的位置嗎? 可是感覺顯示起來又會很突兀 剛剛在play商店發現一款對戰桌球, 感覺大致上解決了我上面問的問題, 想請問是如何做到的 手機排版 不好意思 謝謝各位 -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.90.105 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1426955897.A.C9F.html

03/22 01:03, , 1F
整場遊戲在伺服器上進行,伺服器推送遊戲現況給雙方?
03/22 01:03, 1F
這樣變成甲做回球動作>資料傳給伺服器>更新球 容易讓能打到的球變成沒打到

03/22 07:26, , 2F
複雜一點就根據延遲狀況調整球速 球過去比較慢 過來比較快
03/22 07:26, 2F
不太懂 是指讓兩方裝置看起來位置不同?(我這邊看比較快時,你看起來比較慢) ※ 編輯: f111222003 (42.67.31.105), 03/22/2015 08:36:41

03/22 09:10, , 3F
意思是擊球的時候加個緩衝,另一端準備好接球了再給他
03/22 09:10, 3F

03/22 09:10, , 4F
再加個平滑預處理就會很順暢的感覺了
03/22 09:10, 4F

03/22 09:11, , 5F
缺點為網路不順時會整體變慢動作
03/22 09:11, 5F

03/22 11:42, , 6F
你可以把球的動態用向量方程式來顯示
03/22 11:42, 6F

03/22 11:42, , 7F
或者每個loop就送一次座標
03/22 11:42, 7F

03/22 11:43, , 8F
更甚者 由伺服端統一sync球的位置也可以
03/22 11:43, 8F
那能請問PC版大型線上遊戲 不知都是如何解決這種問題的呢? ※ 編輯: f111222003 (42.70.55.183), 03/23/2015 18:56:13

03/23 21:03, , 9F
簡單一點的作法就是server送向量方程+定期sync位置
03/23 21:03, 9F

03/23 21:04, , 10F
玩家客戶端自己這邊判定複雜的碰撞等,server簡單判定
03/23 21:04, 10F

03/23 21:04, , 11F
以上這種作法是WOW類型wsad移動會採取的方式
03/23 21:04, 11F

03/23 21:05, , 12F
如果是滑鼠點擊移動,那通常都是用a*簡單判定路徑
03/23 21:05, 12F

03/23 21:05, , 13F
再由server送路徑資料回來,這方法還會搭配區域切分
03/23 21:05, 13F

03/23 21:05, , 14F
來減輕server的負擔
03/23 21:05, 14F
謝謝各位大大的解說 多認識很多東西 我會在努力試試的! ※ 編輯: f111222003 (1.164.90.105), 03/24/2015 02:01:52

03/24 09:52, , 15F
不過以上MMO的作法其實不一定適合你現在做的東西
03/24 09:52, 15F

03/24 09:53, , 16F
主要是對於位子的容錯性、補償機制,MMO比較不在意即時
03/24 09:53, 16F

03/24 09:54, , 17F
的精準程度,其他客戶端看到的誤差容忍度比較大
03/24 09:54, 17F

03/24 10:00, , 18F
你比較需要的應該是找類似FPS之類的連線機制來看
03/24 10:00, 18F

03/24 10:00, , 19F
文章代碼(AID): #1L3PvvoV (GameDesign)
文章代碼(AID): #1L3PvvoV (GameDesign)