我刚刚发现我的手机是在一个对称的udp防火墙后面,这仅仅意味着udp流量是不可能的。我的3g提供商是t-mobile,它是我的国家最大的运营商之一。我怀疑更多的移动3g提供商都有udp的限制。
我计划开发一个实时游戏。udb似乎是快速移动的正确解决方案,但我不能使用udp,因为那样我就失去了灵活性(在任何地方播放,许多地方没有wifi)和大量观众(3g提供商屏蔽了udp)。
umts和3g等移动网络具有高延迟,因此tcp (具有重发丢失的分组和排队)不是理想的解决方案。
有没有别的选择?或者应该放弃在3g上玩实时游戏的想法?
发布于 2012-04-29 21:35:04
对于你的游戏逻辑来说,很难在满足延迟的情况下通过网络实现实时(特别是如果你正在制作一款像第一人称射击这样的游戏,你可以在这里阅读到关于克服一些延迟问题的内容:networked physics)。
当谈到移动网络时,那就更难了:当然,你可以让你的生活变得更轻松,只覆盖WIFI连接,但当没有免费的WIFI连接时,你会失去所有想玩3G游戏的用户(或者他们只是坚持使用3G连接,因为他们不知道如何切换到WIFI)。如果你选择覆盖3G,欢迎来到运营商的地狱:没有UDP,没有套接字,没有非标准端口,没有长超时,你好断开连接,你好奇怪的报头和你好奇怪的代理,现在乘以世界上不同的运营商的数量,哇,你涵盖了他们的所有问题。
我不是想吓倒你,只是在你的实现过程中记住这些事情:
对于完整的披露:我在Skiller工作,我们为Android开发人员(以及其他人)提供多人SDK,并提供免费工具,如社交层,用户管理,创收等。我们看到3G上的多人游戏有很多问题,我们用我们在客户端和服务器端编写的算法来弥补这个问题,以使开发人员的生活更容易。如果你想试试我们:www.skiller-games.com
发布于 2014-09-29 22:09:58
有一些基于云的实时消息传递服务,旨在自适应地工作在许多不同的移动平台上。在游戏中,你经常想要发布/订阅,所以你可能会考虑http://pubnub.com,他们会照顾你的云基础设施,有14个数据中心,提供低延迟。他们的API是游戏的理想之选,具有专门为此而设计的安全和在线状态API。他们有一个新的对象数据同步API测试版,可以减少编码。
我喜欢他们的一个关键原因是因为他们已经在这个行业工作了很多年,所以他们的API已经在大多数全球3G和企业网络上进行了测试。
你可能会看到的其他服务包括pusher.com和realtime.co,以及谷歌的新https://cloud.google.com/pubsub/服务。
https://stackoverflow.com/questions/5861009
复制相似问题