我正在使用node.js作为服务器,并在客户端的HTML5画布中嵌入一个.js文件。每个玩家都有对象,他们可以使用箭头键移动。
现在我已经有两种不同的方式来更新游戏,一种是每次更改时发送玩家的新位置。它工作但我的服务器必须每秒处理大约60 x / y对(客户端的更新率为30 /秒,并且有2名玩家不停地移动)。 第二种方法是当他们改变方向速度时仅发送玩家对象的新位置和速度/方向,因此基本上在其他客户端上使用上次更新的方向/速度来插入玩家的移动。我的服务器只需要处理很少的x / y7速度/方向数据包,但是当数据包到达时我的客户端经历了一点延迟,因为插值位置通常与数据包中写入的实际位置相差一点。
现在我的问题是:你会推荐哪种方法?我应该如何对这两种方法进行滞后补偿?
答案 0 :(得分:3)
如果您的延迟较低,请从对象绘制新位置的位置进行插值。在低延迟时,它并没有太大的区别。
如果您有高延迟,则可以实现一种EPIC。 http://www.mindcontrol.org/~hplus/epic/
您还可以在Browser-Quest中查看它是如何完成的。 https://github.com/mozilla/BrowserQuest
祝你好运!