周三下午,开发者Slqnt和98006打开浏览器,没有输入网页地址,而是直接启动了一场来自17年前的生存之旅。屏幕上,戈登·弗里曼再次拿起撬棍,在17号城市的废墟中穿行。这不是云游戏串流,而是完整的《半条命2》战役在本地浏览器中运行,帧率超过100,存档、控制台功能一应俱全。

这个非官方移植版只花了三个月就开发完成,支持主线关卡和两个资料片,用WebGL 2绕过了浏览器的常规渲染引擎,直接把图形指令丢给GPU。底层的Source引擎C++代码则通过WebAssembly转译成了浏览器原生理解的格式,所以整个游戏其实是实实在在地跑在你机器的硬件上,不用下载,不用安装,缓存构建一两分钟就能开打。

打开网易新闻 查看精彩图片

正方看法:老游戏获得了新器官
这种移植方式让游戏分发变得几乎毫无摩擦。虚拟文件系统通过高速网络请求调取压缩资源,存档直接写入浏览器的IndexedDB或缓存,和本机安装的体验几乎一致。更让人意外的是,开发者终端也被完整继承过来了,你能调出Source引擎控制台,敲进经典作弊码,或者自由调整引擎变量。Steam成就虽然没有,但游戏内置的成就系统仍然通过菜单可用。在搭载锐龙7 7700X和RX 6700 XT的台式机上,把所有设置拉满、全屏运行,画面流畅得不像话——100 FPS稳稳的,画质看起来相当漂亮。对于一款2004年发售、几乎不挑硬件的游戏来说,浏览器容器几乎没有造成额外性能损耗。

反方意见:移动端翻车,僵尸脸好笑但恼人
跨设备的梦还没做完。我们在一加12手机上尝试启动,直接宣告失败。改装过安卓系统的任天堂Switch同样无法运行。部分用户在社交媒体反馈说移动端成功跑起来了,但体验因人而异。即便在理想的桌面平台上,一些顽固的bug依然存在。许多玩家指出一个颇为滑稽的“僵尸”图形故障:角色头部渲染出错,眼窝空洞,宛如活死人。某些复杂过场动画中,关键动作也触发不了,该发生的剧情卡在半空,瞬间抽离沉浸感。

冷静拆解:Web能力边界的一次压力测试
这个工程的真正价值不在于让你在Chrome里重温老三部曲——毕竟原版游戏在Steam上常年打折,下载也用不了十分钟。它的价值在于向业界抛出一个问题:当WebGL 2就能支持完整的3A级FPS本地运行时,应用商店和原生客户端还有多少不可替代性?当然,目前这只是一个技术演示级别的成果,僵尸脸bug、移动端兼容性缺失都提醒着人们,浏览器还不是完美的通用游戏容器。但把Source引擎塞进JavaScript沙箱只用了三个人月,成本之低已经足以让那些按兆字节计流量的云游戏服务感到压力。保存状态、控制台这些功能更表明,移植不是阉割体验,而是重新封装。

有玩家调侃“这算不算半条命3”,答案显然不是。但一个能在任何现代浏览器里存活的老游戏,或许比任何续作都更能证明:经典内容可以通过Web原生的方式获得比平台锁定期更长的生命。下次有人问“你的电脑能跑半条命吗”,你可以回一句:“不用电脑,浏览器就行。”