【问题标题】:Real Time Multiplayer Best way for pushing updates on android实时多人游戏在 android 上推送更新的最佳方式
【发布时间】: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


    【解决方案1】:

    既然你在征求意见,我建议你试试Multiplayer in Unity。截至今天,它是leading game engine,因此您可以期待来自庞大用户群的巨大支持。

    另一个选项是Photon。希望这些建议对您有所帮助。

    【讨论】:

    • 我可能忘了补充一点,我已经在使用 libGDX 框架,而且游戏还没有处于我考虑将引擎更改为 Unity 的早期状态。我唯一的问题是 Google Api 可能更好地解释 in my other question
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2010-10-22
    • 2017-06-15
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多