与xmpp的点对点多人游戏

时间:2010-10-25 19:32:51

标签: facebook xmpp p2p multiplayer

我对多人游戏很新。我为自己的乐趣做了一些,但没有什么深刻的。

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

所以,我有个主意。我可以使用facebook内置的xmpp聊天通过互联网发送游戏的多人通信吗?我以前用过多人游戏的xmpp负责人。有没有人有任何其他想法?我知道xmpp可以点对点连接,但可以通过互联网以某种方式完成。我不希望用户不得不使用路由器设置。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

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

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

这与FB的XMPP基本相同,所以你可以使用它,除非你的Facebook用户会在聊天窗口看到很多奇怪的消息:)

答案 1 :(得分:0)

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

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

相关问题