7

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

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

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

有替代方案吗?还是应该放弃超过 3g 的实时游戏的想法?

4

2 回答 2

4

在网络上实现满足游戏逻辑延迟的实时是非常困难的(特别是如果您正在制作像第一人称射击游戏这样的游戏,您可以在此处阅读有关克服一些延迟问题的信息:网络物理)。

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

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

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

于 2012-04-29T13:35:03.893 回答
0

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

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

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

于 2014-09-29T14:09:58.170 回答