30

我已经了解了android编程的基础知识,尤其是游戏方面的。现在我想尝试多人游戏。但我没有任何关于多人游戏的背景。所以我想有一些问题:

  1. 多人编程的基础是什么?
  2. 多人游戏的通讯方式如何?应该蓝牙吗?或者也许是客户端-服务器?或者点对点?如果我要制作的游戏需要 2 个彼此靠近的 android 手机?
  3. 为了理解这个多人游戏,我应该知道什么?
  4. 有没有关于如何制作多人游戏的基本教程?
  5. 安卓手机可以充当服务器吗?

我还不打算制作任何复杂的游戏。可能只是多人井字游戏对我来说没问题。最重要的是我了解多人游戏编程的基础。:)

4

3 回答 3

20

多人游戏有两种方法:

  1. 同一设备上的多人游戏:为您的游戏制定多人游戏逻辑,并允许同一屏幕上的两个玩家使用多点触控控制器。它可以是基于回合的或同时的。对于这个游戏,你没有任何依赖,但玩家应该彼此靠近。

  2. 蓝牙游戏:这是多人游戏的下一个阶段。有点棘手,但可以做到。控制器需要在彼此靠近的两个设备之间获取和同步游戏。对蓝牙 android API 的简短回顾,您就可以开始了。

  3. 分数比较:这不是真正的多人游戏,但您可以上传用户的分数并与其他用户进行比较。您可以自己使用服务器端来存储每个用户的所有分数,也可以使用允许进行分数比较的现有服务,如 Skiller SDK 或 scorelop SDK。

  4. 真正的多人游戏:这是我认为最好的一个。每个人都可以实时与其他人一起玩(只要延迟允许:D)。如果您想自己做所有事情,这非常困难。在这里,您将需要强大的服务器端和大量的服务器逻辑。但同样,您可以使用为您处理服务器端的现有服务。我选择了 Skiller 多人游戏 SDK。良好的支持和货币化功能。

无论您选择哪种多人游戏实现方式,请先将您的游戏提供给您的朋友,以便他们审查并告诉您可以改进的地方。对你有很大帮助!!!

祝你好运。

于 2011-07-05T13:45:54.823 回答
17

我会阅读这一系列文章:

http://gafferongames.com/networking-for-game-programmers/

它主要使用 C/C++,但您可以将其翻译成 Java。了解 Java 中的 UDP 套接字,例如:

http://download.oracle.com/javase/tutorial/networking/datagrams/index.html

这应该足以让你继续前进。我可能会进行客户端服务器设置。你可以做 P2P,但据我所知,这更难。

于 2011-04-16T15:44:35.427 回答
2

查找适用于 android 的 API 无疑会有所帮助。客户端服务器将是最容易设置的。或者,我在我正在制作的游戏中正在做的事情是拥有一个 Web 服务器,并且您的应用程序访问 Web 服务器以获取更新等等。这对于我正在制作的回合制游戏非常有效。可能需要更多的资金,即。托管您自己的 Web 服务器,但由于 android 支持 SQLlite,所以您很高兴。:)

于 2011-12-24T08:21:58.990 回答