很多人在玩过穿越火线之后,马上打开另一款网游,结果一进游戏画面就像幻灯片一样,鼠标转不动,显卡风扇狂转。这不是游戏和电脑不兼容,也不是电脑中毒,而是几个非常具体的技术细节叠加造成的结果。
聊一聊游戏引擎的差别。穿越火线用的是老款的LithTech引擎,只依赖DirectX 9渲染,而近几年的网游大多基于DirectX 11或12开发。你的显卡驱动在运行穿越火线时,会为DX9专门准备一批显存单元,存储预编译的着色器指令和纹理缓存。当你退出穿越火线后,这批显存并不会立刻释放干净。紧接着启动DX11游戏,驱动需要首先回收这些碎片,同时重新编译新的着色器代码。这个过程如果发生在游戏开场动画或加载场景中,就会出现几秒到半分钟的卡顿,严重时整个画面冻结。英伟达和AMD的驱动虽然都做了优化,但老游戏和新游戏之间切换时,仍然存在一定的重置延迟。
再说反作弊系统的后台残留。穿越火线在国服由腾讯运营,强制安装Tensafe安全组件。这个组件在游戏运行时深度注入系统进程,为了实时监测可疑操作。但很多用户发现,退出游戏后,Tensafe的相关服务还在后台运行。在它的进程管理列表里,至少有五六个子进程,占用内存两百多MB,CPU占用率在百分之五到百分之十之间浮动。如果你的电脑是双核四线程的老款处理器,这些后台占用足以让其他游戏在启动阶段因为缺少计算资源而卡顿。尤其是当你玩的是需要大量CPU调度的竞技类网游,比如绝地求生或者使命召唤战区,这种卡顿会非常明显。
另外一个容易被忽略的因素是网络参数被修改。穿越火线为了保证低延迟,客户端会调整你系统的TCP/IP参数,包括增大UDP缓冲区长度,并且将网卡的中断调节模式设置为低延迟。这些设置对穿越火线有用,但对其他网游未必友好。大部分现代网游依赖TCP可靠传输来同步位置数据和状态信息,一旦UDP缓冲区过大而TCP窗口未同步调整,数据包可能会在驱动层排队等待,造成网络延迟波动,反映在游戏里就是突然掉帧或者人物瞬移,也就是玩家常说的卡屏。不过这种卡屏有随机性,有时候玩一小时才出现一次。
还不得不提硬件温度的问题。穿越火线虽然是一款低配置要求游戏,但很多玩家为了追求高帧数,会关闭垂直同步,把帧数上限拉到两百甚至三百。这会让显卡长时间满负荷运行。退出游戏后,显卡温度并不会马上下降,尤其是笔记本和平价台式机,散热余温可能需要两三分钟才能降到待机水平。如果这时候马上打开另一款吃配置的网游,显卡核心会在高温基础上继续升温,直接触发温度墙保护,降频运行。帧数一旦降到20以下,视觉上就是卡屏。

以上这些因素叠加起来,就形成了你从穿越火线转向其他网游时的卡屏现象。解决的办法也不难:退出穿越火线后等一两分钟,或者用任务管理器结束Tensafe相关进程;进入新游戏之前,打开显卡控制面板把着色器缓存设置成自动;如果网络卡顿明显,重启一下路由器或者执行一次winsock重置命令。但如果是老电脑,升级内存和固态硬盘会立竿见影,因为大部分卡屏其实是磁盘读写速度跟不上造成的。穿越火线安装在机械硬盘时,它的缓存文件会放在页面文件里,退出后不会清理,新游戏启动时需要大量读取资源文件,页面的混乱会拖慢整个过程。
你回头看这个卡屏问题并不神秘。它就像是一条旧路换到新路,路口没有红绿灯,车自然会堵一下。搞清楚原因,你就不会再怀疑自己刚买的电脑是假货了。