带有XMPP的对等多人游戏

问题描述 投票:1回答:2

我是多人游戏的新手。 我为自己的乐趣取了一些东西,但没有什么意义深远。

无论如何,我想制作一款非常跨平台的游戏。 在我为之发行游戏的设备(最有可能的计算机(通过Flash),iPhone和android)上,客户端将与他们的facebook帐户建立连接。 我是一个预算有限的单人开发人员(实际上更像是没有预算)。 因此,我想使游戏具有点对点连接。 由于要维护服务器,因此我想避免使用客户端/服务器设置。 我遇到的问题是无法通过Internet连接对等节点,并且该游戏不适合在本地wifi上玩。

所以,我有一个主意。 我可以使用Facebook内置的xmpp聊天功能通过互联网发送游戏的多人通信吗? 我以前有xmpp的负责人用于多人游戏。 还有其他想法吗? 我知道xmpp可以点对点连接,但是可以通过Internet完成。 我不想让用户不得不玩路由器设置。

谢谢你的帮助!

facebook xmpp p2p multiplayer
2个回答
0
投票

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

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

这与FB的XMPP大致相同,因此可以使用它,除非您的Facebook用户在其聊天窗口中看到很多奇怪的消息:)


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.