【发布时间】:2016-09-11 02:01:06
【问题描述】:
我目前正在开发一款实时多人自上而下的射击游戏。 多人游戏正在“工作”,我目前正在努力推动玩家更新,例如位置和射击。
我的第一次尝试是使用“appWarp”服务,该服务运行良好,但不是免费的,在免费版本中只提供了大约 200 万条消息,我在大约 2 周内用 2 个设备和 2 个播放器完全填满了这些消息。 (也许会发送很多更新)
然后我实现了 Google Play 游戏服务并尝试使用它来发送更新:
我可以使用“sendUnreliableMessage”进行位置更新,这比以前的 appWarp 运行得更快。我在这里使用插值来解决包丢失问题。
但这里的问题在于射击。 UnreliableMessages 的本质是包可能会丢失,这种情况经常发生。拍摄 4 次只会使其中大约 1 或 2 个出现在另一台设备上。这意味着有 2 个包裹丢失了。使用“sendRealiableMessage”我可以实现大约 2-3 个包通过,但当然会有更高的延迟。这使得镜头在大约 1 秒后出现在另一台设备上。
对于快节奏的实时多人游戏,这不是我想要实现的。
那么有什么更好的方法来做到这一点?我找到了像 socket.io 这样的基于 Web 的解决方案,但我真的不知道哪个最适合我的需求。
我发现这个网站包含了针对这个问题的每个基于网络的解决方案的大列表,但我真的不知道从哪里开始。
https://www.leggetter.co.uk/real-time-web-technologies-guide/#_hosted-realtime-services
如果有人能帮我解决这个问题,我真的很感激!
【问题讨论】:
标签: android sockets google-play-services real-time-updates