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

我正在寻找创建一个基于Java的小型MMORPG游戏的一些想法,这是一个侧面/爱好项目,以帮助我的学习过程

我已经和GAE玩过一个游戏,并且已经创建了一个简单的networking应用程序,我正在考虑使用它作为我的游戏平台

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

sorting,取决于你需要多less延迟/速度。

每个http请求(到一个专用的服务器)需要300-600毫秒之间的任何地方。 在看起来更像600-900毫秒甚至更多(如果你有很多查询)的应用程序引擎。 同时,与GAE的单一连接必须持续不到30秒,所以…

所有这一切意味着你将不得不做慢轮询,这对于一些回合制的,而不是实时的游戏来说可能是足够好的。

如果你想做一个实时的游戏,你需要离开HTTP并转到TCP或UDP(特别是UDP)。

话虽如此,如果一个缓慢的延迟/非实时连接对于你的游戏来说足够好的话,GAE的价格便宜得多,并且解决了很多问题(对数据库的大小没有限制,没有大量电子邮件的垃圾邮件问题等)

这不完全是一个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作为唯一的后端。

最终它取决于你的游戏架构。 有一些策略可以做到接近实时或在主服务器是App Engine等Web服务器的情况下实时伪造:

  • 你可以做点对点的实时通信,只在关键时刻更新服务器。
  • 你可以尝试一些实时的通信策略,比如长轮询(最近也被称为“彗星请求”),在这个请求中,你向web服务器发出请求,而服务器永远不会“结束”导致请求很长的响应/轮询,但允许Web服务器在新数据可用时不断推送新数据。 (根据路线图,更深的彗星支持是App Engine中的一个即将发布的function。)
  • 在App Engine的情况下,您也可以使用XMPP / Jabber(一种开放的IM协议)与您的游戏服务器进行快速(几乎实时)的通信。 这可能不是一个完美的实时游戏的好地方,但是有很多有趣的聊天机器人是用App Engine的XMPP支持编写的。