記事のきっかけ
ここ最近YoutubeなどのSNSでネットサーフィンをしていたところ、気になる内容が目に入った。
なんと、近年一部ゲーマーの間で Linuxでゲームをプレイする波が来ていると....??
色々調べてみるとゲーム好きとしては勿論、IT業界的にも面白いかな?と思う内容だったので記事として残したいと思う。
ゲームをプレイするOSの変化の始まり
今までPCでゲームをプレイするとなったらほとんどの人はWindowsを選ぶと思う。
そんな中2022年2月25日にアメリカ、カナダ、EU地域でAdvanced Micro Devices (AMD) 社と共同で開発された「Steam Deck」という携帯ゲーム機が発売された。(日本では2022年12月17日に発売)
本機器はPCゲームの購入、ダウンロード、プレイ管理ができるオンラインプラットフォーム「Steam」で購入したゲームを手軽に外出先でもプレイすることを目的とした携帯ゲーミングPC。感覚としては「Nintendo Switch」に近いものと考えてもらったほうがわかりやすいと思う。
ちなみに「Steam Deck」にはValve社が開発したLinuxベースの独自OS「SteamOS」というものが搭載されている。
だがよく皆さんがWindowsでプレイするゲームタイトルのほとんどは「DirectX(MicrosoftのグラフィックスAPI)」を使用しており、Linuxではこれをサポートしていないため単純なLinuxベースのOSでは肝心なゲームの描画処理が行えない。
だがこのOSに使われているあるものが問題を解消しておりOSのトレンドを変えるきっかけになっているため次の内容で記述していく。
Linuxでゲームをプレイできるようにする技術
「SteamOS」にはLinuxベースのOSである以外にWineベースの互換レイヤーである「Proton」というものが使われている。
これ一体なんなのかというと簡単にいえば「DirectX」を使用したプログラムをLinux側が処理を読み取れるように「DXVK」、「VKD3D」というものを使用することで処理の内容をリアルタイムで翻訳しLinuxの「Vulkan API」に変換をしている。
また「Proton」はWindowsのスレッド管理を最適化するために「fsync」 や 「esync」 という技術を使用しており、これによりゲームプレイ時のパフォーマンスが向上する。
※補足
元々「Proton」は2018年にリリースされた「Steam Play」をというLinuxユーザー向けにValve社が提供したWindows専用ゲームをLinux上でプレイできるようにするためのクライアント機能の中核となるものとして使用された互換レイヤー。
なお「Proton」には対応するタイトル、しないタイトルが存在し「Steam」内の「ProtonDB」というデータベースサイトで確認ができる。
しかし基本的にシングルプレイのタイトルは動作するそうだ。
Protonのメリット
Protonについて色々説明してきたが、その上でProtonを使用するメリットは以下3点となる。
①WindowsのゲームがLinux環境でプレイできる
事実上ゲームが無料で使用できるLinux環境でプレイできるのであればわざわざ数万もするWindowsを購入しなくてもよく、人によっては自作PCのスペック向上のために資金を回すことも可能となる。
また説明でも述べた通りProtonを使用することでゲームのパフォーマンスが向上するのもメリットといえる。
②Steam公式サポートがあり、アップデートが継続的に提供される
正直公式側からのサポートがあるのは使用者としてはかなり安心できる他、投稿日現在でもSteamからアップデートが行われているためその点ではかなりメリットがあるかと思う。
③Linux自体のメリットの恩恵を受けやすい
投稿者はあまりLinuxを触った経験はないが、調べてみるとLinuxはドライバの設定の自由度が高く、Windowsのバックグラウンドアプリや予期しない更新がないためLinux環境でプレイすることでゲームプレイが安定するのは良い点かと思う。
Protonのデメリット
そういったメリットがある中、もちろんデメリットも存在する。
ゲーム内のアンチチートシステムに未対応
「Steam Deck」の未対応ゲームでもそうだが対戦ゲーム系のタイトルには各社独自のアンチチートシステム(「Easy Anti-Cheat」、「RICOCHET Anti-Cheat」など)が搭載されている。そういったタイトルに対してはどうしても動作が上手くいっていないこともあり、現状動作が確認できているものはシングルプレイのゲームタイトルのみとなっている。
ITの影響
ちなみにIT業界でこの「Proton」を使用した実例があるかというと、調べた限りでは実例はないように見える。そもそもの仕様上ゲームに特化ということもあり難しいのかと思う。
しかしこのWindows側でしか使用できないAPIを翻訳しLinux側で使えるようにする発想は面白いため、今後そういった製品が登場しIT業界でも使用した実例が出る可能性はあるのではないかと思う。
あとがき
今回業務上というよりは実際に気になった内容を記事としてまとめたが、ゲーム好きの私にとっては書いてて楽しい内容だったため今後は業務上で学んだことに加えこういった内容の記事も投稿し共有できたらと思う。
そして今回紹介した「Proton」は「Steam」をインストールしていれば誰でも使用が出来るため気になった人は是非使ってみてほしいと思う。
PS.投稿主はTGS2022にて実機を触りましたが、非常に動作も快適だったのでゲームプレイにおいてはこちらもおススメです!
参考記事&参考サイト
・LinuxのWindowsゲーム互換性が90%突破した件
・Steam Deck
・SteamOS
・Proton-Wikipedia-
・Steam Play「Proton」とは?WindowsゲームをLinuxで動かす互換レイヤーを解説
・UbuntuでSteamゲームを快適にプレイ! ProtonでWindowsゲームも動作