初稿:2018年8月23日
更新:2018年9月24日
Valve が8月21日、Codeweavers と共同開発した Windows ゲームを動かせる互換レイヤーを発表した。この互換レイヤー 「Proton (プロトン)」は Linux ユーザならお馴染みの Wine を改造したもののようだ。
概要
Proton はかなりの改造を施されており、いろんなところからかき集めたプログラムや技術が詰め込まれている。
Proton には DirectX API コールを Vulkan に変換するレイヤー(DXVK)が組み込まれているため、DirectX API で作られたゲームでも割と軽快に動作する。しかし使ってみた感じだとやはり、OpenGL や Vulkan が組み込まれたゲームが Windows 上で動かしたときと違わぬくらい軽快に動作する。

また OpenVR への対応や ゲームのフルスクリーンモードの取り回しを改善、Steam 対応のコントローラのサポートも改善している。
オープンソースとして GitHub に公開されているので誰でも中身を見ることが出来る。ベータの段階でこんなにいろんなプログラムを Steam に統合できたことに驚いたが、2年の開発期間を要したそうだ。
まだ公開初期のテスト段階ではあるが、下のリンクからテストに通ったゲームのリストが載っている。
Steam for Linux – Introducing a new version of Steam Play
使い方


注意すべきは最新のグラフィックドライバをインストールしておく必要があることだ。ドライバが古いとあまり良い結果は得られないだろう。 Ubuntu などが標準のリポジトリに置いているドライバは6ヶ月〜1年くらい古いため、PPA を利用する必要がある。
あとは各ゲームのページにアクセスしてダウンロードするだけ。このようにダウンロードした場合でも Linux を使用しているとしてカウントされるのでゲーム開発者の目にも止まるだろう。
ちゃんとサポートできるのか?
Wine 自体が永久にベータ版みたいなところがあり、昨日動いていたゲームが今日突然動かなくなるということがある。これはゲーム側のアップデートによって起こることもあるし、Wine のアップデートで起こることもある。そしていつ修正されるかわからない。数カ月後かもしれないし数年後かもしれない。
Codeweavers である程度このビジネスモデルは成功?しているかもしれないが、安易に動作可能リストに突っ込んでサポートしきれるのかが不安だ。 Ga○jin みたいに Linux に対応してますよー って言いつつパフォーマンスがプレイに影響するほどひどくなっても放置したまま何ヶ月も無言を貫き通したりしないだろうか。War Thunder の Linux コミュニティはもともと小規模ではあったが、この徹底した無視でだいぶ疲弊した感が否めない。(後に Vulkan 版がこっそりと試せるようになって少し人が戻ってきたが。)
結果的に Linux コミュニティから人が離れることになってしまわないだろうか。という一抹の不安がある。
また複雑な DRM やチート対策を施されたゲームは動作しない可能性が高いため、どれだけのメジャータイトルをサポートできるのかがわからないのが非常に気がかりだ。フォートナイトの運営のようにチート対策が厳しいゲームだと、Wineを使っていたユーザのアカウントがいきなり停止される事件も起こった。ゲーム制作スタジオとの連帯も不可欠だろう。
macOS 版はリリースされるのか
これは望みが薄いと思う。Apple は Metal という独自の API の普及に拘っていて Vulkan API をサポートする気はサラサラないようだ。 OpenGL も バージョン 3 でサポートを打ち切ってしまい、ユーザや開発者が不便を被ろうが放置している。 Proton にとって Vulkan API は最も重要なコンポーネントだ。 Apple がこれに対応しない限り macOS で Proton を使える日は来ないだろう。
追記:コメントしてくださった方の情報、 macOS でも Wine 経由で Vulkan を動かす方法があるようだ。おそらく Codeweavers が開発している MoltenVK のことだろうと思うが、自分で試したことがないのでここでは割愛させていただく。
Vulkan API 普及までのつなぎか
ネガティブなことを書いてしまったが Valve は Wine の開発チームと協力し、 DXVK の開発者を雇ったりしている。なので Proton で培った技術は Wine にもバックポートされている。こうやって開発元のプロジェクトにきちんとフィードバックしていくことはなかなか難しく、あまり多くの企業がやっていないことだ。
Valve は Linux や OSS コミュニティに深い理解がある。そしてそれが行動にあらわれている。彼らがリーダーシップをとって開発を推し進めているのは素晴らしいことだと思う。
Wine コミュニティは非常に活発で多い時では月に3回もマイナーリリースをするときもあり、 VirtualBox や 一部のオンラインゲームにも組み込まれていたりする。もっと光を当てられるべきプロジェクトだ。 こういうことをやってしまうと、互換レイヤー任せになってしまい Linux へ対応するタイトルが減るんじゃないかと心配している人もチラホラいるがその心配は最もだと思う。
しかし現状のゲーム開発情勢だと Linux に移植するのは大変な労力だ。 少し前までは Windows 以外の開発は OpenGL 一択でよかったが、macOS が OpenGL のサポートを事実上やめたことにより、古い OpenGL 3 を使っている作品もある。 そして Linux よりも macOS への対応を優先するゲーム会社も多い。このため非常に低質な移植が多いのだ。Unity で作られたものや一部の優秀なポート専門会社でつくられたもの意外は Wine で動かしたほうがマシ、という有様。
Valve はマルチプラットフォーム API である Vulkan を積極的に支援しているがまだ発展途上だし、低レベル API での開発自体高い技術を要する。しかし、協賛企業を見ればわかるが業界スタンダードな API になるのではないかと予想できる。そうなったら Windows でしかゲームが動かないという問題は7〜8割方消える。
Valve は今はとにかく Linux でゲームをやるユーザを増やしたいのだろう。ユーザが増えることでゲームデベロッパーは Linux を無視できなくなってくるし、 Vulkan API の普及の推進にもつながる。
Valveがどこまで力を入れてくれるかわからないがこのプロジェクトは非常に魅力的なので当ブログは応援しています。
― 了 ―
コメント
一応MacのwineでもVulkan動かす方法はあるらしい
コメントありがとうございます。記事に反映させていただきます。