2010-10-25 110 views
2

我对多人游戏相当陌生。我为自己的乐趣做了一些,但没有深刻的。xmpp的点对点多人游戏

无论如何,我想制作一款非常跨平台的游戏。客户端将在我发布游戏的设备(最有可能的计算机(通过闪存),iPhone和Android)上与他们的Facebook帐户连接。我是一个有限的预算(实际上更像是没有预算)的独奏开发者。所以,我想通过点对点连接来制作游戏。我想避免使用客户端/服务器设置,因为维护服务器的成本很高。我遇到的问题是没有办法通过互联网连接同行,而且游戏并不意味着要通过本地wifi进行播放。

所以,我有一个想法。我可以使用Facebook内置的xmpp聊天功能通过互联网发送游戏的多人游戏通信吗?我之前有过用于多人游戏的xmpp头像。有没有人有任何其他想法?我知道xmpp可以通过点对点连接,但是可以通过互联网以某种方式完成。我不希望用户不得不乱用路由器设置来玩。

感谢您的帮助!

+0

这取决于您是否希望添加多玩家聊天,或者您是否尝试使用协议来同步游戏数据? – mikerobi 2010-10-25 19:40:11

+0

我很害怕我没有澄清。我正在使用它来同步数据。 – Lance 2010-10-25 19:41:45

回答

0

P2P系统的主要问题是NAT和防火墙。防火墙可以在本地打开,NAT不能在99%的情况下。在IPv6世界中不会有NAT,所以P2P将免费。

现在你想使用Facebook的XMPP API的P2P多人游戏。那么......由于上述原因,Facebook的XMPP实际上是客户端/服务器。 Facebook的所有API都是将传输层隐藏到应用程序中,这意味着您可以在实际通过Facebook服务器传输时将消息发送给“其他用户”。 Skype是P2P +服务器环境的另一个例子。如果两个用户站在NAT后面,则会自动使用代理服务器。

这主要是与FB的XMPP是相同的,所以你可以用走的,除非你的Facebook用户会看到很多奇怪的消息在他们的聊天窗口:)

+0

Grr。我以前很怕那个。有没有办法在消息进入聊天窗口之前获取消息。可能不会。你有关于如何通过互联网进行点对点通信的任何想法。我想使用Facebook的聊天服务器,这样它就可以使用他们的带宽:P我读了一些地方,你可以使用服务器来连接你的用户,然后这个游戏可以是点对点的。当然,我不知道该怎么做。感谢您的快速回答! – Lance 2010-10-25 20:01:19

+0

对不起,我也不知道。你可能会尝试自己尝试,mabye聊天消息有一个特殊的格式,它被过滤。 XMPP是一个协议,并不仅仅是聊天。我不是那方面的专家。我发现你的NAT问题并从这个角度回答你。但我不是Facebook API的专家 – 2010-10-25 20:03:39

+0

好的,谢谢。我只是意识到我有另一个问题......游戏需要能够一次连接两个以上的人。 – Lance 2010-10-25 20:14:52

0

我认为你不能建立一个多玩家游戏只需使用facebook jabber服务器。您需要在自己的服务器上安装定制的jabber组件,以便在游戏用户之间传输的xmpp数据包上执行游戏业务逻辑。

这将(可能)涉及在您的末端编写定制Jabber组件协议XEP-0114Bosh Connection Manager组件。如果您正在寻找使用PHP开发应用程序,您可以看看Jaxl库(PHP中的XMPP组件和客户端库)

+0

好的,谢谢。我想我已经决定放弃使用xmpp来同步游戏的想法(至少对于对等)。一厢情愿的想法,但我不认为我可以把它关闭。 – Lance 2010-10-26 23:05:28

+0

我想我会尝试构建一个使用非常少量带宽的简单匹配服务器(至少与完整的客户端/服务器设置相比)。其中一个用户将成为超级对等或本质上的服务器。我将看看NAT的突破性进展,看看我能否引入同行并让他们接管后续内容(无需使用全功能专用服务器)。 – Lance 2010-10-26 23:09:00