Unreal Engine 4:多人游戏开发与性能优化全解析
1. 复制图系统解析
1.1 复制图结构
复制图(Replication Graph)由复制图节点(Replication Graph Nodes)组成,这些节点负责根据需求构建要复制到每个客户端的 Actor 列表。该系统基于持久对象而非被复制 Actor 自身执行的函数调用,这使得数据可以跨多个帧保存并在客户端连接之间传输。由于这种无限制的共享数据,复制图系统能够减少为每个客户端生成复制列表的时间。
复制图节点(简称“节点”)承担着确定哪些 Actor 可能需要更新、对它们进行分组、存储预计算列表以交付给客户端等实际工作。其最终目标是尽可能快速地按需为每个客户端连接提供 Actor 的“复制列表”,从而使服务器在每个客户端的每个 Actor 上使用尽可能少的 CPU 周期。
每个节点可以执行不同的功能,开发者可以根据需要为游戏创建新的节点。节点可以是与游戏无关的,也可以使用特定于游戏的信息。根据 Actor 在游戏中的功能将其放置在特定节点中,可以更好地控制它们的复制方式和时间。构建额外的节点并利用复制图根据 Actor 在游戏中的行为将其分配到最佳节点,将显著减少服务器在网络复制列表准备上花费的 CPU 时间。
1.2 激活复制图系统
可以通过以下两种方法设置项目以使用自定义复制驱动程序(复制图的父类):
- 配置文件(.ini)方式 :打开项目的 “DefaultEngine.ini” 文件,指定引擎的默认复制驱动程序。找到(或创建) [/Script/OnlineSubsystemUtils.I