2014年8月13日

寻找基于网络的漏洞

作者 Joe Graf

最近,我和战争机器的粉丝进行了邮件交流,我们谈到了该系列三部作品间网络质量方面的区别。在关于提高网络体验的质量方面,我们谈到了使用虚幻引擎的内置网络模拟功能。使用了这些功能后,我们可以在不同的网络质量条件下,测试合作模式和多人对战模式。目标是确保游戏在网络条件不佳的情况下可以尽可能提供良好的游戏体验,并在发售前可以在QA实验室中寻找网络相关的漏洞情况,而不是在社区发现这些问题后才做出应对。

以下是我们在引擎中可用的设置:

Setting

Description

 PktLag

 延迟一段时间再发送包,时间以毫秒为单位

 PktLagVariance 

 给包延迟的时间提供一些随机性, +/- 时间长度,以毫秒为单位  

 PktLoss

 定义丢弃传出包的百分比以模拟丢包

 PktDup

 定义发送重复包的百分比

 PktOrder

 在启用时乱序发送包(1 = 启用, 0 = 禁用)

有三种方法来配置这些设置:命令行参数、游戏中控制台的可执行程序、以及通过引擎INI文件。在命令行中,使用如下方法来指定设置:

<SettingName>=<Value>

在控制台中,使用:

Net <SettingName>=<Value>

如需通过您的DefaultEngine.ini文件来设置,添加以下部分到您的INI并修改值为您想要测试的值:

[PacketSimulationSettings]

PktLag=0

PktLagVariance=0

PktLoss=0

PktOrder=0

PktDup=0

在开发战争机器3时,我们在每天的版本中都进行模拟设置,这样每个基于局域网的游戏测试都具有真实世界的网络情况。我们同时在合作模式和对战模式中让程序员使用极端设置(500左右的双向ping,10+%的丢包等等)来做游戏测试。这些测试目的不是享受游戏,而是查找bug和网络漏洞,它们仅仅会在最严苛的情况下才会出现。即使您认为这些情况在正常情况下不会产生,我们也认为最好能进行测试,以防止作弊者使用网络篡改来执行漏洞。

您的社区将会为您寻找并共享任何网络漏洞,但对这些问题最好是能事先预防而不是出了问题再响应。您的公共关系和社区管理团队会为此而感谢您的。

祝您在寻找漏洞的旅途上愉快!