java - 将 Google 回合制多人游戏与 Google App Engine 集成

标签 java android google-app-engine multiplayer google-play-games

我现有的 Android (Java) 游戏让玩家与最多八个 AI 对手对抗。我现在决定实现异步在线回合制多人游戏模式。由于我目前通过 Google Play 游戏服务支持排行榜和成就,因此我希望使用他们的回合制多人游戏 API,但由于该 API 中存在以下限制,事实证明这远非理想 -

  • 每个玩家在游戏期间都必须留在应用中
  • 一次只能玩一款多人游戏

我的游戏是这样的类型,你可能会玩一个回合,然后关闭游戏,直到收到通知说又轮到你了。此外,对于八人游戏来说,所有八个实例不太可能在整个游戏期间保持运行。玩家也可能想要同时参加多个不同的游戏。 (虽然这款游戏与《Draw Something》完全不同,但他们的多人游戏模式与我需要的类型类似)。

在排除了使用回合制 API 的可能性后,我一直在研究其他可能性,并遇到了 App Engine。不幸的是,我 99% 的开发经验都是与客户端编码有关,因此其中一些问题可能看起来很天真......

  1. 是否可以将 Google Play 游戏服务与 Google 集成 应用程序引擎?理想情况下,我希望将一切都与每个人联系在一起 玩家的 Google 帐户,因为我已经在使用 Google Play 游戏 成就和排行榜服务。

  2. App Engine 是否适合允许多个实例 异步回合制游戏?

  3. 我可以使用部分多人游戏 API,例如大厅 系统还是都需要从头开始编写?

  4. 设置该系统需要花费多少学习曲线 后台系统?我需要什么资源?

对于上述问题的任何建议,我们将不胜感激。

最佳答案

正如前面的回答所指出的,实时 API 和回合制 API 之间存在差异 - 回合制 API 确实允许您异步玩游戏,而且 - 据我所知 - 您还可以运行多个游戏没有任何问题。

https://developers.google.com/games/services/android/turnbasedMultiplayer

该系统不适用于同时移动的回合制游戏,但根据您的描述,我认为它可以很好地满足您的目的。

关于您的问题,我自己花了一些时间寻找多人回合制游戏的解决方案,以下是我的观察:

  1. 一切皆有可能。但如果您的问题是 - Google Play 服务是否支持集成,那么答案是否定的。

  2. 它与您可能用来实现 Web 服务的大多数其他框架一样合适。尽管这确实取决于服务器端需要多少处理;请注意,请求可以运行多长时间等存在一些限制。

  3. 您需要自己动手。

  4. 如果您是一名 Java 程序员,您应该考虑使用基于 Java 的后端框架; Google App 引擎支持这一点。您还可以考虑在其他地方设置自己的虚拟服务器,因为至少现在是这样,使用 Google App 引擎并没有太多好处(至少在我看来)。您需要明确两个关键要素:您的游戏状态如何保存在服务器端,以及用户如何进行身份验证。后者尤其重要。

如果您的游戏结构适合 Google Play 服务回合制框架,我在寻求自己的解决方案之前肯定会三思而后行 - 至少目前如此。

关于java - 将 Google 回合制多人游戏与 Google App Engine 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360188/

相关文章:

python - 在创建实体期间将作者分配给实体

python - Flask URL 路由 : Route All other URLs to some function

python - 自定义属性的ListProperty

java - 在javafx中添加一个矩形到根

android - 在 Android 以太网连接中使用 setprop 获取 DNS 服务器详细信息

android - 如何在onResume中使用Intent?

android - 使用 SimpleAdapter 时,单击 URL 会导致 ListView 中出现强制关闭错误

java - Java 中的执行器和守护进程

java - IntelliJ 如何显示 Java 10 中自动推断局部变量的类型提示?

java - 一个质数程序,允许用户测试数字直到用户输入零。但是,在测试了 6 个数字后,它打印出错误的消息