2016-04-18 70 views
-1

我想做一個基於實時的在線遊戲,因爲我會使用UDP,但是當它涉及到了解它是如何工作的時候,我無法得到它,遊戲是如何工作的等等。在線遊戲中服務器和客戶端之間的通信背後的邏輯是什麼?

但是我想出了這個:

例如,我有一個矩陣持有的活動球員的位置的服務器,當一個球員移動它發送數據到服務器關於未來的位置,並在矩陣中搜索,如果移動是可能的,如果是的話,它會改變併發送更新後的矩陣給所有活動的玩家,如果沒有,它什麼也不做。但實施這個想法,它會導致像位置碰撞,延遲等問題。

所以我想知道,我應該如何實現它?

有沒有模板設計?

回答

1

這就是爲什麼遊戲通常使用中央服務器來實現跟蹤「棋盤」狀態的原因。否則,你將不得不學習分佈式鎖定和增量更新等內容。

另外,不要發送整個矩陣。至少不是每次。發送差分(從他們移動到的位置),以及上次發送整個矩陣的檢查點標識。這樣每個客戶端都可以保留矩陣,但每一次移動都不會導致整個矩陣的整個開銷。無論何時你都會想要發送整個矩陣,可能是作爲一個非阻塞操作,這樣它就不會阻止遊戲玩法。

相關問題