使用网络模拟

关于在虚幻引擎中使用网络模拟的概述。

Choose your operating system:

Windows

macOS

Linux

若要在一台机器上测试多人游戏,你需要运行多个游戏实例,一个作为服务器,其他作为客户端。通常,这会为你的复制数据创建具有理想条件的环境。你复制的数据将经适当的系统传送,类似于真实的网络环境,但不会有延迟或数据包丢失,这意味着你无法准确了解数据部署到最终用户时的行为方式。同样,基于LAN的测试不会遇到这些情况。

网络模拟 可以模拟服务器和客户端的延迟和数据包丢失。这对于识别网络环境中可能出现的问题至关重要。要使用网络模拟,前往 项目设置(Project Settings) > 关卡编辑器(Level Editor) > 运行(Play) > 多人游戏选项(Multiplayer Options),然后将 启用网络模拟(Enable Network Emulation) 设置为 启用(enabled)。此操作将启用网络模拟设置。

image_0.png

设置参考

你可以在编辑器、配置文件和控制台中配置网络模拟设置。你可以通过多种方式在不同的上下文中使用这些设置,例如测试高延迟、丢包或抖动。

设置

说明

PktLag

将数据包的发送按以毫秒为单位的指定时间延迟

PktLagVariance

为数据包的延迟时间提供一些随机性,+/-以毫秒为单位的指定量

PktLoss

指定出站数据包被丢弃的百分比,以模拟数据包丢失

PktDup

指定发送重复数据包的百分比

PktOrder

启用时以乱序发送数据包(1 = 启用,0 = 禁用)

你可以用三种方式配置这些设置:命令行、在 控制台播放 中执行、Engine.INI 文件。

命令行参数

命令行 中,使用以下命令指定设置:

=

控制台

控制台 中使用:

Net =

默认的Engine.Ini

要从你的 DefaultEngine.ini 文件中设置这些值,请添加以下分段,并为每个变量分配一个你要测试的值。

[PacketSimulationSettings]

PktLag=0

PktLagVariance=0

PktLoss=0

PktOrder=0

PktDup=0

使用建议

多人游戏在最佳连接状态下运行时,不会遇到很多只有在连接不佳时才会出现的漏洞。为确保捕获这些漏洞,你应该在极其严苛的条件下执行本地测试和基于LAN的测试。例如:

  • 500往返ping。

  • 10%的数据包丢失或更高。

Epic Games会使用这类条件来测试合作性和竞争性的Gameplay。这使得捕获大量漏洞和错误成为可能,而不是将其忽视,同时强烈推进网络性能的优化。

本文基于此前的虚幻引擎版本编写,未针对当前的虚幻引擎5.0版本更新过。