DOOM3网络架构
前情提要:本篇为翻译,原文地址如下:
The DOOM III Network Architect
The DOOM III Network Architect \ DOOM3网络架构
Abstract \ 摘要
一个能提供玩家快节奏的强交互游戏环境的电脑游戏必须要提供一致的响应及时的体验。然而,在电脑游戏的运行基于网络连接的情况下,这是困难的,因为网络环境充斥着强制因素,比如带宽,信息到达目的地的延迟。所有的网络架构都需要实现一致性,响应性,带宽和延迟要求之间的权衡。根据游戏类型和网络环境指定平衡策略。这篇论文展示DOOM3的网络结构。
Introduction \ 介绍
fps游戏中,玩家在实时的虚拟环境中移动,以第一人称的视角观察环境。玩家通过控制虚拟玩家的眼睛进行观察。在第一人称射击游戏中,最重要的任务是保持生存并使用各种武器消灭虚拟对手。第一人称射击游戏高度互动,通常速度很快,注重速度和准确性。一个好的第一人称射击游戏旨在让玩家沉浸在行动中。
多人游戏需要共享显示。玩家在一个虚拟环境中共享体验,不同的视角下,玩家能看到发生在虚拟世界中的同样的变化和时间。每个玩家都有自己的计算机,这些计算机通过本地网络或互联网相互连接。网络用于共享信息,使所有玩家都能体验到相同的虚拟环境。
一个能提供玩家快节奏的强交互游戏环境的电脑游戏必须要提供一致的响应及时的体验。玩家能够及时接受到做出的动作的反应是非常重要的。不同玩家观察到相同的事件接受到的信息是相同的也是非常重要的。然而,网络的限制导致提供一致的高响应的环境非常困难。首先的限制是带宽,因为我们有大量的数据需要传输。然后是处于不同网络的计算机之间数据的发送和接受存在延迟,这也就是我们常说的网络延迟。尽管这些年网络的发展,带宽大大提高,但是延迟并没有太大的发展。根据资料,现在的网络延迟正常在50-100ms之间。即使使用快速玻璃光纤连接,如果世界不同地区的人们想要互相玩耍,也不可避免地会产生相对较大的延迟。
在多人游戏中,总会有人觉得有必要通过独创性来克服技能不足的问题,比如利用网络架构中的 bug 或漏洞,或者实施各种作弊。在设计网络架构时,重要的是要考虑系统可能容易受到的作弊。另一个重要问题是安全。个人可能会试图卸载服务器或以其他方式破坏游戏。也许更糟糕的是,个人可能会试图将游戏作为工具来攻击网络或互联网上的计算机。一个强大的网络架构可以抵御攻击和滥用。最后但同样重要的是,可移植性可能在网络架构的设计中发挥作用。一些网络模型比其他模型更适合跨平台多人游戏。
第一人称射击游戏中的游戏状态通常被建模为游戏对象或实体的列表。玩家、敌人、子弹、门等都是游戏中的实体。与其区别对待所有这些特殊目的元素,不如将它们绑定在一个系统中,提供共同的结构和通信方法。类层次结构和功能组件通常用于对不同实体进行建模。第一人称射击游戏中的网络化完全是关于同步相同游戏实体的多个副本的状态,以便所有玩家在虚拟环境中经历相同的变化和事件。一些网络模型要求所有玩家管理和维护他们自己的所有游戏实体副本,其中使用相同的规则和方法来同步推进这些实体的状态。其他网络模型不断通过网络传达实体状态的变化。
PreWork \ 提前工作
本文翻译于2025年,此时绝大部分的游戏的网络结构采用CS架构,S端甚至是分布式架构。P2P、Package Server架构已经过时,所以不予翻译。感兴趣的读者可以自行浏览原文。
Client-Server
在CS模型中,服务端负责进行游戏逻辑的决策,客户端处于玩家处,负责渲染。客户端向服务端发送按键信号或者视角视角信号,并接受一系列实体进行渲染。这样的网络模型不会受到去同步网络游戏的影响,因为服务器是权威的,而去同步网络游戏之间存在分歧。