针对TCP和Node.js的实时多人游戏原则
我一直在阅读关于多玩家网络的Valve文章,这篇文章是根据Yahn Bernier 2001年的论文改编的,这篇文章称为客户端/服务器游戏内协议设计和优化中的延迟补偿方法。 我正在使用通过socket.io连接到客户端的node.js服务器制作一个实时多人游戏,我有几个关于下面详细说明的原则的问题:
实体插值
[Interpolation]可以防止通常由于缓存服务器更新而导致的抖动,然后在间隙之间平滑插入间隙的情况下播放它们。 它还可以防止数据包丢失造成的故障。
客户端预测
预测是客户端的概念,预测本地玩家的行为的影响,而不用等待服务器确认它们。 实体的预测状态在服务器命令到达时进行测试,直到检测到匹配或不匹配。
滞后补偿
延迟补偿是服务器使用播放器延迟处理[用户输入]时的后退时间的概念,以便了解播放器在发送命令时看到的内容。 与预测相结合,滞后补偿可以帮助打击网络延迟,直至几乎从攻击者的角度消除它。
这些原则是否适用于TCP,就像它们对UDP的做法一样,在实现方面会有什么不同吗? 我可以看到,实体插值不需要防止数据包丢失,但是这是有关它的。
我甚至可以使用UDP和Node.js在服务器和Web浏览器之间进行通信,反之亦然?
既然论文已有十多年的历史,这些原则还在使用中还是出现了其他技术?
任何帮助将非常感激。
尽管您不必处理数据包丢失问题,但您必须处理更长的运输时间。 TCP比UDP慢,你必须在实时多人游戏中缓解这个问题。 我认为这些原则仍然适用于基本的层面。
一般来说,还没有。 至少不是没有某种形式的浏览器扩展或插件 - WebSockets使用TCP。 也就是说,WebRTC(更具体地说,PeerConnection API)即将到来。 在实施数据通道时,理论上讲,UDP通信应该是可能的。
听到他们不再被使用,我会非常惊讶 - 你引用的文章实际上是游戏程序员必读的内容。 新技术同样没有出现,虽然我几年来一直没有密切关注这方面的发展。
链接地址: http://www.djcxy.com/p/62235.html上一篇: Realtime multiplayer game principles for TCP and Node.js