2011-04-24 73 views
2

我正在製作雙人3D遊戲,並且需要同步遠程玩家的位置。只有一個對象,代表玩家的化身,需要在兩場比賽之間同步。在XNA中通過網絡同步遊戲精靈

我認爲這將是非常直接的,但事實證明,即使在本地網絡中,當在兩臺不同的機器上玩遊戲時,遠程玩家正在以一種方式移動(兩臺同一臺機器上的遊戲實例看起來不錯) 。

在當前的方法中,一個遊戲是服務器,而另一個遊戲充當客戶端,通過專用端口發送座標作爲文本字符串。他們基本上都是將虛擬角色的座標傳送給彼此,每次虛擬角色實際上都在移動。

任何想法在發送/接收座標時如何解決滯後相關問題?只需要在本地網絡上工作。

+0

另外在遊戲開發網站上查看這個問題:http://gamedev.stackexchange.com/questions/11606/implementing-network-smoothing – 2011-04-25 15:00:27

回答

2

Glenn「Gaffer」Fiedler在Networking for Game Programmers上的一系列文章幾乎是基本遊戲網絡編程的入門指南。他還有一篇關於Networked Physics的文章。

該系列文章(例如:可靠性)中描述的許多技術已經在像Lidgren這樣的庫中爲您實施。

基本上你要使用的技術是插值,外推和預測。上述系列中的this article有一個很好的解釋,加上網絡物理的一個。基本上你會採取不可靠的,滯後的位置數據流,並用它來對對象的實際路徑進行視覺上合理的估計。

+0

非常感謝您的建議:) – sinsro 2011-04-25 14:11:22