2011-05-02 62 views
6

我刚刚发现我的手机位于对称udp防火墙的后面,这意味着udp流量不可用。我的3g提供商是t-mobile,这是我国最大的提供商之一。我怀疑还有更多的移动3g提供商具有udp限制。通过移动网络实时多人游戏?

我打算开发一个实时游戏。 udb似乎是快速移动的正确解决方案,但我无法使用udp,因为那时我失去了灵活性(随地玩,没有wifi的许多地方)和大量观众(阻止udp的3g提供商)。

像umts和3G这样的移动网络具有很高的延迟,所以tcp(重发丢包和排队)并不是理想的解决方案。

有没有其他的选择?或者应该放弃3g以上的实时游戏?

回答

3

,实现了与你的游戏逻辑满意的延迟网络实时这是非常困难(特别是如果你正在像第一人称射击游戏,你可以读到这里克服一些延迟问题:networked physics)。

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

我不是在吓唬你,只记得你的实施过程中这些东西:
1.没有插座或无标准端口的使用 - 插座不是由显而易见的原因,运营商允许的,他们不希望你获取资源,因为在那段时间内,他们可以为其他付费用户服务;)如果您的游戏逻辑允许,请尝试在没有套接字的情况下实施协议。
2.与海底的几位朋友一起测试你的游戏,或者使用可以为你做的人群测试服务。您可以通过自己的协议来校准延迟。
3.分配您的服务器将极大地帮助解决延迟问题。
4.确保你没有通过网络发送大量数据,要聪明,用设备的电池温柔。
5.压缩你的数据!

为了充分披露:我在Skiller工作,我们为Android开发人员(除其他人员)提供多人SDK以及社交层,用户管理,创收等免费工具......我们看到了多人游戏3G,我们用我们在客户端和服务器端编写的算法进行补偿,使开发人员的生活更轻松。如果你想试试我们:www.skiller-games.com

0

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

我喜欢他们的一个关键原因是因为他们已经在这个行业工作了很多年,所以他们的API已经在大多数全球的3G和企业网络上进行过测试。

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