【问题标题】:Ideal approach to create multi-player game server for Android (a game with very basic graphics)为 Android 创建多人游戏服务器的理想方法(具有非常基本图形的游戏)
【发布时间】:2012-05-29 12:43:55
【问题描述】:

我正在开发一款基于 Playing Cards(确切地说是Bridge)的 Android 游戏,该游戏可以同时由 四个 玩家玩。并且将通过 Web 提供一个服务器,设备将连接到该服务器,服务器将跟踪游戏进度。

我的游戏在图形方面非常基础,无需使用任何游戏引擎即可获得 UI。

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

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

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

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

还有其他建议或建议吗?

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

【问题讨论】:

    标签: android sockets rest


    【解决方案1】:

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

    顺便说一句:在这种情况下说“RESTful Web 服务”是没有意义的——你需要的是一个提供数据和接受命令的 HTTP 服务器,而不是一个将你的游戏逻辑构建为一组有状态资源的思维框架。

    【讨论】:

      【解决方案2】:

      我认为您的基于 HTTP 的计划适合这种情况,我认为连接持久性的问题与桥牌等基于慢速回合的游戏无关。

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

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

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

      【讨论】:

      • 好的,我应该继续 RESTful 方式吗?我还没有开始深入研究在 Java 中创建 RESTful 服务,因为我想在开始工作之前先确定情况,然后意识到 RESTful 不是这里的解决方案。
      • 是的 - 我认为正如 fdreger 在下面所说的那样,Restful 的做事方式与其说是一种特定的技术,不如说是一种策略。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多