小黑盒

来源自小黑盒

04月22日 10:06

2020年PUBG工作规划(一):反作弊及性能优化

导语

          PUBG在其官方年度工作规划中,提到了将在今后针对性地对外挂进行处理,同时也将致力于提高游戏的整体稳定性。

  我是PUBG PC开发总监TS Jang。

  在过去的一年中,我们PUBG为大家带来了包括新地图、新游戏内容和大量便捷性优化在内的许多内容。在这些更新事项中,有的内容赢得了玩家们的大量关注;而有些内容则由于我们对开发方向性的说明不到位的缘故,导致大家无法很好地理解这些功能被开发出来的意义。此外,在对一部分长期存在的BUG的原因进行调查时,我们遇到了一些困难;并在这一年中与未授权程序进行了持续的斗争。今天,我们希望就这些内容与大家好好聊一聊。

  去年是全球的PUBG团队急剧成长的一年,在此过程中,我们也经历了巨大的生长痛。但最为遗憾的是,在这急剧成长的过程中,我们有些忽视了和各位玩家们的沟通。从结果来看,玩家社区中形成了一种“PUBG已经不再会和玩家沟通,也不会听取玩家们的意见了”的舆论。

  我们很清楚,各位玩家们所表现出的对绝地求生的热情和爱意才是PUBG能够成长起来的原因。对于对此前在沟通上给和大家造成的不便,我们深感抱歉。过去的3年,正是因为有了各位玩家们的贡献,才有了今天的PUBG。

  今天在这里我们再次向大家承诺,我们将会致力于解决各位玩家们所面临的各种问题,并在绝地求生未来的几年内持续对游戏进行优化。

  为了解决各位玩家们所面临的各种问题,我们打算先在本次开发日志中,与大家共享一下“未授权程序应对方案”和“性能与稳定性优化”这两个方面的内容。并将在后续的开发日志中与大家探讨其他尚未得到解决的内容。在“未授权程序应对方案”的部分中,我们将在不透漏出可能被黑客利用的信息的同时,尽可能详细地向大家介绍我们的工作计划;而在“性能与稳定性优化”部分中,我们在讲述时可能会用到比较多的技术用语。还望大家多多包涵!

  【内容目录】

  未授权程序应对方案

  - 强化事前防范

  - 强化监控/制裁

  性能与稳定性优化

  - 性能优化

  - 稳定性优化

  - 网络优化


  未授权程序应对方案

  至今为止,PUBG仍在与未授权(外挂)程序进行一场无休止的攻防战。我们一直在不停地努力,寻找可以根绝未授权程序的办法。在过去的一年中,为了阻止未授权程序的传播,我们尝试了各种各样的办法,并将工作重点集中在了降低未授权程序的收益性和提高未授权程序的开发难度上。考虑到未授权程序的开发者们一直在留心观察我们所采取的手段,我们不得不将我们对未授权程序采取的应对措施对外保密。但对外保密也产生了副作用,导致各位玩家们产生了我们“对目前需要最优先处理的未授权程序问题没有采取任何应对手段”的错觉。今年我们将会继续努力,争取让大家能实际感受到我们在应对未授权程序方面所做出的改善。

  强化事前防范

  事前防范指的是在玩家使用未授权程序之前,直接让该程序无法运行的应对方式。这种应对方式主要是通过阻止未授权程序的开发或提高其开发难度,使未授权程序的利益低于其开发所需的成本。目前我们PUBG主要在通过以下几种方法进行事前防范。

  引入2次安全验证系统

  现在我们每天都会收到几十、上百起Steam账号被盗导致PUBG账号被永久封禁的客诉。未授权程序的销售商们为了满足客户们大量的账号购买需求,往往会将盗来的账号一并用于交易。被盗的账号大部分都没有绑定Steam令牌进行账号保护,或是在各种以道具等物品为诱饵的钓鱼网站上登录了Steam账号而导致账号被盗。

  为了防止这些问题的发生并提高账号的安全等级,今后我们预计将会引入短信验证功能和提供一次性验证码的2次安全验证手段。此外在之后将要与大家见面的“竞技比赛”中,为了确保游戏环境的公平,该比赛将只允许开启了2次安全验证系统的账号参加。

  优化游戏内容中容易被黑客利用的代码

  我们将对枪械/载具/角色动作等相关代码中容易被黑客利用的代码进行优化。

  枪械

  - 加强对枪械的射击角度、后坐力、子弹弹道、子弹速度等信息的服务器验证

  - 分析并改善与瞄准有关的客户端逻辑的弱点

  载具

  - 加强对载具的速度、移动角度、滞空时间等信息的服务器验证

  - 发现问题后不仅要进行制裁,还将引入外挂功能实时抑制、踢出对局、即时封禁等功能。

  角色动作

  - 加强对角色的移动速度、滞空时间等信息的服务器验证

  加强检测/制裁

  我们了解到,虽然迄今为止我们对许多使用未授权程序的账号采取了永久封禁处理,但原本的制裁方式在维持游戏环境的公平性方面的作用是有限的。从2020年起,我们将加强对使用未授权程序的账号、PC的监控和制裁,争取将处理的成果展现给大家。

  扩大检测范围

  我们将扩大对未授权程序的检测范围,防止未授权程序绕过检测。当我们更新用来检测未授权程序的反作弊解决方案(Anti-cheat Solution)后,未授权程序开发者会在一段时间后为未授权程序添加躲避该解决方案检测的技术;受其影响,解决方案的检测范围将会变窄。为了减少这种情况的发生,我们会周期性地对解决方案进行更新。此外,有的未授权程序已经将功能延伸到了内核区域,在很大程度上避开了检测。这类未授权程序目前正在增多,为了从根本上缓解这种情况,我们预计将于2020年6月份为游戏添加额外的内核驱动,通过这种比反作弊解决方案权限更高的系统来加强对未授权程序的检测。

  自动化分析

  目前我们所使用的手动分析方法存在的缺点是:当未授权程序更新时,我们需要反复对其进行分析和应对。此外,部分程序还会在dump文件生成时自动关闭电脑,或者对未授权程序分析中用到的账号的验证进行重置,借此对分析进行妨碍。

  对此,我们正在开发能自动划出有未授权程序运行的环境与没有未授权程序运行的环境之间的差异,并将代表不同环境特征的值导出用于账号封禁的功能。该功能目前预计将于2020年7月份上线。

  加强硬件封禁

  启用硬件封禁功能后,系统将会记录用户的硬件中的特定信息。之后就算用户更换了新的账号或被盗的账号,服务器依旧可以识别出这台被加入了黑名单的PC。虽然我们提高了硬件封禁的准确性,使该功能得以收集到更多的硬件信息,但用户还是可以简单地通过替换若干配件等方法来提高避开检测的概率。而且外挂开发者们还可以通过使用篡改硬件信息的工具和搭载了该篡改功能的未授权程序来轻易地让我们的努力化为泡影。

  我们已经认识到了原本的硬件封禁系统中存在的局限性,并打算对其进行优化。我们将在用户级别和内核级别中启用可以识别多种硬件信息的特殊算法,以确保就算未授权程序绕过了检测,,封禁功能也可以迅速对其进行分析,并再次进行封禁;从而达到对使用了未授权程序的用户的账号和PC同时进行封禁的效果。

  提高制裁等级

  目前,对未授权程序使用者的检测主要是根据玩家们的举报和各种游戏信息、记录来进行的。通过这种方式检测出的玩家当中,证据确凿的玩家将立刻遭到制裁;而需要额外进行调查的玩家则会被临时封禁24小时,在进行调查后再正式对其进行制裁。

  在这些被临时封禁的玩家中,有相当一部分后来都遭到了永久封禁。但还是会有少部分玩家因为缺少准确证据而被解封;也有另一部分玩家最后被认定为无辜人员。

  为了确保不出现无辜受害者,迄今为止我们一直谨慎地进行着账号制裁。但就结果看来,这种谨慎的处理态度反而对多数玩家造成了伤害。因此,今后我们将会进一步加强对未授权程序的疑似使用者的调查。

  此外,我们还将引入对疑似外挂使用者的监控制度。当玩家遭到1次临时封禁后,我们会将其列入持续管控对象中。并在原本的调查方法之外,通过直接监控等其他手段对其进行追踪。

  当遭到临时封禁的玩家解除封禁重返游戏后,如果他再次被列为了疑似外挂使用者,我们将会延长调查处理时间,自动对其进行更长时间的临时封禁处理(例如1个月)。另一方面,我们也会实现调查过程的自动化,让被判定为无辜的玩家们可以更快地回归游戏。我们也将添加相应的系统,让累计得出调查结果后,可以更加快速地解除对无辜玩家的临时封禁。

  为了将这项内容更新到游戏中,我们需要重新建立制裁政策标准。因此更新的时间点预计会是2020年的6月份。

  改善性能及稳定性

  接下来是玩家们热议的另一个话题,游戏客户端的稳定性及性能的相关计划。

  我们了解到此前持续发生的网络、服务器及客户端问题对稳定性及游戏性能产生的影响,为玩家们提供最优质的游戏服务品质始终是我们最为重视的课题,然而数月以来,由于长时间未能修复明显加重的卡顿(客户端断开连接)、游戏崩溃等现象,使得我们的多项改善方案也未能及时和大家见面。

  相信最近玩家们应该感受到了卡顿现象有所改善。同时,在最近的更新中,我们发现第5赛季第3轮更新的受伤效果在部分情况下可能导致游戏崩溃,因此我们对此进行了回调。尽管该类问题能够究其原因并找出解决方案,我们也深知本应更快速地应对问题、尽可能地在问题发生之前防患于未然。为此,我们也将对业务流程进行改善,在带着新版本和玩家们见面之前,进行更加高效的监修。

  与服务器相关的问题中大多数均是由于过去数月以来持续不断的DDoS攻击而产生。今年初,为了更加高效地应对DDoS攻击问题,我们曾导入了自主开发的防御系统,往后也将不断改善防御方案,争取达到DDoS攻击不会对玩家们正在进行的游戏体验产生影响的水平。

  性能改善

  关卡流 / 卡顿问题优化

  通过优化包文件(pak)缩减查找包内物品所需的时间;

  - 包文件:指游戏内使用的所有素材(武器、载具、建筑物、服装等)的压缩文件;

  减少关卡流的次数,改善其性能;

  - 合并Landscape → 减少关卡流以及GC(垃圾回收)的次数 → 改善卡顿现象;

  改善由于图像数据的加载或取消加载造成的卡顿现象;

  - 将关卡流方式由加载至同一帧转换为各帧分别加载,降低卡顿现象的发生概率;

  其他卡顿现象改善内容:

  - 打开物品栏时;

  - 打开角色预览时;

  - 装备武器时;

  - 淘汰敌人等;

  - 投掷道具时;

  - 打开选项、任务等UI时;

  - 优化精简游戏内字体;

  - 优化游戏内多种道具(武器、角色)皮肤;

  - 对于枪械皮肤等加载时间较长的皮肤,通过异步加载方式改善卡顿现象。

  优化GPU

  进一步利用HLOD优化并改善GPU性能;

  - HLOD指将远距离的多个静态网格体Actor合并为单个静态网格体Actor的技术,由此减少场景内需要渲染的Actor数量,降低每帧的绘制调用,从而实现性能的提升;

  通过改善Landscape结构实现优化。

  优化动画

  对于角色密集或动作幅度过大造成的超负荷现象,基于游戏玩法的优先级别调整计算量实现优化。

  改善对于低配PC环境的支持

  许多PC由于性能问题存在无法进行游戏的问题,为了最大程度地减少此类问题的发生,将根据CPU使用量自动调节优化程度,以此在低配环境下维持流畅的性能。此外,对于CPU核数较少的PC,我们正在试着降低动画处理过程中的消耗成本。

  改善稳定性

  目前游戏大厅、游戏内、加载画面中存在间歇性的崩溃现象,我们正通过加强内部检验流程、积极利用崩溃报告等途径解决这一问题。

  客户端崩溃现象的解决及快速应对

  客户端崩溃的主要原因是内存不足,因此将在每一次生成版本时加强检验流程;

  - 通过内存的连续存档清除不必要的内存;

  - 优化游戏中美术素材的内存占用情况;

  - 通过代码重构优化整体内容的加载方式;

  - 通过实时分析防止内存泄露现象,避免长时间游戏情况下该类问题的发生。

  完善版本检验流程

  加强手动检验方法的同时导入自动检验工具;

  导入多种检验系统以监控程序的运行情况;

  - 内存泄露检验工具;

  - 内存使用情况检验工具;

  - 内存损坏检验工具:监测意外的内存访问导致的崩溃现象;

  - 卡顿检验;

  - CPU/GPU状态检验;

  利用AI搭建100人测试环境;

  - PUBG的游戏测试需要100位玩家加入,然而每一次性能测试时召集100位人员并非易事。

  - 目前正在利用AI进行与实际游戏环境相似的大规模测试。

  改善网络情况

  DDoS

  许多在线游戏都曾不时遭遇DDoS攻击(分布式拒绝服务攻击)问题,PUBG也不例外。当游戏服务器遭到DDoS攻击时,该服务器内所有玩家的游戏环境都将发生网络延迟、ping值偏高、丢包等一系列问题。自去年11月起,DDoS攻击现象激增,并于今年2月达到顶峰。为此开发团队在导入外部解决方案的同时自主开发了DDoS防御系统,目前已经有效拦截大部分的DDoS攻击,关于DDoS攻击的详细应对过程,后续我们将单独向大家介绍。

  丢包问题

  导入外部DDoS防御解决方案后,北美及欧洲地区的丢包问题发生概率较之以往反而有所增加。尽管目前该问题已经得到了一定程度的缓和,但仍有反馈信息显示丢包问题依然存在。由于该问题的发生是由诸多原因所致,我们正在进行原因分析及路由优化,以此最大程度减少丢包现象的发生,并改善整体网络环境。

  结语

  我们深知如果减少了与玩家们的沟通,玩家们会认为我们不在意眼下正在发生的诸多问题,然而我们想对所有的玩家们说,除了上述的多种问题以外,我们也在努力改善与玩家们的沟通方式。

  今年,我们准备了许许多多的内容等候着与玩家们见面。诚然,我们的目标是让玩家们尽情享受游戏,无需顾虑游戏过程中可能出现的问题。本次开发者日志的篇幅到这里或许已经有些长了,那么我们在下一次的开发者日志中再来与大家交流吧。

  因为想要将我们的初衷以及往后的计划准确地传达给所有玩家,所以本次开发者日志的准备过程较之以往花费了更多的时间,在这里我们衷心地感谢所有玩家们对开发者日志的耐心等待。

  谢谢!

  PUBG 开发总监 TS Jang 敬上