Skip to main content
 首页 » 编程设计

mobile之通过移动网络进行实时多人游戏

2024年02月20日9xiaohuochai

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

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

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

还有其他选择吗?或者应该放弃 3g 上的实时游戏的想法?

请您参考如下方法:

通过网络实现实时性并满足游戏逻辑的延迟是非常困难的(特别是如果您正在制作第一人称射击游戏之类的游戏,您可以在此处阅读如何克服一些延迟问题:networked physics)。

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

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

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