2010-02-23 37 views
1

我一直在寻找android开发一段时间,真的很想创建一个网络游戏。我也认为这对于熟悉应用引擎框架是一个很好的机会,但似乎更多的应用引擎应用是围绕浏览器服务构建的。我不希望这是一个基于浏览器的游戏(我想要实时聊天,更有活力的交互/移动/战斗)。我一直在研究AJAX/Java作为一种可能的解决方案,但是我很难想象如何将应用程序实际连接到服务器,因为我发现所有的tutroial似乎都是托管的web应用程序。 Android应用程序是否有任何资源透明地连接到App Engine服务?开发Android网络游戏,使用App Engine作为服务器是否可行

或者,也许有更好的服务类似于我应该研究的应用程序引擎。

谢谢! (如果我不清楚任何让我知道的事情)

+0

如何使用XMPP? – d4rr3ll 2010-02-24 18:36:45

+0

XMPP支持:http://code.google.com/appengine/docs/java/xmpp/ – mjn 2010-02-24 22:14:05

回答

3

AppEngine对提供Web应用程序完全有偏见:HTTP in,HTTP out。所以,只要您可以将游戏的通信层设计为可在HTTP(无状态,有限生活请求)中实现,则没有理由不起作用。

您的游戏不必在浏览器中运行,以使用基于HTTP的API与服务器通信。我怀疑Andriod和AppEngine之间是否存在任何特殊的“透明”通信库,因为AppEngine可能实现的Web请求式通信与用于与任何其他基于HTTP的API进行通信的相同技术无法区分在任何平台上运行。

+0

谢谢,我认为这可能是这种情况,并结合ajax,它实际上应该适合设计很好。 房间的移动会导致一个新的html get并建立到新位置的另一个AJAX连接(用于本地聊天本地操作),并且其他连接的客户端将会收到通知,并相应地进行更新。 我想我只是有点太新了,但我会试着串起一个示例应用程序,这可能会帮助我选择一个方向。 没有人知道任何使用http的好教程基于apis? – Hortinstein 2010-02-23 18:14:42

+1

请记住,您不能在App Engine上使用'comet'或'long polling' - 请求被限制为30秒,如果您在其中进行长时间轮询,您将很快耗尽处理程序。 – 2010-02-24 14:56:23

0

您可以使用Android SDK中的软件包org.apache.http.HttpConnect。*中的Http Component类。

+0

谢谢,生病了! – Hortinstein 2010-02-26 19:39:17

1

我目前正在开发一个应用程序,它将涉及基于浏览器的webapp以及连接到GAE服务的iPhone“安装的应用程序”(这是Google的术语)。我简单地GET/POST xml到一个基本的servlet,它工作正常。请记住,为了让客户端活跃起来,您将不得不广泛使用memcache,因为即使对数据存储库的次要调用往往需要很长时间,并且安装的应用程序中的“等待”对话框也会很快变老。我会尝试广泛使用memcache(而不是数据存储)来保存游戏状态数据,因为这些数据可能不需要“永久”保存,并且memcache比数据存储快得多。

另外我不认为有什么方法可以让客户知道游戏状态的变化,应用程序引擎不会“推”,所以所有的客户端都必须轮询更新。

+0

您还应该查看此博客文章: http://googleappengine.blogspot.com/2010/04/games-on-app-engine-interview-with-jay.html – tempy 2010-05-21 13:34:49