【问题标题】:Realtime multiplayer game over mobile network?通过移动网络进行实时多人游戏?
【发布时间】:2011-05-02 18:39:48
【问题描述】:

我刚刚发现我的手机位于对称 udp 防火墙后面,这仅意味着无法进行 udp 流量。我的 3g 提供商是 t-mobile,它是我国最大的提供商之一。我怀疑更多的移动 3g 提供商有 udp 限制。

我正计划开发一款实时游戏。 udb 似乎是快速移动的正确解决方案,但我不能使用 udp,因为那样我会失去灵活性(在任何地方玩,很多地方没有 wifi)和大量观众(阻止 udp 的 3g 提供商)。

umts 和 3g 等移动网络具有高延迟,因此 tcp(具有重新发送丢失的数据包和排队)不是理想的解决方案。

还有其他选择吗?还是应该放弃超过 3g 的实时游戏的想法?

【问题讨论】:

    标签: mobile network-programming udp real-time 3g


    【解决方案1】:

    很难通过网络实现满足游戏逻辑延迟的实时(尤其是如果您正在制作类似第一人称射击游戏的游戏,您可以在此处阅读有关克服一些延迟问题的信息:networked physics)。

    说到移动网络,就更难了: 当然你可以让你的生活更轻松,只覆盖 WIFI 连接,但是当没有可用的免费 WIFI 连接时,你将失去所有想要通过 3G 玩的用户(或者他们只是因为不知道如何使用 3G 连接而坚持使用换成WIFI)。如果您也选择涵盖 3G,欢迎来到运营商地狱:没有 UDP、没有套接字、没有非标准端口、没有长时间超时、以及您好断开连接、您好奇怪的标头和您好奇怪的代理,现在将它乘以不同的数量世界各地的运营商,瞧,您涵盖了他们的所有问题。

    我不是想吓唬你,只是在实施过程中记住以下几点:
    1。没有套接字或使用非标准端口 - 运营商出于明显的原因不允许使用套接字,他们不希望您占用他们的资源,因为在此期间他们可以为其他付费客户提供服务;)如果您的游戏逻辑允许,尝试在没有套接字的情况下实现协议。
    2。与海上的几个朋友一起测试您的游戏,或使用可以为您做的人群测试服务。您可以通过自己的协议校准延迟。
    3。分发服务器将极大地帮助解决延迟问题。
    4。确保您没有通过网络发送大量数据,要聪明,不要使用设备的电池。
    5。压缩您的数据!

    完整披露:我在 Skiller 工作,我们为 Android 开发人员(以及其他人)提供多人游戏 SDK,其中包含社交层、用户管理、创收等免费工具......我们发现多人游戏超过 3G 存在很多问题我们用我们在客户端和服务器端编写的算法来补偿它,使开发人员的生活更轻松。如果你想试试我们:www.skiller-games.com

    【讨论】:

      【解决方案2】:

      有一些基于云的实时消息服务旨在自适应地在许多不同的移动平台上工作。在游戏中,您经常需要发布/订阅,因此您可能会看到 http://pubnub.com 他们通过 14 个数据中心提供低延迟来照顾您的云基础设施。他们的 API 非常适合使用为此设计的安全性和存在性 API 进行游戏。他们在测试版中有一个新的对象数据同步 API,可以减少编码。

      我喜欢它们的一个关键原因是因为它们已经从事该行业多年,因此它们的 API 已在全球大多数 3G 和企业网络上进行了测试。

      您可能会查看的其他内容包括 pusher.com 和 realtime.co 以及 Google 的新 https://cloud.google.com/pubsub/ 服务。

      【讨论】:

        猜你喜欢
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        • 2018-10-28
        相关资源
        最近更新 更多