Android两款游戏将在互联网上播放

and*_*Guy 13 android android-c2dm

我在android中开发了一个简单的双人棋牌游戏,可以使用蓝牙进行游戏.我希望通过互联网播放来扩展它.每当玩家进行移动时,移动应通过互联网传输给其他玩家.

如何使这成为可能?

我听说过C2DM机制.它是否适用于我描述的场景并且可靠吗?

谢谢:)

Eur*_*nes 9

是的,C2DM非常适合这种类型的游戏.这就是我用于我自己的游戏(http://www.chesspresso.net),它是android的通信象棋客户端.

使用C2DM时需要考虑的事项:

  • 您不会将信息发送到设备,而是通知设备已进行了移动.您不使用C2DM来传输数据,而是使用它来通知某些内容已发生变化.

  • 它适用于2.2+ Android,这是大多数设备.但如果您想支持旧设备,则必须考虑替代方案.我正在使用旧设备进行轮询.

  • 您必须请求开发人员访问,然后一旦您的应用程序准备就绪,您必须请求生产状态.如果您不这样做,一旦发布,您将很快达到开发者状态配额!他们对生产配额非常慷慨,但你必须解释你使用它的原因,也可能需要几周的时间才能被接受!

  • 您的用户必须拥有授权的Google帐户,否则其他C2DM将无法使用.大多数用户将拥有与其设备关联的帐户,但有些用户不会这样,这意味着您可能需要验证是否存在帐户以通知用户.

  • 它的可靠性,但每一次设备都必须等待消息.有时几分钟.通常是它的瞬间.

希望有所帮助!

更新:C2DM现已被弃用,取而代之的是谷歌的GCM.

此外,我强烈建议您查看其他选项,因为将自己绑定到特定于Google的API意味着您将无法支持外部市场.对于替代方案,我目前正在评估亚马逊SNS,我也将关注Urban Airship.可能还有其他我尚未考虑评估的替代方案.

更新:非谷歌推送通知的评估更新:亚马逊SNS不是这个任务的项目,绝大多数应用程序的城市飞艇太贵了.不幸的是,所有其他选择都非常昂贵,特别是如果您的应用程序(如我的)严重依赖推送.


Dal*_*osa 6

这样做的一个好方法是在对等体之间使用简单的直接TCP连接.

如果您不熟悉Java上的套接字编程,请尝试以下方法:

所有关于套接字

  • 如果有一台设备在NAT后面,请使用Wat?IP地址不会公开显示?如何处理? (2认同)

Ani*_*ati 5

另一种选择是使用某种IM作为app的通信媒介.例如.使用 Asmack连接到XMPP我喜欢GTalk.提示用户在那里为您的游戏创建帐户.并使用它通过IM发送和接收命令.这样您就不需要设置中介服务器了.

如果用户知道他正在玩谁,这是有效的.要收集用户数据并让他们搜索可用的播放器,您仍需要设置服务器.IRC聊天室也可以选择避免这种情况.

  • GTalk只是一个例子.您也可以使用任何IM或IRC.