在网络上实现满足游戏逻辑延迟的实时是非常困难的(特别是如果您正在制作像第一人称射击游戏这样的游戏,您可以在此处阅读有关克服一些延迟问题的信息:网络物理)。
说到移动网络,就更难了:当然你可以让你的生活更轻松,只覆盖 WIFI 连接,但是当没有免费的 WIFI 连接时,你会失去所有想玩 3G 的用户(或者他们只是坚持使用 3G 连接,因为他们不知道如何更改为 WIFI)。如果您也选择涵盖 3G,欢迎来到运营商地狱:没有 UDP、没有套接字、没有非标准端口、没有长时间超时、以及您好断开连接、您好奇怪的标头和您好奇怪的代理,现在将它乘以不同的数量世界各地的运营商,瞧,你涵盖了他们所有的问题。
我不是要吓唬你,只是在你的实施过程中记住这些事情:
1. 没有套接字或使用非标准端口 - 运营商出于明显的原因不允许使用套接字,他们不希望你占用他们的资源,因为在那时他们可以为其他付费客户提供服务;)如果您的游戏逻辑允许,请尝试在没有套接字的情况下实现协议。
2. 与几个朋友在海上测试您的游戏,或使用可以为您做的人群测试服务。您可以通过自己的协议校准延迟。
3. 分发服务器将极大地帮助解决延迟问题。
4.确保您没有通过网络发送大量数据,要聪明,对设备的电池保持温和。
5. 压缩你的数据!
全面披露:我在 Skiller 工作,我们为 Android 开发人员(以及其他人)提供多人游戏 SDK,其中包含免费工具,如社交层、用户管理、创收等……我们发现多人游戏超过 3G 存在很多问题,我们对此进行了补偿它与我们在客户端和服务器端编写的算法一起使开发人员的生活更轻松。如果你想试试我们:www.skiller-games.com