我现有的 Android (Java) 游戏让玩家与最多八个 AI 对手对抗。我现在决定实现异步在线回合制多人游戏模式。由于我目前通过 Google Play 游戏服务支持排行榜和成就,因此我希望使用他们的回合制多人游戏 API,但由于该 API 中存在以下限制,事实证明这远非理想 -
- 每个玩家在游戏期间都必须留在应用中
- 一次只能玩一款多人游戏
我的游戏是这样的类型,你可能会玩一个回合,然后关闭游戏,直到收到通知说又轮到你了。此外,对于八人游戏来说,所有八个实例不太可能在整个游戏期间保持运行。玩家也可能想要同时参加多个不同的游戏。 (虽然这款游戏与《Draw Something》完全不同,但他们的多人游戏模式与我需要的类型类似)。
在排除了使用回合制 API 的可能性后,我一直在研究其他可能性,并遇到了 App Engine。不幸的是,我 99% 的开发经验都是与客户端编码有关,因此其中一些问题可能看起来很天真......
是否可以将 Google Play 游戏服务与 Google 集成 应用程序引擎?理想情况下,我希望将一切都与每个人联系在一起 玩家的 Google 帐户,因为我已经在使用 Google Play 游戏 成就和排行榜服务。
App Engine 是否适合允许多个实例 异步回合制游戏?
我可以使用部分多人游戏 API,例如大厅 系统还是都需要从头开始编写?
设置该系统需要花费多少学习曲线 后台系统?我需要什么资源?
对于上述问题的任何建议,我们将不胜感激。
最佳答案
正如前面的回答所指出的,实时 API 和回合制 API 之间存在差异 - 回合制 API 确实允许您异步玩游戏,而且 - 据我所知 - 您还可以运行多个游戏没有任何问题。
https://developers.google.com/games/services/android/turnbasedMultiplayer
该系统不适用于同时移动的回合制游戏,但根据您的描述,我认为它可以很好地满足您的目的。
关于您的问题,我自己花了一些时间寻找多人回合制游戏的解决方案,以下是我的观察:
一切皆有可能。但如果您的问题是 - Google Play 服务是否支持集成,那么答案是否定的。
它与您可能用来实现 Web 服务的大多数其他框架一样合适。尽管这确实取决于服务器端需要多少处理;请注意,请求可以运行多长时间等存在一些限制。
您需要自己动手。
如果您是一名 Java 程序员,您应该考虑使用基于 Java 的后端框架; Google App 引擎支持这一点。您还可以考虑在其他地方设置自己的虚拟服务器,因为至少现在是这样,使用 Google App 引擎并没有太多好处(至少在我看来)。您需要明确两个关键要素:您的游戏状态如何保存在服务器端,以及用户如何进行身份验证。后者尤其重要。
如果您的游戏结构适合 Google Play 服务回合制框架,我在寻求自己的解决方案之前肯定会三思而后行 - 至少目前如此。
关于java - 将 Google 回合制多人游戏与 Google App Engine 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360188/