你是否也有过这样的经历,从网上下载了一个几个G的压缩包游戏,解压了快十分钟,终于能进游戏玩了。结果第二天再打开,双击原来的文件夹,发现游戏根本打不开,里面还是一堆乱码文件,只能又屁颠屁颠跑回去重新解压一遍。这时候真想摔鼠标,这破游戏到底怎么回事,为什么就不能一次解压完事,非要回回折腾人。
可把你问住了,这其实是个特别经典的误会。你下载的那个压缩包,它本身就是一个“快递盒”,里面的文件是按照某种压缩格式封好的,比如zip、rar或者7z。而游戏这种东西,在制作的时候是把成千上万个文件打成一个包,方便分发给玩家。当程序要运行的时候,它得去读取具体某个文件,比如一段音频、一张贴图、一个模型数据,这些文件只有在解压后的状态才能被系统正确认出来。你玩游戏的时候,操作系统和CPU其实是在高速运转,随时从硬盘上把这些文件调出来用。如果你直接让游戏去读压缩包里的文件,它就得先解压再读取,而且是一次性把整个包的内容都解压到内存里,这速度慢得会让人怀疑人生,更别提游戏还得分秒必争地渲染画面。所以,绝大多数游戏在发布的时候,只要是个压缩包,你都得把它解开还原成原本的文件夹结构,游戏才能正常启动。
那有人就问了,我解压过一次,游戏也玩得好好的,第二天我怎么就不能直接玩了?这里头有个关键细节,很多人解压的时候图省事,把压缩包里的一个文件夹直接拖到桌面,或者解压完就以为万事大吉,把那个压缩包删了。可是第二天打开游戏,系统却提示缺少某某文件,或者干脆点图标没反应。原因在于,你解压出来的那个文件夹,里面的游戏主体可能并没有问题,问题出在它依赖的一些运行库、注册表项或者存档文件,这些东西可能还留在你解压时临时用的那个路径下,或者游戏安装的时候默认要写进系统里的一些配置信息,因为你是直接从压缩包拷出来的,这些东西根本没落到该去的地方。
还有个更普遍的情况,很多游戏下载下来,所谓免安装版,其实它内部还是用了一种叫虚拟光驱加载或者自解压的机制。你第一次解压,实际上只是解包了一个安装引导程序,这个引导程序运行完,又把真正的游戏数据再释放一次到某个指定盘符。如果你第二次直接去点那个游戏exe,它会检测到缺少一些关键组件,或者它需要激活一个验证过程,于是它自己又调用了解压逻辑,重新把刚才那个数据包再释放一遍。这就造成了一种假象,让我以为每次都要重新解压。实际上,游戏在第一次玩完之后,你如果不去动那个文件夹,下次还是能正常玩的。但问题就在于,很多人下载的是那种分卷压缩包,或者解压后是一个镜像文件,你如果没把它整个弄出来,那自然每次都得走一遍流程。
更有人会碰到这种恶心事,明明解压成功了,也玩上了,可关机重启之后,再点开游戏文件夹,发现里面空空如也,像是被系统清理了。这多半是解压的时候把目标路径放到了系统临时文件目录,或者某个会被安全软件定期清扫的缓存区。Windows系统有时候抽风,把一些看起来像临时文件的文件夹给清理了,你的游戏就这么没了,下次不得重新解压吗。当然,如果你把游戏解压到如C盘用户文件夹下的Temp目录,那每次开机被清走几乎是必然的。

要从根上解决这个烦心事,最好养成习惯,把游戏压缩包解压到一个专门的游戏盘,比如D盘或E盘的根目录下,保证那个文件夹有完整的读写权限。解压的时候选“解压到指定文件夹”,而不是直接拖拽,这样能确保所有文件都完整出来。解压完,打开游戏确认能正常进入,然后这之后就能直接从那个文件夹启动游戏,不要再依赖原来的压缩包。如果第二天发现打不开,去检查下是不是杀毒软件把破解补丁或者某个dll文件当成病毒隔离了,把它恢复并加入白名单,这游戏就又能玩了。基本上,游戏压缩包每次都要重新解压这个错觉,就这么点事,搞明白了就能省下不少冤枉时间。