2011-04-24 79 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