一个完全/半自主的点对点多人游戏网络是否可行?

3
我一直在思考如何创建一个P2P系统(类似于BitTorrent用于文件),用于玩多人游戏。这个想法是从多人游戏架构中移除传统服务器。我知道某种类型的服务器可能需要用于启动通信并发送世界更新等,但我更感兴趣的是如何减少服务器的负载和带宽压力。
顺便说一下,这适用于任何大小的游戏,从两个玩家的跳棋游戏到30多个玩家的FPS游戏。
我疯了吗?
5个回答

9
大问题不在于带宽、延迟或者分发游戏状态的变化,而在于信任。
如果我告诉你我杀死了一个怪物,你如何验证我确实这样做了?你如何验证我确实是45级?你如何验证我没有在世界各地瞬移?请记住,你不能检查每一个小细节的服务器:这就是我们试图避免的!
你需要玩家观察玩家,即使这样,他们也可能合作作弊。我真的怀疑是否会有人很快设计出可信赖的P2P MMO。

2
+1 引用 Ralph Koster 的话说,客户端就在敌人手中。 - David Locke
使用区块链来验证所有节点的所有交易怎么样?太慢了吗? - Futuza
@DarthFutuza 这将有效地允许每个玩家了解整个世界的全部状态。我想这解决了问题的一个方面,但它也创造了几个问题。每个人都会有一个地图作弊器,所有的行动都需要几秒钟或几分钟才能完成,矿工可以通过不在区块中包含他们的行动来歧视玩家。 - Craig Gidney

1

在你的问题中有很多需要考虑的事情:

1)分布式主节点 - 谁开始游戏?我在哪里可以找到第一个节点?如果每个人都决定同时关闭他们的P2P客户端会怎样?世界会毁灭吗?

2)分布式规则 - 谁能确认玩家102235中的77号在x,y,z处杀死了一个怪物?我看到了在没有“指挥官”的情况下出现了大量的黑客攻击/作弊问题...

3)延迟 - 客户端何时接收到所有数据?如果互联网断开连接怎么办?或者在局域网游戏中,如果硬盘损坏了,这会让其他人的游戏疯狂吗?

我确实认为P2P的想法很有趣,但是在所有竞争中,我相信我们需要一个“裁判”来处理规则,因为当你与“匿名人士”竞争时,很多人认为“作弊没关系”。

我认为某种形式的网格计算可能是解决问题的方法,但是如果网格中的某些部分掉落或渲染世界和发送结果太慢...那么我们整个游戏都会“滞后”...对于每个人来说都是可怕的游戏...这已经在许多FPS游戏中看到了,有一个主服务器。如果网络协议处理滞后不太好,那么打跑步的人就更难了,或者他们突然出现在你面前向你开枪。

一种昂贵的解决方案可能是拥有“子服务器”(代理游戏服务器),其中您可以将一些数据更接近玩家。我相信这需要您在全球范围内拥有许多服务器农场(就像暴雪公司在WOW中所做的那样),否则您将不得不发明某种智能的“P2P主机”,当带宽足够大并且足够接近时,它将升级自己为“子服务器”(始终从其视角检查滞后...)...现在假设这是可能的...如果该子服务器与全球主游戏循环之间的线路再次中断呢?

哈哈...这可能会继续下去...听起来越来越像互联网的一般问题 :-)

愉快的编码...!


1

我一直在思考同样的问题。我有一个长期的偏见,认为分布式系统应该是“分布式”的,不需要中央控制器。 MMO或类似游戏的问题在于每个玩家都应该能够看到相同的“世界”。你最终会遇到类似于爱因斯坦相对论和“同时性”的问题 - 你离得越远,你对世界的看法就越不同。

总的来说,解决方案是你必须能够将信息传播到你周围的其他客户端 - 在游戏空间内,而不一定是物理空间 - 快速到足以使所有本地玩家看到更新的同时发生。

我怀疑答案是为每个玩家拥有一个“服务器”或世界模型,而不是将玩家表示为世界服务器中的向量。


0

我认为这在理论上可能是可行的,但还有很长的路要走。

正如其他帖子中所指出的那样,通过仅保证向附近的其他玩家更新来保持延迟低是可行的。这在分布式游戏中已经做了很多年。

通过让几个节点负责每个数据片段,可以将数据丢失保持在可容忍的水平。

关于信任问题,可以有一个协议,其中一个玩家可以“挑战”另一个玩家以揭示作弊。即挑战者会复制其他玩家计算的某些部分,并要求比较结果。已经有加密协议可以做到这种事情,但我不知道细节或它们是否在实践中可行。

我认为真正的问题在于没有太多理由开发这样的系统。成本高,增加了复杂性,但游戏体验(产品)并没有显着改善。为了可行,节省资金的活动必须节省比其成本更多的资金。


0

我肯定不是专家,但这听起来对我有点疯狂。根据我的经验,由于带宽和性能的原因,您需要专用的游戏服务器。使用P2P,您将失去这两个东西。在我看来,P2P对于一些事情非常好。其中包括分发文件和研究。但是,这两件事不需要实时数据。如果您拥有某种大规模多人游戏世界,则可以使用P2P来分发游戏文件,甚至可能卸载数量计算。

我会说有可能性,但其中的可能性似乎有限,尽管潜力巨大。


@SkippyFire:许多即时战略游戏,如星际争霸和帝国时代,都是点对点的,正是因为这样它们比通过服务器更具有更好的性能!在性能方面,我指的是延迟(这些游戏的带宽非常小)。 - yairchu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接