我一直在阅读Valve article on multi-player networking,该文件是根据Yahn Bernier在2001年发表的论文Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization改编而成的。我正在使用通过socket.io连接到客户端的node.js服务器制作实时多人游戏,我对以下详述的原理有一些疑问:

Entity Interpolation



Client-Side Prediction



Lag Compensation


  • 这些原理是否适用于TCP,就像适用于UDP一样,在实现上是否会有任何差异?我可以看到实体插值不需要保护以防止丢包,仅此而已。
  • 我什至可以使用UDP和Node.js在服务器和Web浏览器之间进行通信,反之亦然吗?
  • 由于该论文已有十多年的历史了,这些原理是否仍在使用中?还是出现了其他技术?

  • 任何帮助将非常感激。

    最佳答案

  • 这些原理是否适用于TCP,就像适用于UDP一样,在实现上是否会有任何差异?我可以看到实体插值不需要保护以防止丢包,仅此而已。

  • 尽管您不必处理丢包问题,但必须处理更长的传输时间。 TCP比UDP慢,您必须在实时多人游戏中减轻这种情况。我认为这些原则仍在根本上适用。
  • 我什至可以使用UDP和Node.js在服务器和Web浏览器之间进行通信,反之亦然吗?

  • 一般来说,还没有。至少没有某种形式的浏览器扩展或插件-WebSockets使用TCP。也就是说,WebRTC(更具体地说是PeerConnection API)即将面世。在实现数据 channel 时,理论上应该可以进行UDP通信。
  • 由于该论文已有十多年的历史了,这些原理是否仍在使用中?还是出现了其他技术?

  • 听到它们不再使用时,我会感到非常惊讶-您所引用的文章实际上是游戏程序员必读的。尽管几年来我一直没有密切关注这一领域的发展,但新技术的异同并未出现。

    09-26 02:07