我正在使用Google Api创建一个实时多人游戏 - 使用libGDX进行自上而下的射击游戏。
每次调用“render()”方法时,玩家位置都会通过“sendUnreliableMessage”发送:
玩家射击的子弹通过“sendReliableMessage”发送,如下所示:
每次“render()”调用都会发送移动消息。 - 取决于FPS每秒30-60次。
只有在按下“开火”按钮时才会发送项目符号消息。只有一次。只有子弹的“创造位置”。两个设备都会从此位置计算本地移动的更新。
我的问题和疑问是:
我测试时仅发送移动播放器位置的更新。然后在静止时射击4次(没有发送“玩家位置'不可靠消息') 所有4张照片都出现在“设备B”上
当我在每次更新框架上发送“不可靠的消息”时,我认为“reliableMessages”会丢失(再次大约每秒30-60次)。
答案 0 :(得分:0)
如果我们完全依赖Sending game data,我理解它的方式,您可以使用Google Play游戏服务提供的两种消息传递协议来实现发送数据消息。
回答你的问题:
<强> 1。像这样更新玩家位置通常是正确的吗?
您仍可以选择使用两种给定的消息传递协议。只需选择最适合您的选项,但是请注意,如果邮件在传输中被丢弃或者无法接收,您的应用程序将负责确保游戏正常运行。
<强> 2。镜头迷路了。包装损失约为50-80%。
通过可靠的消息传递,数据传输,完整性和订购得到保证。您可以选择使用回调通知交付状态。但是,为了避免丢失一些更新,请注意,您可以发送可用或不可靠消息的最大邮件大小。
除了文档中提供的内容之外,此SO帖子中的建议 - Real Time Multiplayer Best way for pushing updates on android也可能有所帮助。