Unity3d 游戏架构P2P加入游戏中期

Unity3d 游戏架构P2P加入游戏中期,unity3d,networking,game-engine,p2p,unreal-engine4,Unity3d,Networking,Game Engine,P2p,Unreal Engine4,我正在写一篇关于不同游戏架构的论文,我还没有找到这个问题的答案。我在谷歌上搜索了几个小时,但没有找到答案 我在读这篇文章: 这一段谈到了p2p对游戏的限制: 最后一个限制是因为游戏只发送改变状态的命令消息来进行同步。为了使这项工作,所有玩家都必须从相同的初始状态开始。一般来说,这意味着每个玩家在开始游戏之前都必须加入到大厅中,虽然在技术上支持后期连接是不可能的,但这是不常见的,因为在实况游戏的中间捕获和传输一个完全确定的起始点是困难的。 正如作者所说,当有p2p连接时,玩家应该在开始游戏之前加入

我正在写一篇关于不同游戏架构的论文,我还没有找到这个问题的答案。我在谷歌上搜索了几个小时,但没有找到答案

我在读这篇文章:

这一段谈到了p2p对游戏的限制:

最后一个限制是因为游戏只发送改变状态的命令消息来进行同步。为了使这项工作,所有玩家都必须从相同的初始状态开始。一般来说,这意味着每个玩家在开始游戏之前都必须加入到大厅中,虽然在技术上支持后期连接是不可能的,但这是不常见的,因为在实况游戏的中间捕获和传输一个完全确定的起始点是困难的。 正如作者所说,当有p2p连接时,玩家应该在开始游戏之前加入一个大厅,而不是加入正在进行的游戏。 他说,这是因为在实况游戏的中间很难传递一个完全确定的起点。
有人能告诉我为什么吗?是因为要传输的数据太多,可能会造成一些延迟问题,还是存在其他问题

要传输的数据量不是最大的问题,但肯定会产生影响

为了让事情变得简单一点,我将给你一个在客户机/服务器模式下应该做什么的示例,即玩家连接到一个中央服务器,该服务器运行游戏引擎并将游戏状态发送到玩家的计算机。服务器的任务是保持客户端对游戏的视图尽可能一致,即玩家健康/位置、地图中对象的位置等

让我们假设你有7名球员参加比赛,第8名球员希望加入正在进行的比赛。服务器需要确保新玩家及时接收游戏的当前状态,这需要服务器上的处理/网络资源。从编程的角度来看,这不仅是一个挑战,而且会导致服务器上的资源使用激增,这在理论上会影响其他进程以及当前匹配本身

在P2P游戏模型中,服务器是玩家的一台机器,有关网络的问题会扩大,因为通常服务器与普通家庭相比具有更好的互联网连接。上述情况仍然存在

在纯P2P模型中,每台机器都直接相互通信(我认为没有现代游戏真正做到这一点),这就成为在完全网状的分布式系统中保持一致性的一个非常具有挑战性的问题