我打算写一个实时合作多人游戏。目前我正处于研究阶段。我已经写了一个基于回合的游戏,它使用websockets并且工作正常。对于实时Web应用程序,我有哪些更快的替代方法?
但是我还没有试过用这种技术写实时游戏。我的问题是关于websockets。是否有另一种方式来处理(浏览器)客户端之间的通信?我的想法是让游戏在每个客户端中处于状态,并且只向使用服务器作为中介/同步工具的客户端发送增量。
我主要关心的是网络速度。我希望客户能够尽可能快地接收对方的行为,这样我的游戏就可以保持实时。我每秒大约有20-30帧,每帧的数据少于一千字节(这意味着每个客户端每秒最多可以有20-30千字节的数据)。
我知道像“网络速度”这样的事情取决于连接,但我对“如果其他所有事情平等”的情况感兴趣。
怎么可能比websockets更快,它可以让你只用几个字节的开销发送原始二进制文件?对于大众来说,30kb/s也太多了,如果它与帧相关的话。 – dandavis 2015-02-23 23:04:35
我不知道这就是我问的原因。 – 2015-02-24 11:27:17
足够公平,我的观点是,使用websockets,您可以像网络一样快速地发送数据,并且尽可能减少延迟和开销。30FPS应该没有问题,套接字行程通常在10ms以下(不包括TTFB),除非您的服务器距离很远,在这种情况下,大部分时间可能需要长达15ms才能到达全球。 15ms * 2 =往返30ms,1000ms/30ms = 33.3FPS。运送纯粹的增量可能意味着运送一个关键字:值对,但是有序的值数组可能会“便宜”,即使额外的逗号创建了一个稀疏数组,同时省略了多余的元素。 – dandavis 2015-02-24 21:02:31