我正在制作一款双人3D游戏,需要同步远程玩家的位置。只有一个对象,即代表玩家的头像,需要在两个游戏之间同步。
我认为这将非常简单,但事实证明,即使在本地网络中,当在两台不同的机器上玩时,远程播放器也会以一种恶劣的方式移动(同一台机器上的两个游戏实例看起来很好)。
在当前的方法中,一个游戏是服务器,而另一个游戏充当客户端,通过专用端口将坐标作为文本字符串发送。每次化身实际移动时,它们基本上都是将头像坐标流向彼此。
知道在发送/接收坐标时如何解决延迟相关问题?只需要在本地网络上工作。
答案 0 :(得分:2)
Glenn“Gaffer”Fiedler关于Networking for Game Programmers的系列文章几乎是基本游戏网络编程的首选指南。他还有一篇关于Networked Physics的文章。
该系列文章中描述的许多技术(例如:可靠性)已经在Lidgren等库中为您实现。
基本上,您要使用的技术是插值,外推和预测。在前面的系列this article中加上网络化物理系列,对它们有很好的解释。基本上你采用不可靠,滞后的位置数据流,并使用它来对目标的实际路径进行视觉上可信的估计。