Linuxでもゲームをしたいというハナシ

PUBLISHED ON 2019-12-19 — GAME

どうも、僕です。

この記事はPySpa Advent Calendar 2019 19 日目 の記事です。

今回はあまり書くことがなかったので、マイルドな内容になってしまいました。 ハイ。本当に書くことがないんですね。無.com です。

私は普段から Linux デスクトップを使ってるのですが、それなりにゲームをしていたりします。

あまりそーいう人が周りにいなかったのでその事についての戯言を書いてみたいと思います。

Linux でゲームをする

Linux でゲームと言われるとターミナルベースのゲームを思い浮かべる人が多いかも知れません。 確かに昔はそうだったかも知れませんが、今ではそうではありません。

数年前から私が遊んでたゲームがどのように変化していったかを振り返って書いてみたいと思います。 あくまでの私が遊んだ経緯なので歴史的には前後してる部分はありますし、間違ってるかも知れません。 まあでも雰囲気ぐらい伝われば良いかなと思います。


真っ黒な画面でやるゲーム

Linux でゲームと言えば一度は通るのがNetHackAngband、そしてHengbandなどのローグライクゲームでしょうか。 特にHengbandなはボリューム、難易度共に十分遊びごたえがあったと思います。

今となってはビルドする環境を整えるのすら難しいかも知れません。

もし現在でも遊びたい場合には Docker などで古い Ubuntu 環境などを構築して遊ぼうと思えば遊べると思います。

(実際に Angband などは有志がDocker Imageを公開してたりします)


Linux で開発されたオリジナル作品

記憶が曖昧ですが、Linux をターゲットに開発されたゲームを幾つか遊んだ記憶があります。

SDLなどは Linux でも動作するのでSDLベースのゲームは遊べると思います。

SDLで開発されて Linux で遊べるタイトルにはFactorioなどがあります。 その他にもいろいろあるようです。

あと Linux なのでFlareなど OSS になっているものも多くあります。 Linux で開発されたゲームを探す場合はArch Linux のゲームカテゴリが役に立つかも知れません。

その他 Linux で遊べる大きなタイトルにはMinecraftもあります。


GOG のハナシ

GOGの登場は Linux をゲームプラットフォームへと変貌させる第一歩になっていたのかも知れません。

GOG の登場

GOGとは「Good Old Games」の略で、その名の通りレトロゲームを専門に扱うサイトで、2008 年ぐらいに開設されました。

GOGはウィッチャーシリーズで有名な CD Projekt のゲーム配信プラットホーム。現在は新規タイトル、各種 OS のゲームなども扱っています)

GOGでは、ゲーム購入後はインストーラー(その他 CD の ISO などなど)をダウンロードして実行、インストールするといった割とシンプルな方式です。

(今では Galaxy というランチャーがある。Linux 版はない)

ゲームよってはインストーラーの形式も古かったり、動作させる環境を構築するのに苦労したり、新しい Windows ではすんなりと動いてくれないケースもありました。 そのため、Old Game の場合は Wine を使うケースが増え、Wineが動作する Linux でもいろいろ遊べるようになります。 これにより往年の名作を Linux でも遊べるようになりました。

またゲームごとに Wine のバージョンや環境を変えたり、管理するツールPlayOnLinuxも開発されました。 これによりより Linux でも幅広いゲームが楽しめるようになりました。

最近はわかりませんが、昔のGOGは割と無料でゲームを配布していたりもしており、NWNなどの昔の大きめのタイトルも無料配布していたことを覚えています。


安価で遊べる Good Old Game

GOGでは結構古いゲームも扱っており、若いときにグラボがなくて遊べなかった洋ゲーなどが多くあります。 今ではラップトップですら当時必要だったマシンスペックより良いスペックとなっているでしょう。

しかもそれらのタイトルをとても安く買うことができます。

その他、数年前に話題となったDiablo1をリメイクしたDiabloHDなどもPlayOnLinuxでは遊ぶことが出来ます。

(遊ぶにはDiablo1が必要)


PlayOnLinux

ちょっとだけ簡単にPlayOnLinuxに触れておきます。

便利なWineですが、ゲームによってはWineのバージョンを変えたり、必要なコンポーネントを変えたりする必要があります。 異なるゲームを遊ぶためにはいろいろと設定し直したり煩わしい作業が必要でした。

そこでPlayOnLinuxです。

PlayOnLinuxはゲームごとに Wine のバージョンやコンポーネント、環境を管理することができます。 PlayOnLinuxでは新しい環境を構築時にインストーラーを指定します。

そのためGOGで販売されてる形式の方が都合がよく、すんなりと環境構築、インストールして遊ぶことができます。


SteamOS の登場

さて、Linux では Old Game しか遊べないのか?というとそういうわけでもありません。

SteamOSの登場です。

SteamOS

SteamOSは Valve が開発しているゲームプラットフォーム、Steam Machine の OS です。

SteamOSは Debian 8 をベースに開発されており、ゲームに必要なモノのみがインストールされている Linux です。

そのため、Steamストアはその他の Linux ディストリビューションでも動作しSteamのゲームを楽しめます。

Linux でもSteamのゲームが遊べる、この事はインディーズゲームにとっても励みとなる要素となっています。


Unity の登場

Linux でもSteamのゲームが遊べるようになったもののやはり対応しているタイトルは圧倒的に少ないです。

ゲームをクロスプラットフォームで開発することは非常にコストがかかります。 クロスプラットフォームな開発環境で作られたゲームでもなければなかなか Linux で遊ぶことができません。

ここでUnityの登場です。

Unityはクロスプラットフォームの開発環境で比較的簡単に本格的なゲームも開発することができます。 Linux 用にも簡単にビルドをすることができるため、Unityで作られたゲームの多くは Linux でも遊ぶことができます。 安価に早く本格的なゲームを開発できるため、インディーズゲームではUnityが採用されることが多く、このことにより Linux でも遊べるタイトルがグッと増えることになります。

余談ですが開発環境であるUnityEditor 自体も既に Linux で動作するようになっています。


Proton、そして

遊べるゲームはUnityによって増えましたが、やはりそれでもSteamが抱える既存の Windows で動作するゲームは膨大にあります。

そこで Valve は SteamOSでそれらのゲームを少しでも多く遊べるようにProtonを開発します。

Protonは Valve 自身が開発している Windows 用のゲームを Linux 上で動作させるためのレイヤーです。

ProtonWineを fork したものをベースに、パフォーマンス向上、fork 版の DXVK(D3D to Vulkan)の組み込みを行っています。 Protonは Steam Play の設定することで有効化でき、これにより高い互換性、高パフォーマンスで Windows 用のゲームを Linux で動作させることができます。

もちろん、まだ動かないゲームもありますがかなり多くのゲームが遊べるようになりました。

ゲームの動作確認はProtonDBで確認できます。

(SEKIRO などは互換性がプラチナだったりかなり互換性があることが伺えます)

その他Protonの issue も参考になるかも知れません。

また最近では Docker のようにコンテナ内でゲームを動作させ、ホストから環境から切り離すSteam Linux Runtimeも開発していたり Linux 独自の機能の強化も図られています。


Lutris

Linux で多くのゲームが遊べるようになり、WineProtonなどでの動作報告などが集まるともっと便利にしたくなってきます。

最近のゲームは販売しているプラットフォームのランチャーを起動する必要があり、少し煩わしいのですがそれらを横断して起動できるようにしたオープンプラットフォームランチャーが登場します。

それがLutrisプロジェクトです。

先日GOGが似たようなプラットフォームをまとめて起動できるランチャーを発表しましたが、Lutrisはそれよりも早く開発を開始しています。 Lutrisはゲームに合わせ、WineProtonなどの管理もすることができ、環境構築も合わせて簡単にインストールできるようになっています。 もちろんGOGなどで買ったゲームを手動で管理することもできます。


ゲームプラットフォームとしての Linux

このようにゲームプラットフォームとしても Linux は近年大変進歩してきました。

もちろんパフォーマンスなどは Windows には及ばないものの互換性は飛躍的にあがっています。

またゲームパッド対応も進んでおり、Steamなら PlayStation 4 のコントローラーサポートがあったりします。

もしデスクトップ Linux を検討していてこの辺の話が気になってる人の参考になればと思います。

明日はymotongpooさんです。


おまけ

おまけで実際に遊んだことがあるタイトルを抜粋しておきます。 私自身、今はほとんどSteamでしか遊んでいません。

Linux の場合、Steam Overlay は無効にした方がいいかも知れません。環境によってはうまく画面が描画されないことがあるからです。

Noita

動作環境は Windows のみ。 Protonで起動します。

The Long Dark

動作環境は Linux も含む。 Unity製のため Linux でそのまま動作します。

一部日本語ローカライズできてないとこがあるようです。 (タイトル画面のみ)

Moonlighter

動作環境は Linux も含む。 Unity製のため Linux で動作します。

一部グラがおかしくなることがあるようです。(プレイに影響なし)

Graveyard Keeper

動作環境は Linux も含む。

OS ごとにクラウドセーブが別れているせいか別 OS 間でクラウドセーブで引き継がれてないようです。

Torchlight 2

動作環境は Linux も含む。

libfontconfig の非互換性問題があるので起動パラメータに LD_PRELOAD を追加して libfreetype の読み込み先を変更する必要あり。

Borderlands 2

動作環境は Linux も含む。 なぜか Linux サポートしている BL2。

最新の DLC は Windows でのみ動作するので注意。

Celeste

動作環境は Linux も含む。

Crypt of Necrodancer

動作環境は Linux も含む。

Wizard of Legends

動作環境は Linux も含む。

Fallout: New Vegas

動作環境は Windows のみ。 Protonで起動します。

FO3 は起動すらしないが Vegas は動く。

Dota 2

動作環境は Linux も含む。 Vulkan サポートあり。

Dota Underloads

動作環境は Linux も含む。

TAGS: GAME, LINUX