「Linuxでゲームをする」とは【Linuxゲーミング】#1
2022年03月04日 Tweet
作成日: 2022-03-04, 更新日: 2022-03-07
今月でメインOSをLinuxにして4年が経ちます管理人です。
今回の記事では「Linuxでゲームをする」とはどういうことか。Linuxでゲームをする上での基本的な話をLinuxをメインOSとして4年間使っている当事者の目線でお伝えしたいと思います。Linuxでゲームをしている人(管理人)がどんな感じにやってるのか知りたいという人におすすめです。
サブタイトルはRedditの「GNU/Linux Gaming on Reddit」というコミュニティのサブレディット(板)名「r/linux_gaming」にあやかり「Linuxゲーミング」と題し、今後もLinux界隈のゲーム情報を発信していく予定です。
記事が予想外に長くなってしまったのでお暇なときにご覧ください。
管理人の環境
初めにこの記事を書いている管理人の情報を参考までに書いておきます。
PCスペック
・OS Xubuntu(Ubuntu) 20.04.3 LTS
・CPU Intel i7-10700K
・GPU NVIDIA GeForce RTX 3070(4GB)
・RAM 64GB
2018年の3月にWindowsからLinuxに移り、今年で4年目となります。WindowsからLinuxに移った理由はMinecraftのサーバを建てたかったのと当時Windows 7 Home Premiumの環境ではRAMが16GBまでしか認識しない制約があったためです。
Windowsは稀にMicrosoft Officeを使用するときとLinuxでは動かないゲームをどうしてもやりたいときに使っています。
スペックを見ていただければわかる通りそれなりにゲームをやる前提の構成で、初自作PCということもあり張り切っています。
(メモリが多いのはMinecraftのサーバを建てるためです。)
Linuxとは
本題に入る前に「そもそもLinuxとはなんじゃ」という方のために軽く解説します。Linux、Ubuntuと聞いて「知っている!」という方はこの項を飛ばして大丈夫です。
管理人が使っているOSはXubuntuというLinuxの一種ですが、他にもUbuntuやCentOS、Arch Linux、その他数多くのOSが存在し、これらはまとめてLinuxディストリビューションと呼ばれます。
LinuxディストリビューションはLinuxカーネルというOSのベースに各開発者が独自の拡張を加えて作られます。多くの種類があるのはOSの開発者毎に理念が異なるためで、軽量な動作を目指すOSや一般ユーザが使いやすいように作られたOS、有料でサポートを強化したOSなど目的毎に種類があります。既にあるOSから更に派生することもありLinuxディストリビューションは多くの枝分かれができています。
Linuxディストリビューション = Linuxカーネル(ベース部分) + 各OS開発者の拡張
「Linux」というと大体「Linuxカーネル」か「Linuxディストリビューション」のどちらかを示しています。
Linuxカーネルはプログラムのソースコード(中身)を公開する「オープンソース」の形式を取っており、誰でもソースコードを見ることができます。(https://github.com/torvalds/linux)
その性質を受け継いでか、Linux界隈では「オープンソース」「OSS」「FLOSS」といったワードを頻繁に目にします。オープンソースの開発方法は様々ですが同じ志を持つ開発者同士でコミュニティが作られより良いソフトウェアを目指して開発が進められます。
Linuxディストリビューション毎の違い
使用者目線でのLinuxディストリビューション毎の大きな違いはデスクトップの見た目とソフトウェアの管理方法です。
デスクトップの見た目の違いは細かい点を除くとWindows XP、7、10の様な違いです。タスクバーやウィンドウの枠の描画、ファイルを扱うエクスプローラのソフトウェアがOSによって違うためです。OSによってはグラフィカル(GUI)ではなく文字列の表示(CUI)で操作をするものもあります。
ソフトウェアの管理方法はOSが提供するパッケージマネージャを使用します。パッケージマネージャはWindowsでいうところのMicrosoft Storeに近いものです。OS毎に異なるパッケージマネージャが使われている訳ではなくあるOSから派生したOSは同じパッケージマネージャを使っている場合があります。例えば管理人が使っているXubuntuはUbuntuの派生OSであり、UbuntuはDebianの派生OSですがこの3つは同じ「apt」と呼ばれるパッケージマネージャを使っています。
OSを開発しているコミュニティが管理しているパッケージ(ソフトウェア)が置かれる場所は「公式リポジトリ」と呼ばれます。
Linuxで動くゲーム
それでは本題に入りましょう。まずLinuxではどういったゲームが動くのか考えてみます。
Linuxで動くゲームは大きく次の3つに分けられます。
・Linuxネイティブで動作するゲーム
・ブラウザで動作するゲーム
・Javaなどで動作するゲーム
・Windowsで動作するゲーム
既にツッコミどころがあると思いますが順に解説していきます。
Linuxネイティブで動作するゲーム
一番基本となるのが「Linuxネイティブで動作するゲーム」です。ここでいう「ネイティブ」とはその環境で動くように作られたソフトウェアのことです。母国語で会話する人を「ネイティブスピーカー」と呼びますがこのネイティブと似た意味です。
Windowsのネイティブなソフトウェアの代表例は「.exe」です。「.exe」はWindows用の実行ファイルの拡張子ですが、当然Windows用に作られているためmacOSやLinuxでは動かせません。
Linuxのネイティブなソフトウェアは特に決まった拡張子がありません。Linuxはファイルの中身によって開き方を区別するので実行ファイルの拡張子も決まっていません。
一般的に決まった拡張子はありませんが、様々なLinuxディストリビューションで動くように作られた「AppImage」という形式を使ったソフトウェアは便宜上「.AppImage」という拡張子が付きます。
Linuxネイティブで動作するゲームであれば古すぎたりアップデートがされていなかったりしない限り大体が動きます。Linuxネイティブで動くゲームの多くは公式リポジトリかネット上、またはSteam(後述)から手に入ります。
公式リポジトリから入るゲームはWindowsに最初から入ってるようなシンプルなゲームから(管理人から見ると)マイナーなゲームが多いと思います。(要は「フリーの洋ゲー」の様なタイトルがほとんどだと思いますがあまり試したことはありません。)
SteamからもLinuxネイティブで動作するゲームが手に入ります。ゲーム配信に登場する様なタイトルも中にはありますが、そういったゲームは大抵の場合Linuxと共にWindowsとmacOSにも対応しています。
管理人は「Linux上での動作しか考えられていないゲーム」をほとんど遊ばないため良い例が思いつきませんが、Linuxネイティブで動作するゲームは次のようなものがあります。
・GNOME マインスイーパー
・SuperTuxKart
・FlightGear
・Left 4 Dead 2
・ARK: Survival Evolved
ブラウザで動作するゲーム
ブラウザで動作するゲームは触れたことがある方も多いのではないでしょうか。Linuxでもブラウザは動作するためWebサイトで遊べるゲームは遊べます。
ブラウザゲームは一人で遊ぶゲームもありますが、その性質上オンラインゲームも多いため気軽に対戦ゲームを遊べます。
ブラウザで動作するゲームは次のようなものがあります。
・ゴッドフィールド (https://godfield.net/)
・ピクトセンス (https://pictsense.com/)
・surviv.io (https://surviv.io/)
・寿司打 (http://typingx0.net/sushida/)
ちなみにLinuxで動くブラウザは次のようなものがあります。
・Chrome
・Firefox
・Microsoft Edge
・Opera
聞き馴染みのあるブラウザもあるのではないでしょうか。LinuxでもWindowsと変わらず最新のブラウザが提供されているのでWeb上で動くツール、ゲームは重宝します。ブラウザはWebカメラやMIDI、ゲームパッドを扱うことも出来るのでプログラミングをする管理人としても注目のツールです。
Javaなどで動作するゲーム
Linuxで動くゲームとしてJavaなどのマルチプラットフォーム(複数OS)で動くシステムで作られたゲームがあります。しかしJavaで作られたゲームは滅多に見かけません(ツールがJavaで作られていることはあります)。
昔はWebサイト上でJavaが動いていましたが今は動かないという点と、最近の開発環境はマルチプラットフォーム対応をしているため開発者がわざわざJavaを使うというシチュエーションが少ないためと思われます。
Javaで動作するゲームは次のようなものがあります。
・Minecraft(Java版)
ただしMinecraftのランチャー(起動画面)は各OSに対応したものが使われています。
Windowsで動作するゲーム
さて、一番気になっている人も多いのではないでしょうか。先ほど「Windows用の実行ファイルはLinuxでは動かせない」と言いました。しかし、そのまま動かすことは不可能でも動かせるようにすることは可能です。
これがこの記事を書いた理由の一つであり今後「Linuxゲーミング」シリーズで取り上げることも多くなるであろう題材です。
これ以降の項で詳しく解説していきますが、先にLinuxで動作可能なWindowsゲームを挙げておきます。
Linuxで動作可能なWindowsゲームは次のようなものがあります。
・Apex Legends (3月2日に動くようになりました!)
・Human: Fall Flat
・Phasmophobia
・Katamari Damacy REROLL(塊魂)
・大神 絶景版
Steamを利用する
皆さんはSteamをご存知でしょうか。SteamはValveが開発するゲームプラットフォームで多くのゲームがSteamを通して入手できます。ゲームの購入だけでなくコミュニティ機能やフレンド機能などもありますが今回はゲーム機能に絞って解説を行います。
なぜSteamが出てくるかというとこういった多機能なゲームプラットフォームの中で(多分)唯一Linuxをサポートしているためです。他にもOriginやEpic Games Storeといったゲームプラットフォームがありますが大半がWindows限定です(一部macOSをサポートしているものもあります)。
SteamではWindowsゲーム以外にもmacOSやLinuxに対応したゲームを探すことができます。Linuxに対応しているゲームは「SteamOS + Linux」と書かれています。先ほど挙げた「Left 4 Dead 2」と「ARK: Survival Evolved」もSteamで入手できるLinux対応のゲームです。
SteamはLinuxをただサポートしているだけでなくかなり手厚いサポートがあります。その一番の特徴が「Proton」というシステムです。
WineとProton
Protonというシステムは「Wine」というシステムを基に作られているためまず初めにWineの解説を行います。
Wineとは
まずWineとは簡単に言うとLinuxでWindowsのプログラムを動かすツールです。Wineで動かないプログラムもありますが多くのプログラムが動作します。単純なプログラム(テキストエディタ、録音ツール、古いゲームなど)は多くが動く傾向にあり、複雑なプログラム(3Dゲーム、USBを制御するツールなど)は動かない傾向にあります。
管理人がWineでよく動かしているソフトウェアは以下のようなものです。
・Domino (MIDI作曲ソフト)
・K-Shoot MANIA (音楽ゲーム)
・AviUtl (動画編集ソフト、一部バグあり)
Wineを使っている感覚としては「基本的には問題なく動作する。動作しないものはとことん動作しない。少しバグがあることも多い。」といった感じです。軽く手を加える(足りていないファイルをインストールするなど)だけで動作するプログラムもありますが、動作しても微妙なプログラムもあります(例:iTunes)。
ゲームもある程度動作しますがフリーゲームのようにexeファイルが直接配布されているものではなく、ゲームプラットフォームをインストールしないといけないゲームはそもそもゲームプラットフォームのインストールが難しい場合もあります。
Wineは「Linux上でWindowsを再現する」というより「Windowsのプログラムが呼び出す命令をLinux用に変換するツール」と見るのが正しいです。
前者はエミュレータの特徴になりますが、Wineは後者のような動きをする「互換レイヤー」と呼ばれています。(プログラムの上でプログラムを動かすのではなくLinux自体がプログラムを動かすイメージ)
Protonとは
ProtonはValve社がWineに手を加えゲーム向けに調整を行ったWineです。
Wineは自分でインストールして使いますがProtonはSteamの機能として備わっています。Steamで購入したゲームをSteamのライブラリから探しプロパティの互換性タブから使いたいProtonのバージョンを選択するだけでWindowsゲームが遊べるようになります。
詳しい説明は省きますがProtonもWineと同じように全てのゲームが動作するわけではなく完璧に動くものもあればバグがあるもの、動かないものがあります。そこでProtonでは「ProtonDB(https://www.protondb.com/)」という動作確認サイトが用意され、Platinum、Gold、Silver、Bronze、Borkedのランク付けがされています。動作が完璧なものはPlatinumそこから下っていきとりあえず動くレベルではBronze、動かないものはBorkedとなっています。
Linuxにネイティブ対応しているものは「Native」と表示されます。
Valve社が非常に頑張っていて、Protonで動くゲームは日々増えているためチェックが欠かせない存在です。
補足:Lutrisとは
補足的な説明となりますが、Wineを使ったゲームの実行を手助けするLutrisというツールも存在します。Lutrisを使うことでWineでゲームを実行するのに必要な作業を自動化することができます。Steam以外にあるゲームが遊びたい場合、このツールをチェックするのも一つの手段です。ただし、Lutrisはユーザ同士のコミュニティにより整備されているためライブラリにないゲームも存在します。
また、LutrisはLinuxで遊ぶゲーム全般をカバーする目的があるため、LutrisからSteamのゲームを起動するなどランチャーとしての機能も備えています。
管理人はLutrisでEpic Games LauncherのAmong Usをプレイしています。
まとめ
かなり記事が長くなってしまったので本日はこの辺でまとめに入ります。
「Linuxでゲームをする」とは
「Linuxで動くゲームをやるなら問題なし。メジャーなゲームをやろうとするなら茨の道。」といったところです。
Linuxでゲームをする場合多くの人がSteamを使うことになると思います。Steamは多くのゲームを扱いながらLinuxのサポートも厚いということからLinuxのゲームコミュニティを大きく動かす可能性があります。現在進行系で大きく動いている部分もありますが、これはまたの機会にお話したいと思います。
中でもProtonは多くのWindowsゲームが動かせるようになるので必要不可欠な存在です。
WindowsユーザがLinuxに移行する必要はあるか
これは管理人個人の意見ですが答えは「いいえ」です。
管理人はLinuxに移る理由がありWindowsを離れましたが、現在Windowsで不自由を感じていない人の選択肢にはならないと思います。Linuxは「Linuxを選ぶ理由がある」人に合ったOSだと思います。
そもそも管理人はMinecraftがよく遊ぶゲームでその他のゲームは程々にやるといった具合だったのでゲーマーの人が移るにはまだ辛い環境だと思います。(動かないメジャーなゲームもまだ多い)
逆に言えばLinuxに移行する必要があるけどゲームもしたいという人にとっては案外希望がある環境だと思います。(現実的な話「Windowsを買うお金がない」など・・・覚悟が必要ですが)
今後の「Linuxゲーミング」シリーズ
今後は先ほど挙げた「SteamがLinuxのゲームコミュニティにもたらす影響」や「管理人がプレイしているゲーム一覧」やLinuxに移行予定・移行した人に向けた「ゲームの実行方法ガイド」を予定しています。
今後もLinuxゲーミングな話題を色々掘り下げていく予定なので興味がある方は是非ご覧ください。それでは良きゲーミングライフを!