游戏服务器。随时间移动物体

时间:2014-05-28 18:38:44

标签: sockets coordinates real-time

人。我有一个普遍的问题。让我们想象一个简单的游戏场景。 我们有一个玩家所在的2d地图。玩家可以移动并发射火箭。如果火箭到达另一个玩家,必须采取一些行动(例如,死亡)。

所以我们有一台服务器,存储有关当前情况的信息:

  • 游戏对象(玩家,火箭)
  • 这些对象的坐标
  • 物体速度
  • 坐标,当前每个对象移动的位置(目标点)

我们有一个客户端,它通过套接字从服务器获取信息,并为玩家的对象绘制地图。客户端还向服务器发送信息(例如,当玩家点击地图时 - 发送有关他新目的地点的数据)。

所以问题是 - 如何在服务器端实现对象移动的机制?如何检测两个物体何时接触(例如:火箭的位置=玩家的位置)?

我的想法是: 制作计时器(间隔很短)。在此间隔之后,我们需要根据它的当前位置,速度和最终目的地计算地图上每个对象的位置,并通过套接字将数据发送到客户端。但直觉告诉我,这是一个非常糟糕的方法。如果我的计时器的周期为10毫秒:

  • 大量数据将被发送到客户端(并且可能会丢失,因为在许多情况下播放器的ping将大于10ms)。
  • 服务器将每10毫秒进行大量计算。

实现我的想法的最佳方式是什么? 也许有一篇文章描述了如何正确地做到这一点?

谢谢。

0 个答案:

没有答案