3

我想为 2-4 名玩家创建多人 2D 顶视图竞赛游戏。对于多人游戏,此游戏将使用 Google Play 游戏服务。玩家将通过旋转装置(加速度计)移动他们的汽车。我将把这些数据发送给房间里的所有参与者。它的实时性和此类游戏需要尽可能准确的汽车位置和角度以实现流畅的动画、检查对象碰撞、显示位置等……,因此游戏必须足够快地刷新以保持流畅并使用给定的数据。

Google Play 游戏服务多人消息传递有 2 个在客户端之间交换游戏数据的概念:

  1. 发送实时消息 -可靠(最多 50 条消息/秒)和不可靠
  2. 基于套接字

我应该使用哪个概念来交换玩家数据?

4

2 回答 2

1

我也在做类似的事情,我的计划是首先使用可靠消息构建一个原型,然后看看它是如何进行的。如果延迟被证明是一个问题,我将下台到不可靠的消息传递,然后如果它真的不起作用,基于套接字。与任何软件项目一样,拥有良好的架构将使您能够相对轻松地切换协议。

此外,通过实现 Reliable Messaging 然后切换到 Unreliable 不会浪费任何工作,因为 Reliable Messaging 所需的编程是 Unreliable Messaging 的先决条件。

如果有经验的人可以立即回答这个问题,什么可行,什么不可行,那就太好了。

于 2013-06-12T02:43:10.763 回答
0

我正在开发一款与您为我的大学项目描述的几乎完全相同的游戏。我们使用 AndEngine 作为游戏引擎。

我们决定选择不可靠的消息传递,因为我们了解到,对于射击游戏或赛车游戏等快速更新的游戏,最好使用类似 UDP 的协议。

我们有两种方法:

  • 向所有其他用户广播我的汽车的位置 - 相当简单和可靠,但是每秒约 30 次更新仍然不够流畅,

  • 每当有任何变化时广播我的汽车的速度和方向 - 结果非常顺利,但是如果任何数据包丢失,则使用不可靠的消息传递,一段时间后,同一辆车的位置在不同用户的设备上是不同的。

我真的很想支持这个问题,并请有这方面经验的人做出贡献:)

于 2014-06-02T08:42:37.077 回答