首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在线P2P游戏:在没有匹配服务器的PC机之间建立连接

在线P2P游戏:在没有匹配服务器的PC机之间建立连接
EN

Stack Overflow用户
提问于 2013-11-17 08:36:39
回答 1查看 1.4K关注 0票数 1

我试图制作一个简单的多人(P2P)棋盘游戏,通过互联网连接玩家。到目前为止,我研究过的唯一网络应用程序只能通过HTTP与永久web服务器通信。

经过一些初步的阅读,我了解到现在大多数设备都受到NAT的影响,这使得P2P连接很难建立。我读过两种绕过NAT障碍的方法:

  1. 设置一个中央服务器以方便NAT穿孔机。
  2. 使用因特网网关设备(从UPnP)进行自动端口转发.

我还没有深入研究细节,但似乎NAT穿插要求我建立一个永久的婚介服务器(我怀疑这是在我的预算范围内),并管理它(我没有经验)。UPnP似乎是该走的路。

你说我的评估是准确的吗?还有其他选择吗?在设计/实现我的游戏之前,还有什么我应该考虑的吗?

(我计划用Qt编写我的游戏,以支持多种平台。有人使用http://www.mayaposch.com/uds.php库制作了一个MiniUPnPc,所以我正在考虑研究这个实现)

EN

回答 1

Stack Overflow用户

发布于 2013-12-18 16:45:29

为了避免这一问题,您可以做的一件事就是要求最终用户制作应用服务器的本地版本,并转发端口本身。只要给他们一个选项,要么“创建游戏”,要么“加入游戏”,如果他们创建一个游戏,让他们指定他们想要运行它的端口。那么他们的责任就是确保港口是开放的。

尽管如此,我最近使用Unity3d建立了一个婚介风格的网络游戏,我可以评论如何在这个框架内建立一个匹配服务器。

这个过程有两个部分,MasterServer和调解人,其中MasterServer只保存所有与游戏相关的信息,调解人处理到服务器的传入连接。

因为MasterServer/调解人只处理连接信息,所以它们是相当轻的进程,如果您不介意随时离开您的计算机,您就可以在您的主计算机上运行它们。

一旦你启动并运行,它就会自我调节。无论如何,它并不比运行标准的web服务器更困难。

我还没有探索过使用Internet设备来处理网络问题,但是看看wiki for it (协议),看起来自动处理NAT穿孔是一件神奇的事情。我对这个方法几乎没有做过什么研究,但是看起来它可能是必须安装在客户端的东西,我觉得这不是你想要的。如果你想办法使它按照你想要的方式运作,请告诉我,我很想看到它付诸行动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20028785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档