为Android开发在线纸牌游戏

时间:2011-03-04 07:31:27

标签: android google-app-engine tcp udp playing-cards

我目前正在开发一款针对Android的多玩家纸牌游戏,其中谷歌App Engine作为我的后端。 我想知道我应该使用哪个协议来与服务器,UDP或TCP通信Android客户端? 我知道他们之间的“干”差异,但我不确定在这种情况下什么是适合我的。 游戏将包括几个(10+)个房间,每个房间可以容纳4-6个玩家。

3 个答案:

答案 0 :(得分:2)

您应该确保Google App Engine支持您想要使用的所有内容。有几种方法可以解决这个问题,有些选项在GAE上没有。你提到你想要几个不同的游戏室,我想你希望它是实时的。 Google App Engine对线程和套接字服务器等内容有一些限制。这些限制可能使这种类型的应用程序难以有效地进行(不使用“轮询”)。

有很多方法可以解决这个问题,例如使用Google的渠道API:http://code.google.com/appengine/docs/java/channel/

API看起来相当不错,但它将您的托管选项限制为仅限Google App Engine,我认为这并不是那么糟糕,您可以随时重写应用程序的这一部分。

答案 1 :(得分:0)

如果您希望它在大多数情况下都能正常工作,那么最好使用HTTP和JSON。您更有可能确定您的用户流量将通过提供商代理等。

我会远距离远离UDP。无法保证UDP数据包实际传送到客户端或服务器,您甚至不知道它们丢失了。 UDP的唯一合理案例是,如果您正在开发一个每个人都在同一网络上的游戏。但是你可能只是将TCP一起刮掉,然后再使用蓝牙。

答案 2 :(得分:0)

使用Google App Engine,您只能与HTTP / HTTPS通信,不允许UDP / TCP套接字通信。