最近我一直在研究一個多人聯網應用程序。我已經使用Bonjour服務和NSStream對象成功實現了客戶端服務器模型。雙向溝通已成功完成。多人聯網遊戲中的同步?
我面臨的問題是:運行應用程序的兩個設備通過本地wifi連接。將消息從客戶端發送到服務器時存在延遲問題,反之亦然。
描述簡要:
- 這是一個賽車遊戲,最多兩個玩家。
- 一臺服務器和其他客戶端。
- 當客戶端按下按鈕時,一個特定的消息被髮送到服務器,告訴服務器哪個鍵或按鈕被按下。然後,服務器作出相應的響應,並在服務器本身上對客戶的汽車進行更改。這些變化並不總是相同的。客戶端屏幕上的汽車的實際位置與服務器屏幕上的汽車的實際位置總是存在差異。
任何想法?
也許代替將按鍵發送到服務器,您應該只將汽車的狀態發送到服務器。像速度,x,y,z位置。這樣在客戶端機器上就不會出現延遲,但服務器和客戶端之間可能存在不一致。 – netbrain 2011-04-29 13:25:54
[處理網絡遊戲中的延遲]可能的重複(http://stackoverflow.com/questions/42515/dealing-with-latency-in-networked-games) – 2011-04-29 13:25:55
@netbrain - oh親愛的上帝沒有。規則#1 *永遠不要相信客戶* – 2011-04-29 13:26:47