了解Edgegap的工作原理

了解Edgegap的工作原理

P2P 网络,伴随隐藏成本 programmed 的免费解决方案:黑客与作弊者

已发布

已发布

已发布

最后更新时间

最后更新时间

最后更新时间

关键洞察

关键洞察

关键洞察

简短回答:点对点(P2P)模式可以节省服务器成本,但它将整场比赛的控制权交给了其中一名玩家。该主机玩家可以作弊,而中继服务也无法改变这一状况。将控制权转移到为您的游戏量身定制的专用服务器上,可以杜绝主机端作弊,但对于透视、自瞄等客户端作弊,仍需要反作弊系统。

  • 主机是攻击的切入点:在大多数点对点游戏中,某一个玩家的设备掌控着整场比赛,该玩家可以编辑游戏状态、使用网络延迟开关(lag-switch)或报告虚假结果。

  • 游戏规则发送给每个玩家:用于验证比赛的逻辑存在于游戏构建版本中,任何人都可以对其进行反编译和修改。

  • 中继服务比原始 P2P 更安全,但并非绝对安全:它们可以隐藏 IP 地址并阻止玩家之间的分布式拒绝服务(DDoS)攻击,但它们不运行任何游戏逻辑。

  • 服务器判定(Server Authority)杜绝了主机作弊:专用服务器将比赛从玩家的设备中移出,尽管像自瞄等客户端作弊仍需要反作弊系统。

  • 专用服务器也有小型规格:中继型或多房间服务器在保持控制权不落在玩家设备上的同时,其成本与中继服务相近。

点对点(P2P)网络因其优势而广受欢迎。玩家提供硬件,无需维护服务器版本,而且大多数引擎都自带示例,只需一个下午就能让大厅跑起来。

然而,代价稍后就会显现——在谁来决定比赛中发生了什么。本文将介绍点对点游戏中作弊是如何运作的、中继服务器改变了什么、没改变什么,以及到底是什么将控制权从玩家手中移走的。有关网络模型的更广泛对比,请参阅 Edgegap 关于权威服务器、中继和点对点的指南。

为什么点对点网络容易受到作弊的影响?

大多数点对点游戏并非无服务器。Highwire Games 时任首席网络工程师 Michal Buras 在 2024 年 9 月在线服务游戏峰会(Live Service Game Summit)上的演讲中描述了这种常见架构:“游戏创建了一个监听服务器,你通过公网 IP 将所有玩家连接到该服务器。”

该监听服务器运行在某一位玩家的机器上。该玩家即为房主(Host),房主保存着比赛状态。

因此,问题并不在于缺少控制权,而是在于控制权运行在其中一名竞争对手拥有的机器上。其他同伴通常会将他们的操作发送给房主,房主会像服务器一样对其进行检查。但没有人去检查房主。

玩家在点对点游戏中是如何作弊的?

至关重要的漏洞正是源于这种所有权。

  • 内存修改:房主可以修改其自身进程中的数值,例如生命值、弹药、冷却时间或位置。其他所有玩家都会将修改后的状态视为真实情况接收。

  • 网络延迟开关(Lag switching):房主可以暂时切断他们的连接,使其他所有人在他们行动时处于冻结状态,然后再重新连接。非房主玩家也可以尝试同样的伎俩,但由房主来决定比赛能容忍多大的延迟。

  • 虚假结果:房主汇报比赛结果。一个汇报了其并未赢得的胜利的房主,是将该结果汇报给唯一负责计分的机器。

  • 修改版客户端:具有权威性的逻辑包含在每个玩家下载的游戏客户端中。任何人都可以反编译该客户端,以了解房主如何验证比赛,然后对其进行修改。

专用服务器并不能以同样的方式解决此列表中的所有问题。在面对服务器时,延迟开关更难起作用,因为服务器设置了其补偿延迟的限制,但它并不会完全消失。在任何架构中,自瞄(Aimbots)和透视(Wallhacks)都是在玩家自己的机器上运行的,因此无论游戏是否为点对点,它们都需要一个独立的反作弊层。

点对点作弊的真正代价是什么?

点对点节省了服务器费用。但这笔账单会以另一种形式到来:作弊者和黑客。

《Bloody Bastards》是 Tibith Games 推出的一款下载量超过 4000 万次的移动端格斗游戏,其多人游戏采用点对点运行。由于没有权威服务器,比赛结果必须信任房主。正如联合总监兼开发者 Tibi Tircomnicu 所描述的那样,结果“可以在该客户端上被伪造,多人游戏中的作弊现象十分猖獗”。

该工作室将多人游戏移至了无界面的权威专用服务器。据该工作室称,自 5.0.0 版本以来,还没有黑客成功作弊。完整的故事可以在 Edgegap 的《Bloody Bastards》案例研究中找到。

对于一款竞技游戏来说,作弊并不是一个孤立的漏洞。作弊房主赢得的每场比赛,都是诚实玩家输掉的比赛,而且工作室没有服务器端的记录来对其进行检查。在发布后解决这一问题意味着要改变控制权的所在地,而这正是 Tibith 所承担的工作。

除了作弊:IP 泄露与数据泄漏

直接的点对点连接还有第二个问题。为了进行连接,同伴之间需要交换 IP 地址,这使得大厅中的任何玩家都可以通过拒绝服务(DoS)攻击来针对另一名玩家。

平台方针对这一点进行了设计。Valve 的 GameNetworkingSockets 文档指出,“在 Steam 上,我们通常不会在不信任的同伴之间共享公共 IP 地址,这样恶意玩家就无法进行 DoS 攻击。”

围绕会话的数据也可能会泄露。Buras 在他的演讲中展示了一款 Steam 上的 AAA 级大厅数据是如何通过常用的调试工具被读取的:

“当你在制作一款点对点游戏时,你通常会收集托管游戏的玩家(即在他的 PC 上)的相关信息,对吧?使用一个名为 Fiddler 的简单应用程序,你就可以访问这个大厅信息存储,并以纯文本形式曝光所有其他玩家的私人信息。而这个应用程序安装起来真的只需要点击两次,十岁的小孩都能用。”

Michal Buras,时任 Highwire Games 首席网络工程师,2024 年在线服务游戏峰会

他的结论是:“对于一款商业游戏来说,承受这种风险实在是太大了。”

中继服务器能阻止作弊吗?

不能。与纯粹的点对点相比,它们缩小了暴露面,而好处也就到此为止了。

中继服务器在玩家之间转发流量。Edgegap 的词汇表描述了其局限性:它“不运行游戏逻辑,因此游戏仍然是玩家托管的点对点模式:一个玩家的机器拥有比赛控制权。”

在一方面,收益是切实存在的。“除了在您和其他玩家之间中继信息的服务器之外,您的私有地址不会与任何人共享,”Buras 解释道。玩家无法使用拒绝服务攻击来针对与他们匹配的人,并且处于严格 NAT 后面的玩家也可以实现连接。

上述作弊章节中的所有手段依然有效。房主仍然拥有状态,仍然决定结果,并且仍然运行着任何人都可以反编译的版本。中继服务器绝不会看到这些。它只负责转发数据包。

公平性也没有得到改善。房主在没有网络延迟的情况下玩游戏,而根据词汇表,“其他每个玩家的流量都要经过中继服务器进行两次跳转。”正如 Buras 所说,“中继服务器在您的游戏数据包中增加了一个必须通过的额外节点,这会引入延迟。”

在中继服务器中添加检查并不能改变其本质分类。“如果你在进行计算,它就不再是中继服务器了,”Buras 说,“它变成了一种专用服务器的形式。”

哪种方案适合您的游戏?

将控制权移至专用服务器封堵了房主端的漏洞,因为没有竞争对手拥有负责计分的机器。这并不一定意味着进行完整的模拟。Edgegap 的词汇表描述了四种范围,每一种每名玩家消耗的 CPU 都比前一种更多。

专用服务器范围

服务器的作用

典型适用场景

中继型

在玩家之间转发消息,并检查少数规则

需要中立主机而非玩家机器的合作和休闲会话

结果裁判

客户端进行模拟;服务器验证结果,如分数、库存变化和购买

具有经济或进度系统但轻量实时模拟的游戏

多房间

一个进程并排托管多个小型会话

具有许多小大厅的卡牌、回合制和休闲游戏

完整模拟

为每位玩家运行整个游戏循环

射击、体育、战术竞技、竞技和排位模式

历史上的反对意见在于成本和运营:按区域保留容量,无论是否有玩家出现都需要付费。按需编排可在比赛创建时启动服务器,在 615 多个位置平均仅需大约 3 秒。中继型或多房间服务器可以运行在极小部分的 vCPU 上,这使其成本接近中继服务器,同时将控制权挡在玩家机器之外。

处于中继服务器之后的点对点模式仍然适合少数游戏:没有排位模式、没有游戏内经济且大厅中没有陌生人的仅限好友会话,以及每个同伴都已经运行完整模拟的确定性同步(Deterministic lockstep)游戏。

结论

点对点在计算上是免费的,但在信任上是昂贵的。房主拥有比赛,规则发送给每个玩家,而中继服务器改变了路线,却无法改变这两个事实。

《Bloody Bastards》展示了该交易的另一面。一旦由工作室控制的服务器掌握了结果,伪造结果就不再是多人游戏的问题。在《Bloody Bastards》案例研究中阅读 Tibith 是如何进行这一转变的。

—

本文引用了下面列出的作品。原内容中的所有权利均归其各自所有者所有。

书写者

Edgegap团队

Get your Game Online Easily & in Minutes

立即开始集成!

轻松在线游戏
且在几分钟内

Get your Game Online Easily & in Minutes