7

我正在为服务器使用 node.js 和为客户端嵌入 HTML5 画布中的 .js 文件制作一个小游戏。每个玩家都拥有和对象,他们可以用箭头键移动。

现在我做了两种不同的更新游戏的方式,一种是在玩家每次改变时发送新的位置。它有效,但我的服务器必须每秒处理大约 60 个 x/y 对(客户端的更新速率为 30/秒,并且有 2 个玩家不停地移动)。第二种方法是只在玩家对象改变方向速度时发送新的位置和速度/方向,所以基本上在其他客户端上,玩家的移动是使用上次更新的方向/速度插值的。我的服务器只需要处理很少的 x/y7speed/direction 数据包,但是当数据包到达时,我的客户经历了一点延迟,因为插值位置通常与数据包中写入的实际位置有一点距离。

现在我的问题是:你会推荐哪种方法?我应该如何对这两种方法进行延迟补偿?

4

1 回答 1

3

如果您的延迟较低,请从绘制对象的位置向上插入新位置。在低延迟情况下,它并没有太大的区别。

如果你有高延迟,你可以实现一种 EPIC。 http://www.mindcontrol.org/~hplus/epic/

您还可以检查它是如何在 Browser-Quest 中完成的。 https://github.com/mozilla/BrowserQuest

祝你好运!

于 2012-04-12T16:06:42.547 回答