常见的"tick" 在线多人游戏怎么玩?

Common "tick" in online multiplayer games how to?

这是一种情况。假设我正在为浏览器构建一个在线 2 人游戏,其中一个目标是 为两个玩家生成一些东西(一个对象) 在屏幕上的同一点,并使其以相同的速度沿直线运动。最好实现“server tick” 来移动对象(或多个对象) 以使其成为 的工作一个浏览器。我理解将它留给浏览器的不良影响,但我也担心服务器或其他东西的负载很大。关于一般如何实施的任何想法?

从概念上讲,可以通过三种方式实现:

  • 纯服务器端模式
  • 纯客户端模式
  • 混合模式

让我们看一下它们各自的一些细节。

在三种不同模式下将此应用于您的案例意味着:

  • 在纯服务器端模式下,您将轨迹的坐标实时发送到两个浏览器。每个浏览器仅接收坐标并在接收到的位置显示对象。您可以看到这种方法的一个实例。使用两个不同的浏览器转到 http://push.lightstreamer.com/ 并在右下角的演示中移动角色。角色和球的所有动作都由服务器决定,一个坐标一个坐标,实时广播给所有客户端。

  • 在纯客户端模式下,你会共享一个初始世界状态,然后每个浏览器会计算自己的世界演化,可能会有分歧。

  • 在混合模式下,浏览器进行自己的计算,就像在纯客户端模式下一样,但它们通过低频服务器端广播定期同步。所以,服务器端和客户端的物理运行。

最简单的解决方案是纯服务器端模式,这在不太复杂的场景中是完美的。为了使其具有可扩展性和容忍网络延迟,您需要一个特定的服务器,就像这些演示中使用的那样[完全披露:我参与了这样的服务器]

想了解更多详情,可以看看我之前准备的一些资源: