我正在开发使用Libgdx的流行游戏Pong的在线版本。我已经开始使用Google的Realtime Multiplayer服务在玩家之间发送游戏数据,但我无法弄清楚如何解决我面临的同步问题。如何同步播放服务实时多人游戏
此时发送的信息是玩家的桨,所以当我移动时,我将新的位置发送给对手。当对手收到它时,时间已经过去并且同步丢失。
我知道在使用最慢连接的移动之间应该有一些等待时间,但是如何让它看起来平滑呢?
我正在开发使用Libgdx的流行游戏Pong的在线版本。我已经开始使用Google的Realtime Multiplayer服务在玩家之间发送游戏数据,但我无法弄清楚如何解决我面临的同步问题。如何同步播放服务实时多人游戏
此时发送的信息是玩家的桨,所以当我移动时,我将新的位置发送给对手。当对手收到它时,时间已经过去并且同步丢失。
我知道在使用最慢连接的移动之间应该有一些等待时间,但是如何让它看起来平滑呢?
这个问题并没有明确的答案,但有很多策略让人们适应解决这种情况。
从使用UDP协议开始(如果你使用基于套接字的通信,我会推荐你,因为每个ms都在实时游戏中很重要,我认为google api有UDP,这是不可靠的消息传递。 -api)用于消息交换到插值,航位推测,客户端预测等等。
这是一个非常大的话题在这里回答。当我制作我的多人坦克游戏时,我做了一些事情让事情看起来更平滑。
我提到的观点描述了我在我的游戏中所做的事情,但可以在任何情况下使用。虽然我会建议你阅读本网站上的文章,名字叫做Gaffer on Games
这个领域又很大,没有答案可以帮助你。我在这个话题上做了论文,但仍不能给你一个明确的答案。您将不得不阅读大量文章,并根据您的需求建模您的学习内容。
您需要使用某种类型的Animation Interpolation
这将意味着桨不“瞬移”到新的位置,但慢慢地开始移动有,在接收到新的位置后。