P2P多人游戏与客户端服务器的局限性


12

我正在阅读多人游戏架构。

到目前为止,我发现的大多数文章都是关于客户端-服务器模型的。

我想知道使用p2p架构的局限性是什么?可以使用哪些“类”游戏(或更常见的游戏)来实现?不是吗 总体而言,它与客户端-服务器模型的主要区别和局限性是什么?



有关真正的P2P游戏的示例,您可以看一下Gunz:The Duel,因此在多人游戏和黑客攻击中都存在巨大问题。
Fhyve

Answers:


11

这是我的两分钱:

P2P

  • 优点:
    • 无需中央服务器:这使它更便宜,并且对于低成本的独立游戏来说更可行。
    • 很好地扩展(直到普通客户端无法处理带宽的某个点)。
    • 非常适合数据分发:适合动态同步用户创建的内容(例如torrent)的游戏。
    • 更稳定:服务器永远不会出现问题,没有人可以玩(取决于实现)。
  • 缺点:
    • 难以实现:比服务器客户端要创建可靠的P2P架构困难得多。
    • 在这样的系统中很难防止作弊,除非您指定了一个权威对等体(这将阻碍从P2P进行良好扩展的任何好处)。
    • 安全性很难实现。
    • 客户的互联网连接也会对其他人产生影响。
    • 延迟通常会大得多(例如,当与来自局域网的多个人一起加入互联网游戏时,延迟会更好)。
    • 可能需要端口转发:Internet上的P2P需要端口转发,但并不是每个人在技术上都足够这样做。此外,ISP可能会阻止端口转发,并增加了进入障碍。

服务器客户端

  • 优点:
    • 易于实现:变得非常简单。
    • 如果实施得当,可以很好地扩展(如果工作可以分布在多个服务器上)。
    • 可以轻松避免作弊(与P2P相比)。
    • 较低的延迟:如果服务器连接牢固,则延迟可能会非常低。
    • 玩家的互联网连接永远不会影响他人的游戏。
  • 缺点:
    • 运行服务器需要花费金钱:绝对不适合免费游戏(除非您让玩家设置专用服务器,但这可能是安全问题)。
    • 如果服务器有问题,每个人都可以。

我认为P2P是一个不错的选择,因为普通的Internet连接越来越好,将来P2P延迟可能根本不是问题。关于P2P的很多事情也取决于特定的实现。

还有一些将P2P与服务器客户端结合在一起的体系结构。


P2P骗局:对接会,除非是LAN游戏,否则您不知道如何找到自己的同伴。CS:较低的延迟并不是当一个玩家(例如德国)和另一个玩家在澳大利亚时。6年后仍然是一个问题。CS:确实花了你很多钱。服务器变得相当便宜。另外,您可以使用一些网络代理将其托管在自己的PC上,以开始游戏。
badunius

2

对等游戏的最大风险是,如果没有以中立服务器形式的中央授权,就无法防止作弊。每个客户都可以根据需要解释游戏的结果。有些游戏将客户之一指定为主持人,让他担任裁判,但是当该客户作弊时,他们会决定整个游戏的结果。

对于要求低延迟和高带宽的游戏(例如需要玩家快速反应的任何游戏),您还会遇到一个问题,即主机仅使用消费者级别的Internet连接,而不是位于具有高性能主干的数据中心中连接。这意味着用户体验会受到影响。在更具战略导向的“较慢”游戏中,这并不是什么大问题。


使用共识模型,作弊不再是客户端-服务器模型中的问题。
Jeroen

1

实现对等多人游戏并不容易,目前还不适用。

您遇到的问题是,所有对等方都不知道所有其他对等方,因此与客户端服务器模型相比,每条消息都有多个跃点,这导致更高的延迟。请参见文件了解更多详细信息。

基于回合的游戏可以很容易地使用这种协议,因为它们并不太依赖延迟。同样,他们通常在一个会话中只有几个主机,因此一个主机可以将所有消息广播给所有其他播放器。

其他使用点对点的游戏只是动态选择对等之一来托管游戏(即CoD MW2),如果主机断开连接,则会导致诸如主机迁移之类的问题。


3
您是什么意思“目前不适用”?有很多使用P2P进行联网的游戏。同样,“对等方都不认识其他所有对等方”的措辞是错误的。虽然实际上需要支持中继以提高鲁棒性,但完全有可能拥有一个完美的人对人网络拓扑,尤其是在对等点数量较少或没有NAT路由器干扰的LAN中。
Tapio

@Tapio当然可以为游戏建立一个p2p网络,但是在延迟,用户数量或使用它的环境方面将受到限制。因此,大多数游戏都不使用p2p方法。
Horstinator 2013年

@Horstinator我知道一个使用P2P进行FPS游戏的游戏,它牢固地支持50-100个玩家,而没有任何延迟问题。(对于任何关心的人,它都称为
火柴

@akaltar它是开源的吗?我想看看他们是如何做到的。
Horstinator

@Horstinator太糟糕了,但是据我所知不是。您可以在论坛上询问创建者(这是一个很小的项目,所以应该有人回应)。
akaltar 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.