Valve社が運営しているゲーム配信サービス「Steam 」は、UbuntuをはじめとするLinuxディストリビューションで動くゲームはもちろん、インディーズから有名タイトルまでさまざまなWindowsゲームを配信しています。今回はこのSteamをUbuntu 20.04 LTSにインストールする方法やWindowsゲームをUbuntu上でプレイする方法を紹介しましょう。
SteamとUbuntuとProton
「Steam」はValve社が運営しているゲーム配信サービスです。ユーザーはSteamクライアントをインストールしておけば、Steamにアップロードされたゲームを購入・インストールできます。さらにユーザー間のコミュニケーションや、実績システム、ゲーム実況など据え置き型ゲーム機に負けない機能を備えた、ゲームプラットフォームとなっています。2012年にはUbuntuのサポートが発表され(Ubuntu Weekly Topics 2012年7月20日号 ) 、2013年の2月にはUbuntu版クライアントが正式にリリースされました。
図1 Unity3Dで作られたWindowsゲームであるPupuya Gamesの「リトルウィッチノベタ(Little Witch Nobeta) 」も最近Steamでの先行配信が開始された
クライアントがUbuntuに対応したとはいえ、Steam上に公開されているすべてのゲームがUbuntuでプレイできるというわけではありません。個々のゲームの紹介ページではサポートOSの一覧が掲載されており、そこに「Steamのアイコン」が記載されているゲームがUbuntuを含むLinuxでのプレイをサポートしています[1] 。まずはSteamのサイトからLinux対応ゲームだけリストアップしたページ で、どんなゲームがあるか見ておくとよいでしょう。Linuxサポート開始当初はあまり主だったゲームはありませんでしたが、最近はSteam全体のゲーム数が増えてきたこともあって、3Dシューティングからレトロゲームに至るまでそれなりの数のゲームがLinuxでもプレイできます。しかも一部は日本語にも対応しています。
[1] 正確にはSteam OSをサポートしているゲームと言うべきかもしれません。Steam OS とはValve社自身が開発しているSteamクライアントインストール済みのDebianベースのディストリビューションです。Steam OSはもともと専用の「Steam Machine」という名前のハードウェア上で動かすことを想定していました。しかしながらSteam Machine自体はいつの間にか立ち消えとなってしまい、Steam OSのみが残された状態です。そのSteam OSもここ一年近くアップデートがありません。そもそもDebian 8(jessie)ベースであり、Debian 9(stretch)ベースのSteam OS 3.0はリリースされないままstretchの(LTSを除く)サポートが切れようとしています。もしSteam OSっぽいものが必要なら、今だとGamerOS あたりを試してみるのがいいのかもしれません。
動画1 リトルウィッチノベタは魔法を駆使してダンジョンを攻略するダークソウルライクなゲームという建前の、ひたすらノベタがかわいいゲーム
そうは言っても、やはり数も種類もWindows用ゲームのほうが圧倒的に多いです。そこでSteam PlayにおけるLinux上でのWindowsゲームのサポート が2018年にアナウンスされました。まず「Steam Play」は何かというと、これはどのプラットフォームのゲームであっても、一回購入すれば良いというシステムです。Windows/macOS/Linuxに対応したゲームに対して、一度購入すればWindowsにインストールしたSteamクライアントはもちろんのこと、他のプラットフォームにインストールしたクライアントでも追加の購入なく遊べます。それに対して2018年のアナウンスは、Linux上でWindowsゲームを購入した場合にLinux上でもそのままプレイできるようにした というものです。あくまでベータ版ではありますが、多くのWindowsゲームライブラリーがLinux上でも遊べる可能性がでてきたのです。
図2 セーブから復帰するとノベタは眠っている。かわいい
Linux上でのプレイを実現するために「Proton 」というソフトウェアが使われています。これはValveによるWineの改造版です。完全にWineから独立したわけではなく、Steamクライアントのリリースに合わせたリリースコントロールと、Steam固有のパッチを適用するためのプロジェクトのようで、その成果物は適宜Wineにフィードバックされています。Protonの最大の特徴はDirect3Dの対応のためにVulkanをサポートしていることです。これにより新しいハードウェアなら、Windowsでプレイするのと遜色ない速度・安定性を実現しています。
動画2 走っているうちにスタミナが切れると、何もないところでもこける。かわいい
ValveがProton経由でのプレイを確認しているものは「ホワイトリスト」として登録されています。ホワイトリストに登録されたゲームはSteam Play/Protonを有効化した時点でLinuxでも購入・プレイできるようになります。また、「 ホワイトリストに入っていない」ゲームもプレイする設定も用意されています。ホワイトリストにないものでも、Linuxで期待通り動作するゲームは多く存在するため、興味のあるゲームをいろいろ試して見ると良いでしょう。ちなみにProtonDB では、各ゲームの動作状況を確認できます[2] 。また、Steamには返金システムも存在します。購入したもののUbuntuではうまく動かなかった場合、原則として返金してもらうことが可能です。詳しい条件はSteamのサポートページ を参照してください。日本語なので安心です。
[2] ProtonDBではレポートごとに使用OSの情報が記載されています。BoilingSteam.comでは月ごとのレポートに対するOSのシェアの推移 を掲載しているのですが、2018年の10月ぐらいには4割以上あったUbuntuのシェアが、2019年の10月には3割以下にまで減っているのがわかります。それに対して増えたのが、ArchとArchベースのManjaro、それにUbuntuベースのPop!_OS
です。特にArch系はここ1年ぐらいでぐっと増えてきたようで、Arch系でまとめれば近いうちに「Ubuntu系」を超えるかもしれません(2020年6月のデータだとUbuntu+Pop!_OS
を超えていました) 。BoilingSteam.comでは、ローリングリリースというArchの仕組みが、新しいハードウェアやドライバーを必要とするゲーマーの要求に合致しているのではないかと推測しています。
図3 セーブ時に祈りを捧げているノベタかわいい
Steamクライアントのインストール
さて実際にSteamクライアントをインストールしてみましょう。Steamクライアントはプロプライエタリなバイナリとして提供されています。しかしながら、インストーラー自体はDebianパッケージとして公式リポジトリにも存在します。つまりSteamクライアントには2種類のインストールパッケージが存在します。
Steamで配布されている debファイル
Multiverseコンポーネントからインストールできるsteamパッケージ
「debファイル」版は常に最新のバージョンになります。2020年7月頭の時点では1.0.0.64が最新版です。それに対して「Multiverse」版はそのUbuntuがリリースされた時点でのもっとも新しいバージョンになります。Ubuntu 20.04 LTSであれば1.0.0.61です。単純に新しいバージョンを使いたいのであれば「debファイル」版を選ぶべきですが、Ubuntuにインストールするなら「Multiverse」版のほうが安全です。ただ、ここ1ヶ月ほどで(つまり10.0.61よりあとのリリースで)大きな修正が入っているようなので、このタイミングなら「debファイル」版のほうが良いかもしれません。
今回の記事では「debファイル」版を使うことにしましょう。Linux版のSteamの必要条件 は次のとおりです。
Pntium 4もしくはAMD Opteronの1GHz以上
amd64に対応していること
CMPXCHG16B命令に対応していること(/proc/cpuinfo
にcx16
があること)
SSE3命令に対応していること(/proc/cpuinfo
にpni
があること)
512MB以上のRAM
5GB以上のディスク容量
インターネットアクセス(CATV/DSL以上の速度推奨)
Ubuntuの最新LTS
64ビットカーネル
64ビットと32ビット双方のグラフィックドライバーとglibc
最新のグラフィックスドライバー
実際に必要なスペックはゲームに依存します。たとえば3Dアクセラレーションをそこまで必要としないゲームであれば、Intelの内蔵GPU搭載の数年前のノートPCでもそれなりに遊べます。
ちなみに本記事では以下の環境にインストールしています。
「debファイル」版のインストールはSteamのダウンロードサイト から「steam_latest.deb
」をダウンロードした上で、Ubuntuソフトウェアで開くか、次のコマンドを実行してください。
$ sudo apt install ./steam_latest.deb
「Multiverse」版のパッケージであれば、次を実行するだけです。
$ sudo apt install steam
Steamクライアントの起動
Steamクライアントはアクテビティから「steam」を検索することで起動できます。初回起動時は、実行環境を作成するためにSteamアップデーターがいくつかのデータをダウンロードします。
図4 初回起動時のダウンロードダイアログ
一度アップデーターが完了したら、ログイン画面が表示されますので、必要に応じてアカウントの作成やログインを行ってください。既存のアカウントでログインする場合、パスコードの入力が求められます。アカウントに紐付けられたメールアドレスでメールを受信できるようにしておきましょう。
図5 ログイン画面
初回起動時は英語インターフェースになっています。日本語インターフェースに変更したい場合は、メニューの左上にある「Steam」から「Settings」を選び、「 Interface」にて言語を変更した上でSteamクライアントを再起動してください。
図6 一番上の項目を「日本語(Japanese) 」に変更する
ちなみにSteamクライアントの終了は右上の「Steam」からメニューの一番下にある「Quit/終了」を選びます。単純にウィンドウの閉じるボタンを押しただけだと終了しないので注意してください。
図7 再起動すると無事に日本語化された
Protonの有効化
お待ちかねのProtonの有効化です。といってもUIの説明どおりに設定し再起動するだけです。まずはSteamメニューの「設定」から「アカウント」にある「ベータへの参加」の「変更」ボタンをクリックします。
図8 アカウントメニュー
Protonはまだベータ版のクライアントが必要なため、ベータ版クライアントに更新して再起動する必要があります。
図9 ベータへの参加ダイアログ
上記のダイアログから「ベータへの参加」が「Steam Beta Update」になっていることを確認してOKボタンを押してください。初回起動時と同様にクライアントのダウンロードが行われるはずです。
次に再び設定から今度は「Steam Play」を選択します。
図10 Steam Playメニュー
上記画像のように「Steam Play Settings」の「Enable Steam Play for supported titles」にチェックを入れると、Valve側が確認したゲームはProtonが使われるようになります。さらに他のWindowsゲームもプレイしたいので「他のすべてのタイトルでSteam Playを有効化」をチェックしておきましょう。もちろん動くかどうかは運次第ではあるのですが。
ちなみに使うProtonのバージョンも指定できます。Protonのバージョンを変えることで動く場合もあるため、どうしても動かなかったときはProtonDBの情報を参考にバージョンを切り替えてみるのも良いでしょう。
これでWindwosゲームをプレイできるようになりました!
図11 Linux版のSteamクライアントからでも、ライブラリのWindowsゲームに「プレイ」ボタンが表示されるようになった
図12 初回実行時はこのように「互換ツールを使っている」旨が通知される
図13 無事にWindowsゲームが起動した!
ちなみに「Big Picture Mode」による全画面表示や、各種ゲームコントローラーにも対応しています。コントローラーに関してはSteamクライアントにudevルールが付属していて、新しいクライアントならインストールした時点でルールが反映されるため、あとは接続するだけです。少なくとも手元のPlayStation 4用のDUALSHOCK 4コントローラーなら、USB経由で問題なく認識しました。
図14 黒猫をかわいがるノベタかわいい
ProtonDBには「ホワイトリスト済みのゲームリスト 」があります。まずはそこからWindowsゲームを選んでみると良いかもしれません。また、ProtonDBのトップページの右下にある「ホワイトリストにはないけれども、きちんと動くという報告が多いゲーム(レートがプラチナなゲーム) 」のリストもありますので、そちらも参考になることでしょう。
お金をかけることなく(返金処理などを考えずに)動作を確認したいのであれば、Steamのサイトから無料のゲーム (大抵は基本無料で本格的にプレイするならDLCの購入が必要なゲーム)や体験版 を探してきて試すという方法もあります。無事に動いたWindowsゲームがあれば、ぜひProtonDBにも報告してください。
次回 はSteamをLXDコンテナの中で動かす方法を紹介します。
動画3 操作に慣れないうちは殴ったほうがはやかったりする。杖の三振りぐらいでバランスを崩すノベタかわいい
動画4 空中で杖を振ると対空できる謎理論。物理で空を飛ぶ魔法少女かわいい