初稿:2018年8月23日
更新:2018年9月24日
PCゲームプラットフォーム「Steam」でおなじみのValve社が8月21日、Codeweavers社と共同開発したWindows専用ゲームを動かせる互換レイヤーを発表した。この互換レイヤー 「Proton (プロトン)」はLinuxユーザなら誰もが知っているWineを改造したもののようだ。
概要
Protonはかなりの改造を施されており、いろんなところからかき集めたプログラムや技術が詰め込まれている。
ProtonにはDirectX APIコールをリアルタイムでVulkanのそれに変換するレイヤー(DXVK)が組み込まれているため、DirectX APIで作られたゲームでも割と軽快に動作する。
もともとVulkanとDirectXには機能的にそこまで大きな違いがないためだろう。相互に移植するのも難しくはないと言われている。

またOpenVRへの対応や ゲームのフルスクリーンモードの取り回しを改善、Steam対応のコントローラのサポートも改善している。
ProtonはオープンソースとしてGitHubに公開されているので誰でも中身を見ることが出来る。ベータの段階でこんなにいろんなプログラムをSteamに統合できたことに驚いたが、2年の開発期間を要したそうだ。
まだ公開初期のテスト段階ではあるが下のリンクからテストに通ったゲームのリストが載っている。
Steam for Linux – Introducing a new version of Steam Play
使い方
使い方はごくごく簡単で左上のメニューから「設定」>>「Steam Play」で設定を行う。
「サポートされたタイトルでSteam Playを有効化」と「その他のすべてのタイトルでSteam Playを有効化」にチェックを入れ「他のタイトルに使用するツール:」で使いたいProtonのバージョンを選ぶ。

注意すべきは最新のグラフィックドライバをインストールしておく必要があることだ。ドライバが古いとあまり良い結果は得られないだろう。Ubuntuなどが標準のリポジトリに置いているドライバは6ヶ月〜1年くらい古いため、PPAを利用する必要がある。
あとは各ゲームのページにアクセスしてダウンロードするだけだ。このようにダウンロードした場合でもLinuxを使用しているとしてカウントされるのでゲーム開発者の目にも止まるだろう。
ちゃんとサポートできるのか?
Wine自体が永久にベータ版みたいなところがあり、昨日動いていたゲームが今日突然動かなくなるということがある。これはゲーム側のアップデートによって起こることもあるし、Wineのアップデートで起こることもある。そしていつ修正されるかわからない。数カ月後かもしれないし数年後かもしれない。
Codeweaversである程度このビジネスモデルは成功?しているかもしれないが、安易に動作可能リストに突っ込んでサポートしきれるのかが不安だ。Ga○jinみたいにLinuxに対応してますよーっと言いつつパフォーマンスがプレイに影響するほどひどくなっても放置したまま何ヶ月も無言を貫き通したりしないだろうか。WarThunderの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一択でよかったがAppleがOpenGLのサポートを事実上やめたことにより、古いOpenGL 3を使っている作品もある。 そしてLinuxよりもmacOSへの対応を優先するゲーム会社も多い。このため非常に低品質な移植が多い。Unityで作られたものや一部の優秀なポート専門会社でつくられたもの意外はWineで動かしたほうがマシ、という有様。
ValveはマルチプラットフォームAPIであるVulkanを積極的に支援しているがまだ発展途上である。しかも低レベルAPIでの開発自体高い技術を要する。しかし協賛企業を見ればわかるが業界スタンダードなAPIになるのではないかと予想できる。そうなったらWindowsでしかゲームが動かないという問題は7〜8割方消える。
Valveは今はとにかくLinuxでゲームをやるユーザを増やしたいのだろう。ユーザが増えることでゲームデベロッパーはLinuxを無視できなくなってくるしVulkan APIの普及の推進にもつながる。
Valveがどこまで力を入れてくれるかわからないがこのプロジェクトは非常に魅力的なので当ブログは応援しています。
― 了 ―

コメント
一応MacのwineでもVulkan動かす方法はあるらしい
コメントありがとうございます。記事に反映させていただきます。
Steam OSで動くタイトルを増やしたいってことなんだろうな