你正在刷 HN,随手点开一个标题叫「Half-Life 2 in a Browser」的链接。浏览器选项卡上加载图标转了几秒。没有启动 Steam,没有下载 10GB 的安装包,没有等待着色器编译。然后屏幕一亮 —— G-Man 那张永远半笑不笑的脸出现了,你已经在 17 号城市了。
这一幕发生在 2026 年 6 月 25 日。一个叫 slqnt 的高中生发布了 hl2.slqnt.dev,一款在浏览器里直接运行《半条命2》的网页应用。帖子在 Hacker News 上拿了 682 points、272 条评论,直接冲进当日前十。
WebAssembly 啃下了 Source 引擎
这不是什么云游戏串流。你的浏览器真的在本地运行 Source 引擎 —— 2004 年 Valve 用 C++ 写的那套老骨头,被 WebAssembly 一口吞下,在 Chrome 的沙箱里活了过来。
技术栈的核心链路是:Source 引擎 → ToGLES(OpenGL ES 渲染后端) → Emscripten(C++ 到 WebAssembly 编译器) → WebGL 2。slqnt 几乎没碰渲染管线 —— 真正替他打下地基的,是另一位开发者 weliveinhell 此前完成的《传送门》(Portal)浏览器移植。那个项目又 fork 自社区修补过的 2018 年《军团要塞2》(Team Fortress 2)源码泄露版本。
换句话说,这是一条由泄露代码、开源修补和高中生好奇心共同铺出来的技术通路。
踩坑三个月:面瘫 G-Man 和不咬人的猎头蟹
渲染不是最难的。真正让人头秃的是资产管线。《半条命2》用 Valve 的 VPK 打包格式,但 slqnt 手头这版引擎不支持周年纪念版的资源文件。他不得不切到 Steam 的 steam_legacy 分支,把所有 VPK 拆出来,再按地图切成一个个 .data 文件,让浏览器按需加载 —— 要是你一次性把整个游戏塞进 WebAssembly 的内存空间,Chrome 大概会直接爆炸。
面部的表情系统,当年 Valve 当技术卖点吹过 —— G-Man 说话时嘴角微妙的抽动、Alyx 眼神里的担忧 —— 在这个移植版里全部停用。因为一开就崩。所以你会看到一个面瘫的 G-Man 对着你念开场独白,这本身就有某种后现代荒诞感。
其他 bug 细数起来活像一期游戏 QA 灾难报告:存档系统要重接线到 Emscripten 的虚拟文件系统;电池和医疗包捡不起来;Alyx 递过来的重力枪直接消失在你的物品栏之外;NPC 莫名其妙倒地暴毙;猎头蟹造成零伤害(大概是史上最友善的猎头蟹);水面漆黑得像石油。最妙的一个细节:蹲伏被改到了 C 键,因为按 Ctrl 会触发浏览器的快捷键。
帧率、兼容性和「Chrome 优先」
性能方面,在 Chrome 上稳定跑 60+ FPS。Firefox 也能加载,但性能更差且部分功能不可用 —— 主要是因为 Firefox 缺少 FileSystemFileHandle 的锁定模式,以及对 File System Access API 中 showDirectoryPicker() 的负向标准立场。HN 评论区有用户吐槽「又在浏览器里看到『推荐用 Chrome』的提示了」,这大概是 2026 年依然去不掉的互联网胎记。
游戏保存的新答案?
HN 讨论里用户 modeless 列了一串历史参照:《雷神之锤3》的浏览器版、《虚幻竞技场》通过 DOS Zone 运行、noclip.website 用更精确的渲染复刻了上百个老游戏的关卡(包括《半条命2》,而且渲染比这个移植版更准确 —— slqnt 的版本缺失了不少着色器,角色连眼珠子都没有)。还有 Ultima Online 的浏览器端,甚至得到了官方服务器的认可。
这条线的脉络很清楚:把老游戏搬进浏览器,正在从极客炫技变成一种 文化遗产保存运动。浏览器是当代最普及的通用运行时,只要 Web 标准在,这些游戏就能持续被打开、被体验、被研究 —— 不需要担心 Windows 更新、显卡驱动、或者二十年后的硬件兼容性。
那个绕不开的问题:Valve 知道吗?
实话说,没人确定。这个移植依赖泄露的引擎代码和游戏原始资产,法律上是一片比 17 号运河还深的灰区。Valve 历史上对 mod 社区相当宽容,但一个把完整游戏搬进浏览器、不需要 Steam 就能运行的项目,触碰的边界线要比皮肤 mod 或者地图工坊敏感得多。
HN 上普遍的看法是:趁还能打开,赶紧去试试。这不单是因为 Valve 随时可能出手,更因为这种靠泄露代码、社区修补和个人执念撑起来的奇迹,本质上就是一个沙堡 —— 美,但不经浪。
不过话说回来,如果一个高中生用三个月就能让 Source 引擎在浏览器里跑起来,那你我小时候在 Steam 上花几十个小时玩的那些游戏,它们活到下一个二十年的概率,恐怕比我们原先以为的要大得多。
参考链接:
本文的素材来自公开信息和社区讨论。如果你对这个话题有更深入的一手经验,欢迎指出文中的不足。