我正在使用Google Play游戏服务 - 实时多人游戏API为我的手机游戏添加多人游戏功能。我使用的引擎是Unity3D,但我的问题与Unity没有关系(我相信)所以它并不重要。
我想知道的是通过互联网接收的消息的延迟,以使我的游戏流畅和同步。
我知道在像Photon这样的其他API中,您可以轻松找到正在接收的邮件的延迟,但我似乎没有在Google Play游戏服务API上找到它。
有没有办法知道Google Play游戏服务API上接收邮件的延迟?
感谢您的时间!
答案 0 :(得分:0)
在Google Real Time多人API的情况下,确定消息的延迟有点复杂,因为连接是点对点的,因此大多数数据直接从一个播放器传输到另一个播放器。 (详见:https://developers.google.com/games/services/common/concepts/realtimeMultiplayer#messaging)
简短的回答是,您可以通过在消息中添加序列号来自己估算,然后交换每个客户在消息之间经历的时差。我建议测量几个消息和大小,并且因为条件会改变,所以没有太多的内存。类似于30-100条消息的每条消息之间的平均时间,然后计划最慢的链接。
要制作一个好的实时游戏,你真的应该假设延迟是可变的(有时它很低,有些很高),并且它总是比你想要的长:)
您可能想要结帐https://gamedev.stackexchange.com/questions/58450/mobile-multiplayer-games-and-coping-with-high-latency,其中讨论了如何处理这种情况。