我希望我的遊戲完全是服務器端。意思是,客戶端只發送他們的擊鍵。然後,他們會從服務器獲得已更改對象位置的更新。客戶端然後渲染每一幀的一切。網絡遊戲?
這是一個2D遊戲
我在想是這樣的: 計算使用的Box2D的插圖中框,也不要試圖預測,其中服務器是實際上將是。
ServerPos - > ClientPos - > ServerPos - > ...
如果在一定的時間,我們還沒有得到一個數據包(丟棄或某事),那麼我們就模擬客戶端下一幀。這個想法是爲了避免服務器總是糾正我們的立場。我們希望客戶填寫中間人,但不要試圖預測服務器將在哪裏。
我們希望避免不惜一切代價向相反的方向移動播放器,因爲客戶端的模擬效果非常好,所以我們可以通過像0.98這樣的標量乘以合成向量,這意味着客戶端會比服務器略慢,有助於確保順利過渡到服務器的位置。
感謝
+1 - 打我吧=)我說的是幾乎相同的事情,但向後大聲笑。 @Milo - 我特別就**延遲**這個主要敵人發表了同樣的看法,而不是帶寬或服務器/客戶端能夠處理它。 – BeemerGuy 2010-12-18 03:44:23
@Milo - 請記住:如果我們假設數據以光速傳播,那麼您可以實現從地球上的A到B的_longest_通信線的_best_延遲爲66ms,這非常有限! – BeemerGuy 2010-12-18 03:47:10
+1,也打我。我打算建議**從客戶端ping到服務器 - 這會給你難以超越的硬fps限制。此外,您忽略了UDP丟包的問題,或者TCP突然間一下子突然獲得最後10秒的數據包,導致擁塞和滯後。 - 編輯補充說:我想你可以做一些預測性的工作,並在未來的一段時間內發送所有的可能性。但是,你很快就在談論一些嚴重的帶寬! – 2010-12-18 03:47:41