游戏架构P2P加入游戏中期

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

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

我正在读这篇文章:https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networking/

这一段讨论了游戏的p2p限制:

最后的限制是因为游戏通过仅发送改变状态的命令消息来同步的方式。为了使其工作,所有玩家必须从相同的初始状态开始。通常这意味着每个玩家必须在开始游戏之前加入大厅,尽管技术上可以支持延迟加入,但这并不常见,因为在现场游戏中难以捕获和传输完全确定的起点。

正如作者所说,当有p2p连接时,玩家应该在开始游戏之前加入大厅,而不是加入正在进行的游戏。他说这是因为在现场比赛中很难传递一个完全确定的起点。

有人可以告诉我为什么会这样吗?是因为传输的数据太多而且可能会产生一些延迟问题,还是存在其他问题?

unity3d networking game-engine p2p unreal-engine4
1个回答
1
投票

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

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

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

在P2P游戏模型的情况下,服务器是玩家的机器之一,关于网络的问题放大,因为与普通家庭相比,服务器通常具有更好的互联网连接。以上仍然有效。

在纯P2P模型的情况下,每台机器直接相互通信(我认为没有现代游戏实际上这样做),这成为在全网状分布式系统中保持一致性的一个非常具有挑战性的问题。

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