为Android创建多人游戏服务器的理想方法(具有非常基本图形的游戏)

时间:2012-05-29 12:43:55

标签: android sockets rest

我正在开发基于扑克牌的Android游戏(准确地说是Bridge),可以由四个玩家随时播放。并且将通过Web提供服务器,设备将连接到服务器,服务器将跟踪游戏进度。

我的游戏在图形方面非常基础,我可以在不使用任何游戏引擎的情况下获得用户界面。

虽然我应该为Android构建游戏(客户端),但我希望在未来的游戏端口中开发可以重新使用的服务器,即使它被移植到其他移动平台甚至桌面。

所以我想到服务器架构的第一个可能候选者是 RESTful Web服务,这样只要客户端的编程端支持HTTP方法,我就可以利用任何客户端的服务器。

但后来我才意识到,由于整个游戏会话中设备和服务器之间会有持久连接,所以可以使用这样的服务器,连接将在请求响应后终止(我不确定)如果是真的那么?)

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

还有其他任何建议或建议吗?

注意:我不熟悉Java中的Java或网络编程,,但我是Android开发和创建RESTful服务的新手

2 个答案:

答案 0 :(得分:3)

在为Android编写时,不要计划持久连接。连接经常断开(并且通常有充分的理由,例如从GSM切换到wifi)。 HTTP是一个很好的,受欢迎且经过验证的选择(您可以从中获得较低级别的堆栈,并可以专注于处理有效负载)。

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

答案 1 :(得分:1)

我认为你的基于HTTP的计划适用于这种情况,我认为连接持久性的问题与基于缓慢转向的游戏(例如桥接)无关。

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

我认为你让它成为客户端独立的想法是正确和重要的 - 从这个角度来看,HTTP的想法显然要好得多,因为它将 更容易编写客户端应用程序其他语言(你可能会想要的 - 用于网络客户端的Javascript和用于iOS应用程序的Objective-C)。

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