Google App Engine是在线MMO的良好平台吗?


10

我正在研究基于Java创建超大型MMORPG游戏的一些想法,这是一个辅助/业余项目,可帮助我的学习过程

我已经玩过GAE,并建立了一个简单的Web应用程序,我正在考虑将其用作游戏平台

这是一个好主意吗?有没有使用这种平台的游戏?到目前为止,我看不到任何限制,除了Google可以“拥有”它而不是我自己

Answers:


3

取决于您需要多少延迟/速度。

每个http请求(到专用服务器的请求)都需要300-600毫秒。在看起来更像600-900毫秒甚至更长的应用程序引擎中(如果您有很多查询)。同时,与GAE的单个连接必须持续不到30秒,因此...

这意味着您将必须进行慢速轮询,这对于某些基于回合的游戏(而非实时游戏)可能已经足够了。

如果您想进行实时游戏,则需要离开HTTP并转到TCP或UDP(尤其是UDP)。

话虽这么说,如果慢延迟/非实时连接足以满足您的游戏需求,那么GAE的扩展规模非常便宜,并且可以解决很多问题(数据库大小不受限制,电子邮件数量众多不会造成垃圾邮件问题)等)


如果您想要实时,TCP并不是真正的选择。
o0'。

4
^^^普遍的神话
U62

*用于不同的实时值。
DFectuoso

1
如果您正确管理数据包,TCP可以很好地处理实时。如果可以将它们分组在一起,那么在几毫秒内将10个数据包发送到同一目的地毫无意义。
Stephen Belanger 2010年

@斯蒂芬:对。使用正确的技术,您可以实现速度和可靠性,剩下的唯一麻烦就是连接速度。
Moshe Revah,2011年

3

它并非完全是MMO,但我最近阅读了一篇有关将App Engine用作游戏服务器后端的文章:

http://gamesfromwithin.com/google-app-engine-as-back-end-for-iphone-apps

我曾将GAE用作我几个项目的后端,这些项目都不是MMO,但我当然将它视为一个强大的Web开发平台,可以轻松使用,并且相对便宜地进行实验和自举。

正如@DFectuoso指出的那样,对于实时MMO,使用任何Web服务器都会遇到一些问题,尤其是App Engine时。但是,回合制和/或社交MMO很有可能可以将App Engine用作唯一的后端。

最终,它确实取决于您的游戏架构。在主服务器是Web服务器(例如App Engine)的情况下,有一些策略可以接近实时或伪造实时:

  • 您可以进行对等实时通信,仅在关键时刻更新服务器。
  • 您可以尝试使用长轮询等策略进行实时通信,这又称为“竞争请求”,在这种情况下,您向Web服务器发出请求,而服务器永不“完成”响应,从而导致请求很长/ polling,但允许网络服务器在可用时不断推送新数据。(根据路线图,更深的彗星支持是App Engine中的一项即将推出的功能。)
  • 对于App Engine,您还可以使用XMPP / Jabber(开放的IM协议)与游戏服务器进行快速(几乎实时)通信。它可能不是构建完整的实时游戏的好地方,但是有许多有趣的聊天机器人是由App Engine的XMPP支持编写的。

这是Comet支持的问题跟踪器(因为我暂时还不能将链接嵌入到实际帖子中-显然需要更多信誉点):code.google.com/p/googleappengine/issues/detail?
WorldMaker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.