作为全球最火的游戏之一,《英雄联盟》的受众可谓是遍布五湖四海,因此这款游戏的每一次版本更新也牵动了无数人的关注。日前《英雄联盟》方面在3月8日发布的13.5版本更新公告中宣布,自2023年4月4日(即 13.7 版本更新后)开始,将不再支持32位的Windows操作系统。也就是说,此后《英雄联盟》及《云顶之弈》都需要64位的Windows系统才能运行。
根据《英雄联盟》制作方拳头游戏的说法,使用32位操作系统的玩家在13.7版本更新后,就将收到一条游戏不再支持该系统的提示。而促使其做出这一改变的原因,则是目前正在使用64位操作系统的玩家,已经占据了整个用户群体的99.9%。而在发布新内容的同时还要维护老硬件,无论从开发、还是测试的角度无疑都需要更多的资源,因此放弃维护老设备显然也是更经济的做法。
《英雄联盟》不再支持32位Windows这件事,或许有许多玩家其实并不在意。毕竟根据Steam今年2月公布的软硬件调查数据显示,64位操作系统已经成为了Steam玩家中的主流,仅仅只有0.09%的用户还在使用32位的Windows 7,至于更早的Windows XP则早已“消失”。然而《英雄联盟》这款覆盖了全球大量玩家的现象级网游放弃32位系统,可以称得上是个标志性事件,同时也意味着一个时代的终结。
为什么直到2023年,拳头游戏才放弃在32位操作系统上部署游戏呢?其实回答这个问题就要先搞清楚,32位与64位这两个关键词的差异。
从冯·诺依曼机到现在大家熟知的个人电脑,计算机设备一直用的是二进制逻辑,也就是0和1(实际是高电位和低电位)来表示信息,因此32位和64位分别指的就是处理器在单位时间内,能够一次处理的二进制数位数分别为32位和64位。
而Windows是32位还是64位也并非由微软来决定,而是取决于比操作系统更底层的CPU。Intel早在1978年就推出了的16位处理器Intel 8086,并且这颗CPU对计算机的发展影响巨大,此后的286、386、486、奔腾处理器也都是在8086的基础上演变而来,而8086使用的这套指令集则称为x86指令集。
所以在此之后的CPU为更好的兼容性,就需要运行在16位模式下,这就是实模式(Real Mode)。然后再根据引导跳转到32位的保护模式(Protection Mode),如果是64位系统,则会再被引导至64位的长模式(Long Mode)。
32位和64位操作系统的差异,就在于系统的寻址空间。工作在32位保护模式下的CPU,它的内存寻址范围理论上是2^32bytes、也就是4GB,而64位系统的内存寻址空间为2的64次方bytes,可寻址空间达到了惊人的16TB。当然,寻址能力造成的内存限制其实是可以通过技术手段来突破的,当年硬件厂商就在CPU中加入了一个叫做“物理地址扩展(PAE)”的功能。
但问题在于,PAE这样的技术还存在兼容性问题,所以它并不稳定。在硬件厂商与微软来回扯皮之后,微软方面强制在Windows内核中把物理地址空间限制为4GB,又强行关闭了MMIO重映射,导致32位的Windows系统就只有3.24GB内存可用。此时即使是将内存增加到16GB,也仍然只有3.24GB可用。也就是说增加的内存非但没有用,反倒是被白白浪费掉了。
那么3.24GB的内存意味着什么呢?对于一款在2009年就已问世的网游而言,它显然是绰绰有余了。彼时主流网游对于系统内存的要求,普遍也只停留在1GB、乃至2GB的水平。只不过在过去十余年间硬件技术的快速迭代,导致如今16GB内存才是玩家的主流配置,《英雄联盟》官网上的推荐配置也已经从当年的1GB、变成了现在的4GB。
然而想必许多玩家都知道,游戏厂商给出的配置基本上就等同于游戏仅仅能够运行,但这显然是不够的,特别是对于《英雄联盟》这样的MOBA游戏来说,玩家追求的是流畅。
现阶段如果继续使用32位操作系统来玩《英雄联盟》,体验必然会相当糟糕。毕竟随着游戏版本的更迭,更精美的贴图、更绚丽的对于内存的压力越来越大。当32位Windows系统只有3.24GB内存可用时,《英雄联盟》要求的却是4GB才能流畅运行。
系统内存紧张时会发生什么呢?当一个应用在申请内存时,系统会查看是否有空闲的物理内存,如果有就直接分配物理内存,并建立虚拟内存与物理内存之间的映射关系。可如果没有空闲的物理内存,那么系统内核就会开始进行回收内存的工作,一旦执行内存回收后,空闲的物理内存仍无法满足此次的物理内存申请,系统就会触发OOM(Out of Memory)机制。
OOM机制会根据算法选择一个占用物理内存较高的进程、然后将其杀掉,以便释放内存资源。简单来说,如果电脑的内存有限,由于Windows系统自身也会占据的内存,再加上《英雄联盟》本身对内存的需求上涨,在2009年时还有些富余的3.24GB内存到了2023年,就变得有些捉襟见肘了,以至于使用32位Windows系统的玩家,会遇到游戏运行时突然崩溃的情况。毕竟《英雄联盟》的内存开销大、优先级又不高,系统就会优先回收这部分资源。
然而不那么熟悉PC相关知识的玩家可能并不了解这些,此时他们只知道游戏玩着玩着就没了,也就只会对拳头游戏有抱怨了。为了这部分玩家的体验,在过去的很长一段时间里,拳头游戏就必须要投入资源来维护32位版本的体验。可随着时间的推移,即使PC的换机周期再长,越来越多的玩家陆续完成了PC的更新换代,所在使用32位CPU的电脑也越来越少,因此这才是拳头游戏敢于宣布《英雄联盟》需要64位Windows才能玩的原因。
事实上,隔壁的《魔兽世界》早在2018年就已宣布将停止支持32位系统,《DOTA2》也在2021年宣布移除对32位系统的支持。所以在许多业内人士看来,以《英雄联盟》放弃32位操作系统为标志,未来64位系统也势必将会成为整个游戏行业的选择。