2012-05-29 31 views
1

我正在玩基于扑克牌的Android游戏(准确地说是Bridge),可以玩四个球员在时间。并且会有一个可通过Web访问的服务器,设备将连接到该服务器,并且服务器将跟踪游戏进度。为Android创建多人游戏服务器的理想方法(一款非常基本的图形游戏)

我的游戏非常基础,当涉及到图形时,我可以在不使用任何游戏引擎的情况下获得UI。虽然我应该为Android开发游戏(客户端),但我想在未来的游戏端口中开发服务器,它可以是RE-USED,即使它被移植到其他移动平台或甚至桌面。

因此,我认为第一个可能的候选人的服务器体系结构具有RESTful Web服务,这样我可以与任何客户端,只要客户端的编程到底支持HTTP方法充分利用服务器。

但后来我意识到,因为在整个游戏过程中设备和服务器之间会存在持续连接,所以拥有这样一台服务器会好起来,在请求被响应后连接将终止(我不是确定如果是真的)?

或者我应该使用DatagramSocketDatagramPacket的Java方式来构建服务器吗? (将确保服务器的可重用性?)

任何其他意见或建议?

注:我不是新的Java或Java中,网络编程,但我是新既Android的发展和创建RESTful服务。

回答

1

我认为您的基于HTTP的计划适合这种情况,我不认为持续连接的问题与缓慢基于游戏的游戏(如桥接)有关。

编辑:正如tdreger所建议的,几乎所有的Android文档都建议您计划通过不同的渠道进行例行连接失败和重建,因为html连接似乎是最具弹性的解决方案。

我想请你把它独立客户端的想法是正确的和重要的 - 在这种光线的HTTP想法显然要好得多,因为它会容易编写其他语言的客户端应用程序(你可能会想要 - 用于Web客户端的Javascript和用于iOS应用程序的Objective-C)。

我也认为Android开发会更容易,因为Android和appache对这些类似HTTP的连接有强大的支持。

+0

好的,我应该继续RESTful的方式?我还没有开始深入研究如何在Java中创建RESTful服务,因为我认为在开始工作之前首先确定这种情况,之后才意识到RESTful不是这里的解决方案。 – Kushal

+1

是的 - 我认为以适当的方式作为fdreger的Restful方式表示,宁静以下是比特定技术更适合的策略。 – Elemental

3

在为Android编写代码时,不要规划持久连接。连接断开很频繁(并且通常有很好的理由,比如从GSM切换到wifi)。 HTTP是一个伟大的,受欢迎的并且经过验证的选择(你可以从你的方式中获得一些较低级别的堆栈,并且可以专注于处理有效负载)。

BTW:在这个上下文中说“RESTful web服务”毫无意义 - 你需要的是一个提供数据和接受命令的HTTP服务器,而不是一个将你的游戏逻辑组织为一组有状态资源的心智框架。