GNU/Linuxでゲーム
数年前のゲーミングラップトップを手に入れたので、Ubuntuを入れてゲーム用のGNU/Linux環境を構築しようとした。
GNU/Linuxにおけるゲーミング環境は年々良くなってきている。ValveのSteamOSのおかげでGNU/Linuxに対応する理由があるからだ。今回の目的は、持ち運べるfactorioゲーム環境を作ることだ。
もらったゲーミングラップトップは、G-tunes Nextgear i770というものだ。Core i5 3230MにGeForce GTX670MX、メモリが12GB、ストレージが1TBのSSHDだ。メモリが12GBなのは、4GBメモリを4枚さして16GB積むと何故か起動しないので1枚抜いたとのことだ。メモリが悪いのかマザボが悪いのかはわからない。
もらった時点でWindows 10が入っていたが、容赦なくUbuntu 16.04をインストールする。Windows殺すべし。慈悲はない。
さて、インストールが終わったら。apt-get install steamしてsteamをインストールする。そしてfactorioをインストール。
いざ起動してみると、何事もなく動いた。しかしFPSが30程度しかでない。
GPUドライバーが自由なソフトウェア実装であるNouveauになっていた。涙をのんで不自由なnvidia-driverをインストールする。
nvidiaの不自由なドライバーをインストールするとまともなFPSが出るようになった。しかし、画面にティアリングが発生する。どうやっても直らない。また、xrandrを使ったディスプレイの回転ができない。また、外部ディスプレイをつなぐと、nvidia-settingsからは、一枚の巨大なディスプレイを使っているかのように扱われる。解像度が高すぎるため、一度外部ディスプレイをつなぐと、ゲームのFPSが落ちる。
調べたところ、これはnVidiaのドライバー上の問題で、今のところどうしようもないということ。nVidia Fuck You!
nVidia Optimusは、IntelのGPUとハードウェア的にもかなり密に結合していて、nVidiaのGPUがIntelのフレームバッファに直接書き込むような形になっているそうだ。
また、factorioのゲームサーバーを立てるために、適当な安い中古のラップトップを買ってきた。Ubuntu Serverをいれて、とりあえずfactorioサーバーを建てられるようにはした。中古だが、ある程度こだわって選んでしまったので、果たしてサーバーにしていいものかどうか迷う。ただし、メモリが2GBしかないため、デスクトップ用途に使うとしてもUnityはいれられないだろうから、XbuntuとかLubuntuなどを入れることになると思う。