Proton 在 Steam 平台上的工作原理

导读 如果您有Steam Deck,您可能会惊讶于它能运行如此多的游戏。它不仅是掌上电脑,而且还是运行 Linux 的掌上电脑。尽管该操作系统在运行视

如果您有Steam Deck,您可能会惊讶于它能运行如此多的游戏。它不仅是掌上电脑,而且还是运行 Linux 的掌上电脑。尽管该操作系统在运行视频游戏方面声誉不佳,但赛博朋克:2077和侠盗猎车手:V等 AAA 游戏在 Steam Deck 上运行得非常好。这要归功于 Proton,这是由 Valve 和 CodeWeavers 开发的兼容层。

什么是质子?它是如何工作的?

Steam-Deck-UI-1

Proton 实际上比 Steam Deck 早几年,Steam Deck 于 2018 年 8 月首次发布。当时,Valve 表示“目前没有 Linux 版本的 Windows 游戏现在可以直接从 Linux Steam 客户端安装和运行,完成具有原生 Steamworks 和 OpenVR 支持。”

在 Proton 之前,Linux 上的游戏玩家通常需要为他们的系统提供本地游戏端口,或者被迫依赖第三方兼容层,例如 Wine。Wine 工作得很好,但通常需要大量调整才能让事情完美运行,像DOOM (2016)这样的游戏需要一些工作才能玩。

这就是质子的用武之地。它消除了最终用户方面的任何工作的需要。这个想法是,你可以安装游戏并像本地端口一样玩它,而最终用户不需要知道引擎盖下发生了什么。

Proton 与修改版的 Wine 结合使用。Wine 作为一个层将 Windows API 调用转换为 POSIX(便携式操作系统接口)调用,同时还重新创建 Windows 目录结构并提供系统服务的替代实现。Wine 不使用任何仿真或虚拟化来执行 Windows 二进制文件。

Proton 对游戏方程式至关重要的另一部分是它转换 Direct3D API 调用的能力。它包括 DXVK,一个基于 Vulkan 的 Direct3D 9、10 和 11 转换层,支持通过 VKD3D-Proton 提供的 Direct3D 12,VKD3D 是 Wine 的一个分支。